diff --git a/provider/cmd/pulumi-resource-ovh/bridge-metadata.json b/provider/cmd/pulumi-resource-ovh/bridge-metadata.json index 6863bb00..101f76e3 100644 --- a/provider/cmd/pulumi-resource-ovh/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-ovh/bridge-metadata.json @@ -9,6 +9,7 @@ "ovh:CloudProject/containerRegistryUser:ContainerRegistryUser": 0, "ovh:CloudProject/database:Database": 0, "ovh:CloudProject/failoverIpAttach:FailoverIpAttach": 0, + "ovh:CloudProject/gateway:Gateway": 0, "ovh:CloudProject/kube:Kube": 0, "ovh:CloudProject/kubeIpRestrictions:KubeIpRestrictions": 0, "ovh:CloudProject/kubeNodePool:KubeNodePool": 0, @@ -59,6 +60,7 @@ "ovh:Iam/policy:Policy": 0, "ovh:Iam/resourceGroup:ResourceGroup": 0, "ovh:Ip/ipService:IpService": 0, + "ovh:Ip/move:Move": 0, "ovh:Ip/reverse:Reverse": 0, "ovh:IpLoadBalancing/httpFarm:HttpFarm": 0, "ovh:IpLoadBalancing/httpFarmServer:HttpFarmServer": 0, @@ -147,6 +149,7 @@ "ovh:Dedicated/getCeph:getCeph": 0, "ovh:Dedicated/getNasHA:getNasHA": 0, "ovh:Dedicated/getServerBoots:getServerBoots": 0, + "ovh:Dedicated/getServerSpecificationsHardware:getServerSpecificationsHardware": 1, "ovh:Domain/getZone:getZone": 0, "ovh:Hosting/getPrivateDatabase:getPrivateDatabase": 0, "ovh:Hosting/getPrivateDatabaseAllowlist:getPrivateDatabaseAllowlist": 0, diff --git a/provider/cmd/pulumi-resource-ovh/schema.json b/provider/cmd/pulumi-resource-ovh/schema.json index 97833c69..43d13184 100644 --- a/provider/cmd/pulumi-resource-ovh/schema.json +++ b/provider/cmd/pulumi-resource-ovh/schema.json @@ -98,10 +98,7 @@ ] } } - }, - "defaults": [ - "endpoint" - ] + } }, "types": { "ovh:CloudProject/AlertingFormattedMonthlyThreshold:AlertingFormattedMonthlyThreshold": { @@ -526,7 +523,7 @@ }, "privateNetworkRoutingAsDefault": { "type": "boolean", - "description": "Defines whether routing should default to using the nodes' private interface, instead of their public interface. Default is false.\n" + "description": "Defines whether routing should default to using the nodes' private interface, instead of their public interface. Default is false.\n\nIn order to use the gateway IP advertised by the private network subnet DHCP, the following configuration shall be used.\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\n```\n```python\nimport pulumi\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n }\n}\n```\n```yaml\n{}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n" } }, "type": "object", @@ -1917,6 +1914,180 @@ "type" ] }, + "ovh:Dedicated/getServerSpecificationsHardwareDefaultHardwareRaidSize:getServerSpecificationsHardwareDefaultHardwareRaidSize": { + "properties": { + "unit": { + "type": "string" + }, + "value": { + "type": "number" + } + }, + "type": "object", + "required": [ + "unit", + "value" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "ovh:Dedicated/getServerSpecificationsHardwareDiskGroup:getServerSpecificationsHardwareDiskGroup": { + "properties": { + "defaultHardwareRaidSize": { + "$ref": "#/types/ovh:Dedicated/getServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSize:getServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSize", + "description": "Default hardware raid size for this disk group\n" + }, + "defaultHardwareRaidType": { + "type": "string", + "description": "Default hardware raid type for this disk group\n" + }, + "description": { + "type": "string", + "description": "Expansion card description\n" + }, + "diskGroupId": { + "type": "number", + "description": "Identifier of this disk group\n" + }, + "diskSize": { + "$ref": "#/types/ovh:Dedicated/getServerSpecificationsHardwareDiskGroupDiskSize:getServerSpecificationsHardwareDiskGroupDiskSize", + "description": "Disk capacity\n" + }, + "diskType": { + "type": "string", + "description": "Type of the disk (SSD, SATA, SAS, ...)\n" + }, + "numberOfDisks": { + "type": "number", + "description": "Number of disks in this group\n" + }, + "raidController": { + "type": "string", + "description": "Raid controller, if any, managing this group of disks\n" + } + }, + "type": "object", + "required": [ + "defaultHardwareRaidSize", + "defaultHardwareRaidType", + "description", + "diskGroupId", + "diskSize", + "diskType", + "numberOfDisks", + "raidController" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "ovh:Dedicated/getServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSize:getServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSize": { + "properties": { + "unit": { + "type": "string" + }, + "value": { + "type": "number" + } + }, + "type": "object", + "required": [ + "unit", + "value" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "ovh:Dedicated/getServerSpecificationsHardwareDiskGroupDiskSize:getServerSpecificationsHardwareDiskGroupDiskSize": { + "properties": { + "unit": { + "type": "string" + }, + "value": { + "type": "number" + } + }, + "type": "object", + "required": [ + "unit", + "value" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "ovh:Dedicated/getServerSpecificationsHardwareExpansionCard:getServerSpecificationsHardwareExpansionCard": { + "properties": { + "description": { + "type": "string", + "description": "Expansion card description\n" + }, + "type": { + "type": "string", + "description": "Expansion card type enum\n" + } + }, + "type": "object", + "required": [ + "description", + "type" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "ovh:Dedicated/getServerSpecificationsHardwareMemorySize:getServerSpecificationsHardwareMemorySize": { + "properties": { + "unit": { + "type": "string" + }, + "value": { + "type": "number" + } + }, + "type": "object", + "required": [ + "unit", + "value" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "ovh:Dedicated/getServerSpecificationsHardwareUsbKey:getServerSpecificationsHardwareUsbKey": { + "properties": { + "unit": { + "type": "string" + }, + "value": { + "type": "number" + } + }, + "type": "object", + "required": [ + "unit", + "value" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, "ovh:Domain/ZoneOrder:ZoneOrder": { "properties": { "date": { @@ -2507,6 +2678,18 @@ } } }, + "ovh:Ip/MoveRoutedTo:MoveRoutedTo": { + "properties": { + "serviceName": { + "type": "string", + "description": "Name of the service to route the IP to. IP will be parked if this value is an empty string\n" + } + }, + "type": "object", + "required": [ + "serviceName" + ] + }, "ovh:Ip/getServiceRoutedTo:getServiceRoutedTo": { "properties": { "serviceName": { @@ -4267,7 +4450,7 @@ } }, "ovh:CloudProject/containerRegistry:ContainerRegistry": { - "description": "Creates a container registry associated with a public cloud project.\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 regcap = ovh.CloudProject.getCapabilitiesContainerFilter({\n serviceName: \"XXXXXX\",\n planName: \"SMALL\",\n region: \"GRA\",\n});\nconst my_registry = new ovh.cloudproject.ContainerRegistry(\"my-registry\", {\n serviceName: regcap.then(regcap =\u003e regcap.serviceName),\n planId: regcap.then(regcap =\u003e regcap.id),\n region: regcap.then(regcap =\u003e regcap.region),\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nregcap = ovh.CloudProject.get_capabilities_container_filter(service_name=\"XXXXXX\",\n plan_name=\"SMALL\",\n region=\"GRA\")\nmy_registry = ovh.cloud_project.ContainerRegistry(\"my-registry\",\n service_name=regcap.service_name,\n plan_id=regcap.id,\n region=regcap.region)\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 regcap = Ovh.CloudProject.GetCapabilitiesContainerFilter.Invoke(new()\n {\n ServiceName = \"XXXXXX\",\n PlanName = \"SMALL\",\n Region = \"GRA\",\n });\n\n var my_registry = new Ovh.CloudProject.ContainerRegistry(\"my-registry\", new()\n {\n ServiceName = regcap.Apply(getCapabilitiesContainerFilterResult =\u003e getCapabilitiesContainerFilterResult.ServiceName),\n PlanId = regcap.Apply(getCapabilitiesContainerFilterResult =\u003e getCapabilitiesContainerFilterResult.Id),\n Region = regcap.Apply(getCapabilitiesContainerFilterResult =\u003e getCapabilitiesContainerFilterResult.Region),\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\tregcap, err := CloudProject.GetCapabilitiesContainerFilter(ctx, \u0026cloudproject.GetCapabilitiesContainerFilterArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tPlanName: \"SMALL\",\n\t\t\tRegion: \"GRA\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewContainerRegistry(ctx, \"my-registry\", \u0026CloudProject.ContainerRegistryArgs{\n\t\t\tServiceName: *pulumi.String(regcap.ServiceName),\n\t\t\tPlanId: *pulumi.String(regcap.Id),\n\t\t\tRegion: *pulumi.String(regcap.Region),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.GetCapabilitiesContainerFilterArgs;\nimport com.pulumi.ovh.CloudProject.ContainerRegistry;\nimport com.pulumi.ovh.CloudProject.ContainerRegistryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 regcap = CloudProjectFunctions.getCapabilitiesContainerFilter(GetCapabilitiesContainerFilterArgs.builder()\n .serviceName(\"XXXXXX\")\n .planName(\"SMALL\")\n .region(\"GRA\")\n .build());\n\n var my_registry = new ContainerRegistry(\"my-registry\", ContainerRegistryArgs.builder() \n .serviceName(regcap.applyValue(getCapabilitiesContainerFilterResult -\u003e getCapabilitiesContainerFilterResult.serviceName()))\n .planId(regcap.applyValue(getCapabilitiesContainerFilterResult -\u003e getCapabilitiesContainerFilterResult.id()))\n .region(regcap.applyValue(getCapabilitiesContainerFilterResult -\u003e getCapabilitiesContainerFilterResult.region()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n my-registry:\n type: ovh:CloudProject:ContainerRegistry\n properties:\n serviceName: ${regcap.serviceName}\n planId: ${regcap.id}\n region: ${regcap.region}\nvariables:\n regcap:\n fn::invoke:\n Function: ovh:CloudProject:getCapabilitiesContainerFilter\n Arguments:\n serviceName: XXXXXX\n planName: SMALL\n region: GRA\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003e __WARNING__ You can update and migrate to a higher plan at any time but not the contrary.\n", + "description": "Creates a container registry associated with a public cloud project.\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 regcap = ovh.CloudProject.getCapabilitiesContainerFilter({\n serviceName: \"XXXXXX\",\n planName: \"SMALL\",\n region: \"GRA\",\n});\nconst my_registry = new ovh.cloudproject.ContainerRegistry(\"my-registry\", {\n serviceName: regcap.then(regcap =\u003e regcap.serviceName),\n planId: regcap.then(regcap =\u003e regcap.id),\n region: regcap.then(regcap =\u003e regcap.region),\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nregcap = ovh.CloudProject.get_capabilities_container_filter(service_name=\"XXXXXX\",\n plan_name=\"SMALL\",\n region=\"GRA\")\nmy_registry = ovh.cloud_project.ContainerRegistry(\"my-registry\",\n service_name=regcap.service_name,\n plan_id=regcap.id,\n region=regcap.region)\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 regcap = Ovh.CloudProject.GetCapabilitiesContainerFilter.Invoke(new()\n {\n ServiceName = \"XXXXXX\",\n PlanName = \"SMALL\",\n Region = \"GRA\",\n });\n\n var my_registry = new Ovh.CloudProject.ContainerRegistry(\"my-registry\", new()\n {\n ServiceName = regcap.Apply(getCapabilitiesContainerFilterResult =\u003e getCapabilitiesContainerFilterResult.ServiceName),\n PlanId = regcap.Apply(getCapabilitiesContainerFilterResult =\u003e getCapabilitiesContainerFilterResult.Id),\n Region = regcap.Apply(getCapabilitiesContainerFilterResult =\u003e getCapabilitiesContainerFilterResult.Region),\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\tregcap, err := CloudProject.GetCapabilitiesContainerFilter(ctx, \u0026cloudproject.GetCapabilitiesContainerFilterArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tPlanName: \"SMALL\",\n\t\t\tRegion: \"GRA\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewContainerRegistry(ctx, \"my-registry\", \u0026CloudProject.ContainerRegistryArgs{\n\t\t\tServiceName: pulumi.String(regcap.ServiceName),\n\t\t\tPlanId: pulumi.String(regcap.Id),\n\t\t\tRegion: pulumi.String(regcap.Region),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.GetCapabilitiesContainerFilterArgs;\nimport com.pulumi.ovh.CloudProject.ContainerRegistry;\nimport com.pulumi.ovh.CloudProject.ContainerRegistryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 regcap = CloudProjectFunctions.getCapabilitiesContainerFilter(GetCapabilitiesContainerFilterArgs.builder()\n .serviceName(\"XXXXXX\")\n .planName(\"SMALL\")\n .region(\"GRA\")\n .build());\n\n var my_registry = new ContainerRegistry(\"my-registry\", ContainerRegistryArgs.builder() \n .serviceName(regcap.applyValue(getCapabilitiesContainerFilterResult -\u003e getCapabilitiesContainerFilterResult.serviceName()))\n .planId(regcap.applyValue(getCapabilitiesContainerFilterResult -\u003e getCapabilitiesContainerFilterResult.id()))\n .region(regcap.applyValue(getCapabilitiesContainerFilterResult -\u003e getCapabilitiesContainerFilterResult.region()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n my-registry:\n type: ovh:CloudProject:ContainerRegistry\n properties:\n serviceName: ${regcap.serviceName}\n planId: ${regcap.id}\n region: ${regcap.region}\nvariables:\n regcap:\n fn::invoke:\n Function: ovh:CloudProject:getCapabilitiesContainerFilter\n Arguments:\n serviceName: XXXXXX\n planName: SMALL\n region: GRA\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003e __WARNING__ You can update and migrate to a higher plan at any time but not the contrary.\n", "properties": { "createdAt": { "type": "string", @@ -5279,6 +5462,123 @@ "type": "object" } }, + "ovh:CloudProject/gateway:Gateway": { + "description": "Create a new Gateway for existing subnet in the specified public cloud project.\n\n", + "properties": { + "model": { + "type": "string", + "description": "The model of the gateway.\n" + }, + "name": { + "type": "string", + "description": "The name of the gateway.\n" + }, + "networkId": { + "type": "string", + "description": "The ID of the private network.\n" + }, + "region": { + "type": "string", + "description": "The region of the gateway.\n" + }, + "serviceName": { + "type": "string", + "description": "The ID of the private network.\n" + }, + "status": { + "type": "string", + "description": "The status of the gateway.\n" + }, + "subnetId": { + "type": "string", + "description": "The ID of the subnet.\n" + } + }, + "required": [ + "model", + "name", + "networkId", + "region", + "serviceName", + "status", + "subnetId" + ], + "inputProperties": { + "model": { + "type": "string", + "description": "The model of the gateway.\n" + }, + "name": { + "type": "string", + "description": "The name of the gateway.\n" + }, + "networkId": { + "type": "string", + "description": "The ID of the private network.\n", + "willReplaceOnChanges": true + }, + "region": { + "type": "string", + "description": "The region of the gateway.\n", + "willReplaceOnChanges": true + }, + "serviceName": { + "type": "string", + "description": "The ID of the private network.\n", + "willReplaceOnChanges": true + }, + "subnetId": { + "type": "string", + "description": "The ID of the subnet.\n", + "willReplaceOnChanges": true + } + }, + "requiredInputs": [ + "model", + "networkId", + "region", + "serviceName", + "subnetId" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering Gateway resources.\n", + "properties": { + "model": { + "type": "string", + "description": "The model of the gateway.\n" + }, + "name": { + "type": "string", + "description": "The name of the gateway.\n" + }, + "networkId": { + "type": "string", + "description": "The ID of the private network.\n", + "willReplaceOnChanges": true + }, + "region": { + "type": "string", + "description": "The region of the gateway.\n", + "willReplaceOnChanges": true + }, + "serviceName": { + "type": "string", + "description": "The ID of the private network.\n", + "willReplaceOnChanges": true + }, + "status": { + "type": "string", + "description": "The status of the gateway.\n" + }, + "subnetId": { + "type": "string", + "description": "The ID of the subnet.\n", + "willReplaceOnChanges": true + } + }, + "type": "object" + } + }, "ovh:CloudProject/kube:Kube": { "description": "\n\n## Import\n\nOVHcloud Managed Kubernetes Service clusters can be imported using the `service_name` and the `id` of the cluster, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProject/kube:Kube my_kube_cluster service_name/kube_id\n```\n\n", "properties": { @@ -5343,7 +5643,7 @@ }, "privateNetworkConfiguration": { "$ref": "#/types/ovh:CloudProject/KubePrivateNetworkConfiguration:KubePrivateNetworkConfiguration", - "description": "The private network configuration\n" + "description": "The private network configuration. If this is set then the 2 parameters below shall be defined.\n" }, "privateNetworkId": { "type": "string", @@ -5423,7 +5723,7 @@ }, "privateNetworkConfiguration": { "$ref": "#/types/ovh:CloudProject/KubePrivateNetworkConfiguration:KubePrivateNetworkConfiguration", - "description": "The private network configuration\n" + "description": "The private network configuration. If this is set then the 2 parameters below shall be defined.\n" }, "privateNetworkId": { "type": "string", @@ -5518,7 +5818,7 @@ }, "privateNetworkConfiguration": { "$ref": "#/types/ovh:CloudProject/KubePrivateNetworkConfiguration:KubePrivateNetworkConfiguration", - "description": "The private network configuration\n" + "description": "The private network configuration. If this is set then the 2 parameters below shall be defined.\n" }, "privateNetworkId": { "type": "string", @@ -7117,7 +7417,7 @@ } }, "ovh:CloudProjectDatabase/databaseInstance:DatabaseInstance": { - "description": "Creates a database for a database cluster associated with a public cloud project.\n\nWith this resource you can create a database for the following database engine:\n\n * `mysql`\n * `postgresql`\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 db = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXXX\",\n engine: \"YYYY\",\n id: \"ZZZZ\",\n});\nconst database = new ovh.cloudprojectdatabase.DatabaseInstance(\"database\", {\n serviceName: db.then(db =\u003e db.serviceName),\n engine: db.then(db =\u003e db.engine),\n clusterId: db.then(db =\u003e db.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ndb = ovh.CloudProjectDatabase.get_database(service_name=\"XXXX\",\n engine=\"YYYY\",\n id=\"ZZZZ\")\ndatabase = ovh.cloud_project_database.DatabaseInstance(\"database\",\n service_name=db.service_name,\n engine=db.engine,\n cluster_id=db.id)\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 db = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXXX\",\n Engine = \"YYYY\",\n Id = \"ZZZZ\",\n });\n\n var database = new Ovh.CloudProjectDatabase.DatabaseInstance(\"database\", new()\n {\n ServiceName = db.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n Engine = db.Apply(getDatabaseResult =\u003e getDatabaseResult.Engine),\n ClusterId = db.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdb, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXXX\",\n\t\t\tEngine: \"YYYY\",\n\t\t\tId: \"ZZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewDatabaseInstance(ctx, \"database\", \u0026CloudProjectDatabase.DatabaseInstanceArgs{\n\t\t\tServiceName: *pulumi.String(db.ServiceName),\n\t\t\tEngine: *pulumi.String(db.Engine),\n\t\t\tClusterId: *pulumi.String(db.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.DatabaseInstance;\nimport com.pulumi.ovh.CloudProjectDatabase.DatabaseInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 db = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXXX\")\n .engine(\"YYYY\")\n .id(\"ZZZZ\")\n .build());\n\n var database = new DatabaseInstance(\"database\", DatabaseInstanceArgs.builder() \n .serviceName(db.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .engine(db.applyValue(getDatabaseResult -\u003e getDatabaseResult.engine()))\n .clusterId(db.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n database:\n type: ovh:CloudProjectDatabase:DatabaseInstance\n properties:\n serviceName: ${db.serviceName}\n engine: ${db.engine}\n clusterId: ${db.id}\nvariables:\n db:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXXX\n engine: YYYY\n id: ZZZZ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed database clusters databases can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the database, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/databaseInstance:DatabaseInstance my_database service_name/engine/cluster_id/id\n```\n\n", + "description": "Creates a database for a database cluster associated with a public cloud project.\n\nWith this resource you can create a database for the following database engine:\n\n * `mysql`\n * `postgresql`\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 db = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXXX\",\n engine: \"YYYY\",\n id: \"ZZZZ\",\n});\nconst database = new ovh.cloudprojectdatabase.DatabaseInstance(\"database\", {\n serviceName: db.then(db =\u003e db.serviceName),\n engine: db.then(db =\u003e db.engine),\n clusterId: db.then(db =\u003e db.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ndb = ovh.CloudProjectDatabase.get_database(service_name=\"XXXX\",\n engine=\"YYYY\",\n id=\"ZZZZ\")\ndatabase = ovh.cloud_project_database.DatabaseInstance(\"database\",\n service_name=db.service_name,\n engine=db.engine,\n cluster_id=db.id)\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 db = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXXX\",\n Engine = \"YYYY\",\n Id = \"ZZZZ\",\n });\n\n var database = new Ovh.CloudProjectDatabase.DatabaseInstance(\"database\", new()\n {\n ServiceName = db.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n Engine = db.Apply(getDatabaseResult =\u003e getDatabaseResult.Engine),\n ClusterId = db.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdb, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXXX\",\n\t\t\tEngine: \"YYYY\",\n\t\t\tId: \"ZZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewDatabaseInstance(ctx, \"database\", \u0026CloudProjectDatabase.DatabaseInstanceArgs{\n\t\t\tServiceName: pulumi.String(db.ServiceName),\n\t\t\tEngine: pulumi.String(db.Engine),\n\t\t\tClusterId: pulumi.String(db.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.DatabaseInstance;\nimport com.pulumi.ovh.CloudProjectDatabase.DatabaseInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 db = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXXX\")\n .engine(\"YYYY\")\n .id(\"ZZZZ\")\n .build());\n\n var database = new DatabaseInstance(\"database\", DatabaseInstanceArgs.builder() \n .serviceName(db.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .engine(db.applyValue(getDatabaseResult -\u003e getDatabaseResult.engine()))\n .clusterId(db.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n database:\n type: ovh:CloudProjectDatabase:DatabaseInstance\n properties:\n serviceName: ${db.serviceName}\n engine: ${db.engine}\n clusterId: ${db.id}\nvariables:\n db:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXXX\n engine: YYYY\n id: ZZZZ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed database clusters databases can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the database, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/databaseInstance:DatabaseInstance my_database service_name/engine/cluster_id/id\n```\n\n", "properties": { "clusterId": { "type": "string", @@ -7206,7 +7506,7 @@ } }, "ovh:CloudProjectDatabase/integration:Integration": { - "description": "Creates an integration for a database cluster associated with a public cloud project.\n\nWith this resource you can create an integration for all engine exept `mongodb`.\n\nPlease take a look at the list of available `types` in the `Argument references` section in order to know the list of avaulable integrations. For example, thanks to the integration feature you can have your PostgreSQL logs in your OpenSearch Database.\n\n## Example Usage\n\nPush PostgreSQL logs in an OpenSearch DB:\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 dbpostgresql = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXXX\",\n engine: \"postgresql\",\n id: \"ZZZZ\",\n});\nconst dbopensearch = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXXX\",\n engine: \"opensearch\",\n id: \"ZZZZ\",\n});\nconst integration = new ovh.cloudprojectdatabase.Integration(\"integration\", {\n serviceName: dbpostgresql.then(dbpostgresql =\u003e dbpostgresql.serviceName),\n engine: dbpostgresql.then(dbpostgresql =\u003e dbpostgresql.engine),\n clusterId: dbpostgresql.then(dbpostgresql =\u003e dbpostgresql.id),\n sourceServiceId: dbpostgresql.then(dbpostgresql =\u003e dbpostgresql.id),\n destinationServiceId: dbopensearch.then(dbopensearch =\u003e dbopensearch.id),\n type: \"opensearchLogs\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ndbpostgresql = ovh.CloudProjectDatabase.get_database(service_name=\"XXXX\",\n engine=\"postgresql\",\n id=\"ZZZZ\")\ndbopensearch = ovh.CloudProjectDatabase.get_database(service_name=\"XXXX\",\n engine=\"opensearch\",\n id=\"ZZZZ\")\nintegration = ovh.cloud_project_database.Integration(\"integration\",\n service_name=dbpostgresql.service_name,\n engine=dbpostgresql.engine,\n cluster_id=dbpostgresql.id,\n source_service_id=dbpostgresql.id,\n destination_service_id=dbopensearch.id,\n type=\"opensearchLogs\")\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 dbpostgresql = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXXX\",\n Engine = \"postgresql\",\n Id = \"ZZZZ\",\n });\n\n var dbopensearch = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXXX\",\n Engine = \"opensearch\",\n Id = \"ZZZZ\",\n });\n\n var integration = new Ovh.CloudProjectDatabase.Integration(\"integration\", new()\n {\n ServiceName = dbpostgresql.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n Engine = dbpostgresql.Apply(getDatabaseResult =\u003e getDatabaseResult.Engine),\n ClusterId = dbpostgresql.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n SourceServiceId = dbpostgresql.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n DestinationServiceId = dbopensearch.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n Type = \"opensearchLogs\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdbpostgresql, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXXX\",\n\t\t\tEngine: \"postgresql\",\n\t\t\tId: \"ZZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdbopensearch, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXXX\",\n\t\t\tEngine: \"opensearch\",\n\t\t\tId: \"ZZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewIntegration(ctx, \"integration\", \u0026CloudProjectDatabase.IntegrationArgs{\n\t\t\tServiceName: *pulumi.String(dbpostgresql.ServiceName),\n\t\t\tEngine: *pulumi.String(dbpostgresql.Engine),\n\t\t\tClusterId: *pulumi.String(dbpostgresql.Id),\n\t\t\tSourceServiceId: *pulumi.String(dbpostgresql.Id),\n\t\t\tDestinationServiceId: *pulumi.String(dbopensearch.Id),\n\t\t\tType: pulumi.String(\"opensearchLogs\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.Integration;\nimport com.pulumi.ovh.CloudProjectDatabase.IntegrationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 dbpostgresql = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXXX\")\n .engine(\"postgresql\")\n .id(\"ZZZZ\")\n .build());\n\n final var dbopensearch = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXXX\")\n .engine(\"opensearch\")\n .id(\"ZZZZ\")\n .build());\n\n var integration = new Integration(\"integration\", IntegrationArgs.builder() \n .serviceName(dbpostgresql.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .engine(dbpostgresql.applyValue(getDatabaseResult -\u003e getDatabaseResult.engine()))\n .clusterId(dbpostgresql.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .sourceServiceId(dbpostgresql.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .destinationServiceId(dbopensearch.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .type(\"opensearchLogs\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n integration:\n type: ovh:CloudProjectDatabase:Integration\n properties:\n serviceName: ${dbpostgresql.serviceName}\n engine: ${dbpostgresql.engine}\n clusterId: ${dbpostgresql.id}\n sourceServiceId: ${dbpostgresql.id}\n destinationServiceId: ${dbopensearch.id}\n type: opensearchLogs\nvariables:\n dbpostgresql:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXXX\n engine: postgresql\n id: ZZZZ\n dbopensearch:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXXX\n engine: opensearch\n id: ZZZZ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed database clusters users can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the user, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/integration:Integration my_user service_name/engine/cluster_id/id\n```\n\n", + "description": "Creates an integration for a database cluster associated with a public cloud project.\n\nWith this resource you can create an integration for all engine exept `mongodb`.\n\nPlease take a look at the list of available `types` in the `Argument references` section in order to know the list of avaulable integrations. For example, thanks to the integration feature you can have your PostgreSQL logs in your OpenSearch Database.\n\n## Example Usage\n\nPush PostgreSQL logs in an OpenSearch DB:\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 dbpostgresql = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXXX\",\n engine: \"postgresql\",\n id: \"ZZZZ\",\n});\nconst dbopensearch = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXXX\",\n engine: \"opensearch\",\n id: \"ZZZZ\",\n});\nconst integration = new ovh.cloudprojectdatabase.Integration(\"integration\", {\n serviceName: dbpostgresql.then(dbpostgresql =\u003e dbpostgresql.serviceName),\n engine: dbpostgresql.then(dbpostgresql =\u003e dbpostgresql.engine),\n clusterId: dbpostgresql.then(dbpostgresql =\u003e dbpostgresql.id),\n sourceServiceId: dbpostgresql.then(dbpostgresql =\u003e dbpostgresql.id),\n destinationServiceId: dbopensearch.then(dbopensearch =\u003e dbopensearch.id),\n type: \"opensearchLogs\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ndbpostgresql = ovh.CloudProjectDatabase.get_database(service_name=\"XXXX\",\n engine=\"postgresql\",\n id=\"ZZZZ\")\ndbopensearch = ovh.CloudProjectDatabase.get_database(service_name=\"XXXX\",\n engine=\"opensearch\",\n id=\"ZZZZ\")\nintegration = ovh.cloud_project_database.Integration(\"integration\",\n service_name=dbpostgresql.service_name,\n engine=dbpostgresql.engine,\n cluster_id=dbpostgresql.id,\n source_service_id=dbpostgresql.id,\n destination_service_id=dbopensearch.id,\n type=\"opensearchLogs\")\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 dbpostgresql = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXXX\",\n Engine = \"postgresql\",\n Id = \"ZZZZ\",\n });\n\n var dbopensearch = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXXX\",\n Engine = \"opensearch\",\n Id = \"ZZZZ\",\n });\n\n var integration = new Ovh.CloudProjectDatabase.Integration(\"integration\", new()\n {\n ServiceName = dbpostgresql.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n Engine = dbpostgresql.Apply(getDatabaseResult =\u003e getDatabaseResult.Engine),\n ClusterId = dbpostgresql.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n SourceServiceId = dbpostgresql.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n DestinationServiceId = dbopensearch.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n Type = \"opensearchLogs\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdbpostgresql, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXXX\",\n\t\t\tEngine: \"postgresql\",\n\t\t\tId: \"ZZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdbopensearch, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXXX\",\n\t\t\tEngine: \"opensearch\",\n\t\t\tId: \"ZZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewIntegration(ctx, \"integration\", \u0026CloudProjectDatabase.IntegrationArgs{\n\t\t\tServiceName: pulumi.String(dbpostgresql.ServiceName),\n\t\t\tEngine: pulumi.String(dbpostgresql.Engine),\n\t\t\tClusterId: pulumi.String(dbpostgresql.Id),\n\t\t\tSourceServiceId: pulumi.String(dbpostgresql.Id),\n\t\t\tDestinationServiceId: pulumi.String(dbopensearch.Id),\n\t\t\tType: pulumi.String(\"opensearchLogs\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.Integration;\nimport com.pulumi.ovh.CloudProjectDatabase.IntegrationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 dbpostgresql = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXXX\")\n .engine(\"postgresql\")\n .id(\"ZZZZ\")\n .build());\n\n final var dbopensearch = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXXX\")\n .engine(\"opensearch\")\n .id(\"ZZZZ\")\n .build());\n\n var integration = new Integration(\"integration\", IntegrationArgs.builder() \n .serviceName(dbpostgresql.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .engine(dbpostgresql.applyValue(getDatabaseResult -\u003e getDatabaseResult.engine()))\n .clusterId(dbpostgresql.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .sourceServiceId(dbpostgresql.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .destinationServiceId(dbopensearch.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .type(\"opensearchLogs\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n integration:\n type: ovh:CloudProjectDatabase:Integration\n properties:\n serviceName: ${dbpostgresql.serviceName}\n engine: ${dbpostgresql.engine}\n clusterId: ${dbpostgresql.id}\n sourceServiceId: ${dbpostgresql.id}\n destinationServiceId: ${dbopensearch.id}\n type: opensearchLogs\nvariables:\n dbpostgresql:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXXX\n engine: postgresql\n id: ZZZZ\n dbopensearch:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXXX\n engine: opensearch\n id: ZZZZ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed database clusters users can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the user, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/integration:Integration my_user service_name/engine/cluster_id/id\n```\n\n", "properties": { "clusterId": { "type": "string", @@ -7350,7 +7650,7 @@ } }, "ovh:CloudProjectDatabase/ipRestriction:IpRestriction": { - "description": "Apply IP restrictions to an OVHcloud Managed Database cluster.\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 db = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXXX\",\n engine: \"YYYY\",\n id: \"ZZZZ\",\n});\nconst iprestriction = new ovh.cloudprojectdatabase.IpRestriction(\"iprestriction\", {\n serviceName: db.then(db =\u003e db.serviceName),\n engine: db.then(db =\u003e db.engine),\n clusterId: db.then(db =\u003e db.id),\n ip: \"178.97.6.0/24\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ndb = ovh.CloudProjectDatabase.get_database(service_name=\"XXXX\",\n engine=\"YYYY\",\n id=\"ZZZZ\")\niprestriction = ovh.cloud_project_database.IpRestriction(\"iprestriction\",\n service_name=db.service_name,\n engine=db.engine,\n cluster_id=db.id,\n ip=\"178.97.6.0/24\")\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 db = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXXX\",\n Engine = \"YYYY\",\n Id = \"ZZZZ\",\n });\n\n var iprestriction = new Ovh.CloudProjectDatabase.IpRestriction(\"iprestriction\", new()\n {\n ServiceName = db.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n Engine = db.Apply(getDatabaseResult =\u003e getDatabaseResult.Engine),\n ClusterId = db.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n Ip = \"178.97.6.0/24\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdb, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXXX\",\n\t\t\tEngine: \"YYYY\",\n\t\t\tId: \"ZZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewIpRestriction(ctx, \"iprestriction\", \u0026CloudProjectDatabase.IpRestrictionArgs{\n\t\t\tServiceName: *pulumi.String(db.ServiceName),\n\t\t\tEngine: *pulumi.String(db.Engine),\n\t\t\tClusterId: *pulumi.String(db.Id),\n\t\t\tIp: pulumi.String(\"178.97.6.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.IpRestriction;\nimport com.pulumi.ovh.CloudProjectDatabase.IpRestrictionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 db = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXXX\")\n .engine(\"YYYY\")\n .id(\"ZZZZ\")\n .build());\n\n var iprestriction = new IpRestriction(\"iprestriction\", IpRestrictionArgs.builder() \n .serviceName(db.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .engine(db.applyValue(getDatabaseResult -\u003e getDatabaseResult.engine()))\n .clusterId(db.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .ip(\"178.97.6.0/24\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n iprestriction:\n type: ovh:CloudProjectDatabase:IpRestriction\n properties:\n serviceName: ${db.serviceName}\n engine: ${db.engine}\n clusterId: ${db.id}\n ip: 178.97.6.0/24\nvariables:\n db:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXXX\n engine: YYYY\n id: ZZZZ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed database cluster IP restrictions can be imported using the `service_name`, `engine`, `cluster_id` and the `ip`, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/ipRestriction:IpRestriction my_ip_restriction service_name/engine/cluster_id/178.97.6.0/24\n```\n\n", + "description": "Apply IP restrictions to an OVHcloud Managed Database cluster.\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 db = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXXX\",\n engine: \"YYYY\",\n id: \"ZZZZ\",\n});\nconst iprestriction = new ovh.cloudprojectdatabase.IpRestriction(\"iprestriction\", {\n serviceName: db.then(db =\u003e db.serviceName),\n engine: db.then(db =\u003e db.engine),\n clusterId: db.then(db =\u003e db.id),\n ip: \"178.97.6.0/24\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ndb = ovh.CloudProjectDatabase.get_database(service_name=\"XXXX\",\n engine=\"YYYY\",\n id=\"ZZZZ\")\niprestriction = ovh.cloud_project_database.IpRestriction(\"iprestriction\",\n service_name=db.service_name,\n engine=db.engine,\n cluster_id=db.id,\n ip=\"178.97.6.0/24\")\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 db = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXXX\",\n Engine = \"YYYY\",\n Id = \"ZZZZ\",\n });\n\n var iprestriction = new Ovh.CloudProjectDatabase.IpRestriction(\"iprestriction\", new()\n {\n ServiceName = db.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n Engine = db.Apply(getDatabaseResult =\u003e getDatabaseResult.Engine),\n ClusterId = db.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n Ip = \"178.97.6.0/24\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdb, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXXX\",\n\t\t\tEngine: \"YYYY\",\n\t\t\tId: \"ZZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewIpRestriction(ctx, \"iprestriction\", \u0026CloudProjectDatabase.IpRestrictionArgs{\n\t\t\tServiceName: pulumi.String(db.ServiceName),\n\t\t\tEngine: pulumi.String(db.Engine),\n\t\t\tClusterId: pulumi.String(db.Id),\n\t\t\tIp: pulumi.String(\"178.97.6.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.IpRestriction;\nimport com.pulumi.ovh.CloudProjectDatabase.IpRestrictionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 db = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXXX\")\n .engine(\"YYYY\")\n .id(\"ZZZZ\")\n .build());\n\n var iprestriction = new IpRestriction(\"iprestriction\", IpRestrictionArgs.builder() \n .serviceName(db.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .engine(db.applyValue(getDatabaseResult -\u003e getDatabaseResult.engine()))\n .clusterId(db.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .ip(\"178.97.6.0/24\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n iprestriction:\n type: ovh:CloudProjectDatabase:IpRestriction\n properties:\n serviceName: ${db.serviceName}\n engine: ${db.engine}\n clusterId: ${db.id}\n ip: 178.97.6.0/24\nvariables:\n db:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXXX\n engine: YYYY\n id: ZZZZ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed database cluster IP restrictions can be imported using the `service_name`, `engine`, `cluster_id` and the `ip`, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/ipRestriction:IpRestriction my_ip_restriction service_name/engine/cluster_id/178.97.6.0/24\n```\n\n", "properties": { "clusterId": { "type": "string", @@ -7452,7 +7752,7 @@ } }, "ovh:CloudProjectDatabase/kafkaAcl:KafkaAcl": { - "description": "Creates an ACL for a kafka cluster associated with a public cloud project.\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 kafka = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXX\",\n engine: \"kafka\",\n id: \"ZZZ\",\n});\nconst acl = new ovh.cloudprojectdatabase.KafkaAcl(\"acl\", {\n serviceName: kafka.then(kafka =\u003e kafka.serviceName),\n clusterId: kafka.then(kafka =\u003e kafka.id),\n permission: \"read\",\n topic: \"mytopic\",\n username: \"johndoe\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nkafka = ovh.CloudProjectDatabase.get_database(service_name=\"XXX\",\n engine=\"kafka\",\n id=\"ZZZ\")\nacl = ovh.cloud_project_database.KafkaAcl(\"acl\",\n service_name=kafka.service_name,\n cluster_id=kafka.id,\n permission=\"read\",\n topic=\"mytopic\",\n username=\"johndoe\")\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 kafka = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXX\",\n Engine = \"kafka\",\n Id = \"ZZZ\",\n });\n\n var acl = new Ovh.CloudProjectDatabase.KafkaAcl(\"acl\", new()\n {\n ServiceName = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n ClusterId = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n Permission = \"read\",\n Topic = \"mytopic\",\n Username = \"johndoe\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkafka, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine: \"kafka\",\n\t\t\tId: \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewKafkaAcl(ctx, \"acl\", \u0026CloudProjectDatabase.KafkaAclArgs{\n\t\t\tServiceName: *pulumi.String(kafka.ServiceName),\n\t\t\tClusterId: *pulumi.String(kafka.Id),\n\t\t\tPermission: pulumi.String(\"read\"),\n\t\t\tTopic: pulumi.String(\"mytopic\"),\n\t\t\tUsername: pulumi.String(\"johndoe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.KafkaAcl;\nimport com.pulumi.ovh.CloudProjectDatabase.KafkaAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 kafka = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXX\")\n .engine(\"kafka\")\n .id(\"ZZZ\")\n .build());\n\n var acl = new KafkaAcl(\"acl\", KafkaAclArgs.builder() \n .serviceName(kafka.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .clusterId(kafka.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .permission(\"read\")\n .topic(\"mytopic\")\n .username(\"johndoe\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n acl:\n type: ovh:CloudProjectDatabase:KafkaAcl\n properties:\n serviceName: ${kafka.serviceName}\n clusterId: ${kafka.id}\n permission: read\n topic: mytopic\n username: johndoe\nvariables:\n kafka:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXX\n engine: kafka\n id: ZZZ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed kafka clusters ACLs can be imported using the `service_name`, `cluster_id` and `id` of the acl, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/kafkaAcl:KafkaAcl my_acl service_name/cluster_id/id\n```\n\n", + "description": "Creates an ACL for a kafka cluster associated with a public cloud project.\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 kafka = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXX\",\n engine: \"kafka\",\n id: \"ZZZ\",\n});\nconst acl = new ovh.cloudprojectdatabase.KafkaAcl(\"acl\", {\n serviceName: kafka.then(kafka =\u003e kafka.serviceName),\n clusterId: kafka.then(kafka =\u003e kafka.id),\n permission: \"read\",\n topic: \"mytopic\",\n username: \"johndoe\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nkafka = ovh.CloudProjectDatabase.get_database(service_name=\"XXX\",\n engine=\"kafka\",\n id=\"ZZZ\")\nacl = ovh.cloud_project_database.KafkaAcl(\"acl\",\n service_name=kafka.service_name,\n cluster_id=kafka.id,\n permission=\"read\",\n topic=\"mytopic\",\n username=\"johndoe\")\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 kafka = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXX\",\n Engine = \"kafka\",\n Id = \"ZZZ\",\n });\n\n var acl = new Ovh.CloudProjectDatabase.KafkaAcl(\"acl\", new()\n {\n ServiceName = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n ClusterId = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n Permission = \"read\",\n Topic = \"mytopic\",\n Username = \"johndoe\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkafka, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine: \"kafka\",\n\t\t\tId: \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewKafkaAcl(ctx, \"acl\", \u0026CloudProjectDatabase.KafkaAclArgs{\n\t\t\tServiceName: pulumi.String(kafka.ServiceName),\n\t\t\tClusterId: pulumi.String(kafka.Id),\n\t\t\tPermission: pulumi.String(\"read\"),\n\t\t\tTopic: pulumi.String(\"mytopic\"),\n\t\t\tUsername: pulumi.String(\"johndoe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.KafkaAcl;\nimport com.pulumi.ovh.CloudProjectDatabase.KafkaAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 kafka = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXX\")\n .engine(\"kafka\")\n .id(\"ZZZ\")\n .build());\n\n var acl = new KafkaAcl(\"acl\", KafkaAclArgs.builder() \n .serviceName(kafka.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .clusterId(kafka.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .permission(\"read\")\n .topic(\"mytopic\")\n .username(\"johndoe\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n acl:\n type: ovh:CloudProjectDatabase:KafkaAcl\n properties:\n serviceName: ${kafka.serviceName}\n clusterId: ${kafka.id}\n permission: read\n topic: mytopic\n username: johndoe\nvariables:\n kafka:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXX\n engine: kafka\n id: ZZZ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed kafka clusters ACLs can be imported using the `service_name`, `cluster_id` and `id` of the acl, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/kafkaAcl:KafkaAcl my_acl service_name/cluster_id/id\n```\n\n", "properties": { "clusterId": { "type": "string", @@ -7549,7 +7849,7 @@ } }, "ovh:CloudProjectDatabase/kafkaSchemaRegistryAcl:KafkaSchemaRegistryAcl": { - "description": "Creates a schema registry ACL for a Kafka cluster associated with a public cloud project.\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 kafka = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXX\",\n engine: \"kafka\",\n id: \"ZZZ\",\n});\nconst schemaRegistryAcl = new ovh.cloudprojectdatabase.KafkaSchemaRegistryAcl(\"schemaRegistryAcl\", {\n serviceName: kafka.then(kafka =\u003e kafka.serviceName),\n clusterId: kafka.then(kafka =\u003e kafka.id),\n permission: \"schema_registry_read\",\n resource: \"Subject:myResource\",\n username: \"johndoe\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nkafka = ovh.CloudProjectDatabase.get_database(service_name=\"XXX\",\n engine=\"kafka\",\n id=\"ZZZ\")\nschema_registry_acl = ovh.cloud_project_database.KafkaSchemaRegistryAcl(\"schemaRegistryAcl\",\n service_name=kafka.service_name,\n cluster_id=kafka.id,\n permission=\"schema_registry_read\",\n resource=\"Subject:myResource\",\n username=\"johndoe\")\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 kafka = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXX\",\n Engine = \"kafka\",\n Id = \"ZZZ\",\n });\n\n var schemaRegistryAcl = new Ovh.CloudProjectDatabase.KafkaSchemaRegistryAcl(\"schemaRegistryAcl\", new()\n {\n ServiceName = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n ClusterId = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n Permission = \"schema_registry_read\",\n Resource = \"Subject:myResource\",\n Username = \"johndoe\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkafka, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine: \"kafka\",\n\t\t\tId: \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewKafkaSchemaRegistryAcl(ctx, \"schemaRegistryAcl\", \u0026CloudProjectDatabase.KafkaSchemaRegistryAclArgs{\n\t\t\tServiceName: *pulumi.String(kafka.ServiceName),\n\t\t\tClusterId: *pulumi.String(kafka.Id),\n\t\t\tPermission: pulumi.String(\"schema_registry_read\"),\n\t\t\tResource: pulumi.String(\"Subject:myResource\"),\n\t\t\tUsername: pulumi.String(\"johndoe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.KafkaSchemaRegistryAcl;\nimport com.pulumi.ovh.CloudProjectDatabase.KafkaSchemaRegistryAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 kafka = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXX\")\n .engine(\"kafka\")\n .id(\"ZZZ\")\n .build());\n\n var schemaRegistryAcl = new KafkaSchemaRegistryAcl(\"schemaRegistryAcl\", KafkaSchemaRegistryAclArgs.builder() \n .serviceName(kafka.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .clusterId(kafka.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .permission(\"schema_registry_read\")\n .resource(\"Subject:myResource\")\n .username(\"johndoe\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n schemaRegistryAcl:\n type: ovh:CloudProjectDatabase:KafkaSchemaRegistryAcl\n properties:\n serviceName: ${kafka.serviceName}\n clusterId: ${kafka.id}\n permission: schema_registry_read\n resource: Subject:myResource\n username: johndoe\nvariables:\n kafka:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXX\n engine: kafka\n id: ZZZ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed Kafka clusters schema registry ACLs can be imported using the `service_name`, `cluster_id` and `id` of the schema registry ACL, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/kafkaSchemaRegistryAcl:KafkaSchemaRegistryAcl my_schemaRegistryAcl service_name/cluster_id/id\n```\n\n", + "description": "Creates a schema registry ACL for a Kafka cluster associated with a public cloud project.\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 kafka = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXX\",\n engine: \"kafka\",\n id: \"ZZZ\",\n});\nconst schemaRegistryAcl = new ovh.cloudprojectdatabase.KafkaSchemaRegistryAcl(\"schemaRegistryAcl\", {\n serviceName: kafka.then(kafka =\u003e kafka.serviceName),\n clusterId: kafka.then(kafka =\u003e kafka.id),\n permission: \"schema_registry_read\",\n resource: \"Subject:myResource\",\n username: \"johndoe\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nkafka = ovh.CloudProjectDatabase.get_database(service_name=\"XXX\",\n engine=\"kafka\",\n id=\"ZZZ\")\nschema_registry_acl = ovh.cloud_project_database.KafkaSchemaRegistryAcl(\"schemaRegistryAcl\",\n service_name=kafka.service_name,\n cluster_id=kafka.id,\n permission=\"schema_registry_read\",\n resource=\"Subject:myResource\",\n username=\"johndoe\")\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 kafka = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXX\",\n Engine = \"kafka\",\n Id = \"ZZZ\",\n });\n\n var schemaRegistryAcl = new Ovh.CloudProjectDatabase.KafkaSchemaRegistryAcl(\"schemaRegistryAcl\", new()\n {\n ServiceName = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n ClusterId = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n Permission = \"schema_registry_read\",\n Resource = \"Subject:myResource\",\n Username = \"johndoe\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkafka, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine: \"kafka\",\n\t\t\tId: \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewKafkaSchemaRegistryAcl(ctx, \"schemaRegistryAcl\", \u0026CloudProjectDatabase.KafkaSchemaRegistryAclArgs{\n\t\t\tServiceName: pulumi.String(kafka.ServiceName),\n\t\t\tClusterId: pulumi.String(kafka.Id),\n\t\t\tPermission: pulumi.String(\"schema_registry_read\"),\n\t\t\tResource: pulumi.String(\"Subject:myResource\"),\n\t\t\tUsername: pulumi.String(\"johndoe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.KafkaSchemaRegistryAcl;\nimport com.pulumi.ovh.CloudProjectDatabase.KafkaSchemaRegistryAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 kafka = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXX\")\n .engine(\"kafka\")\n .id(\"ZZZ\")\n .build());\n\n var schemaRegistryAcl = new KafkaSchemaRegistryAcl(\"schemaRegistryAcl\", KafkaSchemaRegistryAclArgs.builder() \n .serviceName(kafka.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .clusterId(kafka.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .permission(\"schema_registry_read\")\n .resource(\"Subject:myResource\")\n .username(\"johndoe\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n schemaRegistryAcl:\n type: ovh:CloudProjectDatabase:KafkaSchemaRegistryAcl\n properties:\n serviceName: ${kafka.serviceName}\n clusterId: ${kafka.id}\n permission: schema_registry_read\n resource: Subject:myResource\n username: johndoe\nvariables:\n kafka:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXX\n engine: kafka\n id: ZZZ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed Kafka clusters schema registry ACLs can be imported using the `service_name`, `cluster_id` and `id` of the schema registry ACL, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/kafkaSchemaRegistryAcl:KafkaSchemaRegistryAcl my_schemaRegistryAcl service_name/cluster_id/id\n```\n\n", "properties": { "clusterId": { "type": "string", @@ -7646,7 +7946,7 @@ } }, "ovh:CloudProjectDatabase/kafkaTopic:KafkaTopic": { - "description": "Creates a topic for a kafka cluster associated with a public cloud project.\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 kafka = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXX\",\n engine: \"kafka\",\n id: \"ZZZ\",\n});\nconst topic = new ovh.cloudprojectdatabase.KafkaTopic(\"topic\", {\n serviceName: kafka.then(kafka =\u003e kafka.serviceName),\n clusterId: kafka.then(kafka =\u003e kafka.id),\n minInsyncReplicas: 1,\n partitions: 3,\n replication: 2,\n retentionBytes: 4,\n retentionHours: 5,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nkafka = ovh.CloudProjectDatabase.get_database(service_name=\"XXX\",\n engine=\"kafka\",\n id=\"ZZZ\")\ntopic = ovh.cloud_project_database.KafkaTopic(\"topic\",\n service_name=kafka.service_name,\n cluster_id=kafka.id,\n min_insync_replicas=1,\n partitions=3,\n replication=2,\n retention_bytes=4,\n retention_hours=5)\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 kafka = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXX\",\n Engine = \"kafka\",\n Id = \"ZZZ\",\n });\n\n var topic = new Ovh.CloudProjectDatabase.KafkaTopic(\"topic\", new()\n {\n ServiceName = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n ClusterId = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n MinInsyncReplicas = 1,\n Partitions = 3,\n Replication = 2,\n RetentionBytes = 4,\n RetentionHours = 5,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkafka, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine: \"kafka\",\n\t\t\tId: \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewKafkaTopic(ctx, \"topic\", \u0026CloudProjectDatabase.KafkaTopicArgs{\n\t\t\tServiceName: *pulumi.String(kafka.ServiceName),\n\t\t\tClusterId: *pulumi.String(kafka.Id),\n\t\t\tMinInsyncReplicas: pulumi.Int(1),\n\t\t\tPartitions: pulumi.Int(3),\n\t\t\tReplication: pulumi.Int(2),\n\t\t\tRetentionBytes: pulumi.Int(4),\n\t\t\tRetentionHours: pulumi.Int(5),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.KafkaTopic;\nimport com.pulumi.ovh.CloudProjectDatabase.KafkaTopicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 kafka = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXX\")\n .engine(\"kafka\")\n .id(\"ZZZ\")\n .build());\n\n var topic = new KafkaTopic(\"topic\", KafkaTopicArgs.builder() \n .serviceName(kafka.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .clusterId(kafka.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .minInsyncReplicas(1)\n .partitions(3)\n .replication(2)\n .retentionBytes(4)\n .retentionHours(5)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n topic:\n type: ovh:CloudProjectDatabase:KafkaTopic\n properties:\n serviceName: ${kafka.serviceName}\n clusterId: ${kafka.id}\n minInsyncReplicas: 1\n partitions: 3\n replication: 2\n retentionBytes: 4\n retentionHours: 5\nvariables:\n kafka:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXX\n engine: kafka\n id: ZZZ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed kafka clusters topics can be imported using the `service_name`, `cluster_id` and `id` of the topic, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/kafkaTopic:KafkaTopic my_topic service_name/cluster_id/id\n```\n\n", + "description": "Creates a topic for a kafka cluster associated with a public cloud project.\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 kafka = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXX\",\n engine: \"kafka\",\n id: \"ZZZ\",\n});\nconst topic = new ovh.cloudprojectdatabase.KafkaTopic(\"topic\", {\n serviceName: kafka.then(kafka =\u003e kafka.serviceName),\n clusterId: kafka.then(kafka =\u003e kafka.id),\n minInsyncReplicas: 1,\n partitions: 3,\n replication: 2,\n retentionBytes: 4,\n retentionHours: 5,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nkafka = ovh.CloudProjectDatabase.get_database(service_name=\"XXX\",\n engine=\"kafka\",\n id=\"ZZZ\")\ntopic = ovh.cloud_project_database.KafkaTopic(\"topic\",\n service_name=kafka.service_name,\n cluster_id=kafka.id,\n min_insync_replicas=1,\n partitions=3,\n replication=2,\n retention_bytes=4,\n retention_hours=5)\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 kafka = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXX\",\n Engine = \"kafka\",\n Id = \"ZZZ\",\n });\n\n var topic = new Ovh.CloudProjectDatabase.KafkaTopic(\"topic\", new()\n {\n ServiceName = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n ClusterId = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n MinInsyncReplicas = 1,\n Partitions = 3,\n Replication = 2,\n RetentionBytes = 4,\n RetentionHours = 5,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkafka, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine: \"kafka\",\n\t\t\tId: \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewKafkaTopic(ctx, \"topic\", \u0026CloudProjectDatabase.KafkaTopicArgs{\n\t\t\tServiceName: pulumi.String(kafka.ServiceName),\n\t\t\tClusterId: pulumi.String(kafka.Id),\n\t\t\tMinInsyncReplicas: pulumi.Int(1),\n\t\t\tPartitions: pulumi.Int(3),\n\t\t\tReplication: pulumi.Int(2),\n\t\t\tRetentionBytes: pulumi.Int(4),\n\t\t\tRetentionHours: pulumi.Int(5),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.KafkaTopic;\nimport com.pulumi.ovh.CloudProjectDatabase.KafkaTopicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 kafka = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXX\")\n .engine(\"kafka\")\n .id(\"ZZZ\")\n .build());\n\n var topic = new KafkaTopic(\"topic\", KafkaTopicArgs.builder() \n .serviceName(kafka.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .clusterId(kafka.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .minInsyncReplicas(1)\n .partitions(3)\n .replication(2)\n .retentionBytes(4)\n .retentionHours(5)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n topic:\n type: ovh:CloudProjectDatabase:KafkaTopic\n properties:\n serviceName: ${kafka.serviceName}\n clusterId: ${kafka.id}\n minInsyncReplicas: 1\n partitions: 3\n replication: 2\n retentionBytes: 4\n retentionHours: 5\nvariables:\n kafka:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXX\n engine: kafka\n id: ZZZ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed kafka clusters topics can be imported using the `service_name`, `cluster_id` and `id` of the topic, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/kafkaTopic:KafkaTopic my_topic service_name/cluster_id/id\n```\n\n", "properties": { "clusterId": { "type": "string", @@ -7785,7 +8085,7 @@ } }, "ovh:CloudProjectDatabase/m3DbNamespace:M3DbNamespace": { - "description": "Creates a namespace for a M3DB cluster associated with a public cloud project.\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 m3db = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXX\",\n engine: \"m3db\",\n id: \"ZZZ\",\n});\nconst namespace = new ovh.cloudprojectdatabase.M3DbNamespace(\"namespace\", {\n serviceName: m3db.then(m3db =\u003e m3db.serviceName),\n clusterId: m3db.then(m3db =\u003e m3db.id),\n resolution: \"P2D\",\n retentionPeriodDuration: \"PT48H\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nm3db = ovh.CloudProjectDatabase.get_database(service_name=\"XXX\",\n engine=\"m3db\",\n id=\"ZZZ\")\nnamespace = ovh.cloud_project_database.M3DbNamespace(\"namespace\",\n service_name=m3db.service_name,\n cluster_id=m3db.id,\n resolution=\"P2D\",\n retention_period_duration=\"PT48H\")\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 m3db = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXX\",\n Engine = \"m3db\",\n Id = \"ZZZ\",\n });\n\n var @namespace = new Ovh.CloudProjectDatabase.M3DbNamespace(\"namespace\", new()\n {\n ServiceName = m3db.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n ClusterId = m3db.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n Resolution = \"P2D\",\n RetentionPeriodDuration = \"PT48H\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tm3db, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine: \"m3db\",\n\t\t\tId: \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewM3DbNamespace(ctx, \"namespace\", \u0026CloudProjectDatabase.M3DbNamespaceArgs{\n\t\t\tServiceName: *pulumi.String(m3db.ServiceName),\n\t\t\tClusterId: *pulumi.String(m3db.Id),\n\t\t\tResolution: pulumi.String(\"P2D\"),\n\t\t\tRetentionPeriodDuration: pulumi.String(\"PT48H\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.M3DbNamespace;\nimport com.pulumi.ovh.CloudProjectDatabase.M3DbNamespaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 m3db = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXX\")\n .engine(\"m3db\")\n .id(\"ZZZ\")\n .build());\n\n var namespace = new M3DbNamespace(\"namespace\", M3DbNamespaceArgs.builder() \n .serviceName(m3db.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .clusterId(m3db.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .resolution(\"P2D\")\n .retentionPeriodDuration(\"PT48H\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n namespace:\n type: ovh:CloudProjectDatabase:M3DbNamespace\n properties:\n serviceName: ${m3db.serviceName}\n clusterId: ${m3db.id}\n resolution: P2D\n retentionPeriodDuration: PT48H\nvariables:\n m3db:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXX\n engine: m3db\n id: ZZZ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed M3DB clusters namespaces can be imported using the `service_name`, `cluster_id` and `id` of the namespace, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/m3DbNamespace:M3DbNamespace my_namespace service_name/cluster_id/id\n```\n\n", + "description": "Creates a namespace for a M3DB cluster associated with a public cloud project.\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 m3db = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXX\",\n engine: \"m3db\",\n id: \"ZZZ\",\n});\nconst namespace = new ovh.cloudprojectdatabase.M3DbNamespace(\"namespace\", {\n serviceName: m3db.then(m3db =\u003e m3db.serviceName),\n clusterId: m3db.then(m3db =\u003e m3db.id),\n resolution: \"P2D\",\n retentionPeriodDuration: \"PT48H\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nm3db = ovh.CloudProjectDatabase.get_database(service_name=\"XXX\",\n engine=\"m3db\",\n id=\"ZZZ\")\nnamespace = ovh.cloud_project_database.M3DbNamespace(\"namespace\",\n service_name=m3db.service_name,\n cluster_id=m3db.id,\n resolution=\"P2D\",\n retention_period_duration=\"PT48H\")\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 m3db = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXX\",\n Engine = \"m3db\",\n Id = \"ZZZ\",\n });\n\n var @namespace = new Ovh.CloudProjectDatabase.M3DbNamespace(\"namespace\", new()\n {\n ServiceName = m3db.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n ClusterId = m3db.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n Resolution = \"P2D\",\n RetentionPeriodDuration = \"PT48H\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tm3db, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine: \"m3db\",\n\t\t\tId: \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewM3DbNamespace(ctx, \"namespace\", \u0026CloudProjectDatabase.M3DbNamespaceArgs{\n\t\t\tServiceName: pulumi.String(m3db.ServiceName),\n\t\t\tClusterId: pulumi.String(m3db.Id),\n\t\t\tResolution: pulumi.String(\"P2D\"),\n\t\t\tRetentionPeriodDuration: pulumi.String(\"PT48H\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.M3DbNamespace;\nimport com.pulumi.ovh.CloudProjectDatabase.M3DbNamespaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 m3db = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXX\")\n .engine(\"m3db\")\n .id(\"ZZZ\")\n .build());\n\n var namespace = new M3DbNamespace(\"namespace\", M3DbNamespaceArgs.builder() \n .serviceName(m3db.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .clusterId(m3db.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .resolution(\"P2D\")\n .retentionPeriodDuration(\"PT48H\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n namespace:\n type: ovh:CloudProjectDatabase:M3DbNamespace\n properties:\n serviceName: ${m3db.serviceName}\n clusterId: ${m3db.id}\n resolution: P2D\n retentionPeriodDuration: PT48H\nvariables:\n m3db:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXX\n engine: m3db\n id: ZZZ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed M3DB clusters namespaces can be imported using the `service_name`, `cluster_id` and `id` of the namespace, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/m3DbNamespace:M3DbNamespace my_namespace service_name/cluster_id/id\n```\n\n", "properties": { "clusterId": { "type": "string", @@ -8202,7 +8502,7 @@ } }, "ovh:CloudProjectDatabase/opensearchPattern:OpensearchPattern": { - "description": "Creates a pattern for a opensearch cluster associated with a public cloud project.\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 opensearch = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXX\",\n engine: \"opensearch\",\n id: \"ZZZ\",\n});\nconst pattern = new ovh.cloudprojectdatabase.OpensearchPattern(\"pattern\", {\n serviceName: opensearch.then(opensearch =\u003e opensearch.serviceName),\n clusterId: opensearch.then(opensearch =\u003e opensearch.id),\n maxIndexCount: 2,\n pattern: \"logs_*\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nopensearch = ovh.CloudProjectDatabase.get_database(service_name=\"XXX\",\n engine=\"opensearch\",\n id=\"ZZZ\")\npattern = ovh.cloud_project_database.OpensearchPattern(\"pattern\",\n service_name=opensearch.service_name,\n cluster_id=opensearch.id,\n max_index_count=2,\n pattern=\"logs_*\")\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 opensearch = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXX\",\n Engine = \"opensearch\",\n Id = \"ZZZ\",\n });\n\n var pattern = new Ovh.CloudProjectDatabase.OpensearchPattern(\"pattern\", new()\n {\n ServiceName = opensearch.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n ClusterId = opensearch.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n MaxIndexCount = 2,\n Pattern = \"logs_*\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topensearch, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine: \"opensearch\",\n\t\t\tId: \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewOpensearchPattern(ctx, \"pattern\", \u0026CloudProjectDatabase.OpensearchPatternArgs{\n\t\t\tServiceName: *pulumi.String(opensearch.ServiceName),\n\t\t\tClusterId: *pulumi.String(opensearch.Id),\n\t\t\tMaxIndexCount: pulumi.Int(2),\n\t\t\tPattern: pulumi.String(\"logs_*\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.OpensearchPattern;\nimport com.pulumi.ovh.CloudProjectDatabase.OpensearchPatternArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 opensearch = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXX\")\n .engine(\"opensearch\")\n .id(\"ZZZ\")\n .build());\n\n var pattern = new OpensearchPattern(\"pattern\", OpensearchPatternArgs.builder() \n .serviceName(opensearch.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .clusterId(opensearch.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .maxIndexCount(2)\n .pattern(\"logs_*\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n pattern:\n type: ovh:CloudProjectDatabase:OpensearchPattern\n properties:\n serviceName: ${opensearch.serviceName}\n clusterId: ${opensearch.id}\n maxIndexCount: 2\n pattern: logs_*\nvariables:\n opensearch:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXX\n engine: opensearch\n id: ZZZ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed opensearch clusters patterns can be imported using the `service_name`, `cluster_id` and `id` of the pattern, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/opensearchPattern:OpensearchPattern my_pattern service_name/cluster_id/id\n```\n\n", + "description": "Creates a pattern for a opensearch cluster associated with a public cloud project.\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 opensearch = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXX\",\n engine: \"opensearch\",\n id: \"ZZZ\",\n});\nconst pattern = new ovh.cloudprojectdatabase.OpensearchPattern(\"pattern\", {\n serviceName: opensearch.then(opensearch =\u003e opensearch.serviceName),\n clusterId: opensearch.then(opensearch =\u003e opensearch.id),\n maxIndexCount: 2,\n pattern: \"logs_*\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nopensearch = ovh.CloudProjectDatabase.get_database(service_name=\"XXX\",\n engine=\"opensearch\",\n id=\"ZZZ\")\npattern = ovh.cloud_project_database.OpensearchPattern(\"pattern\",\n service_name=opensearch.service_name,\n cluster_id=opensearch.id,\n max_index_count=2,\n pattern=\"logs_*\")\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 opensearch = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXX\",\n Engine = \"opensearch\",\n Id = \"ZZZ\",\n });\n\n var pattern = new Ovh.CloudProjectDatabase.OpensearchPattern(\"pattern\", new()\n {\n ServiceName = opensearch.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n ClusterId = opensearch.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n MaxIndexCount = 2,\n Pattern = \"logs_*\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topensearch, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine: \"opensearch\",\n\t\t\tId: \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewOpensearchPattern(ctx, \"pattern\", \u0026CloudProjectDatabase.OpensearchPatternArgs{\n\t\t\tServiceName: pulumi.String(opensearch.ServiceName),\n\t\t\tClusterId: pulumi.String(opensearch.Id),\n\t\t\tMaxIndexCount: pulumi.Int(2),\n\t\t\tPattern: pulumi.String(\"logs_*\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.OpensearchPattern;\nimport com.pulumi.ovh.CloudProjectDatabase.OpensearchPatternArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 opensearch = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXX\")\n .engine(\"opensearch\")\n .id(\"ZZZ\")\n .build());\n\n var pattern = new OpensearchPattern(\"pattern\", OpensearchPatternArgs.builder() \n .serviceName(opensearch.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .clusterId(opensearch.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .maxIndexCount(2)\n .pattern(\"logs_*\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n pattern:\n type: ovh:CloudProjectDatabase:OpensearchPattern\n properties:\n serviceName: ${opensearch.serviceName}\n clusterId: ${opensearch.id}\n maxIndexCount: 2\n pattern: logs_*\nvariables:\n opensearch:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXX\n engine: opensearch\n id: ZZZ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed opensearch clusters patterns can be imported using the `service_name`, `cluster_id` and `id` of the pattern, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/opensearchPattern:OpensearchPattern my_pattern service_name/cluster_id/id\n```\n\n", "properties": { "clusterId": { "type": "string", @@ -9216,7 +9516,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=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", "properties": { "allowedNetworks": { "type": "array", @@ -9745,7 +10045,7 @@ } }, "ovh:Dedicated/cephAcl:CephAcl": { - "description": "Add a new access ACL for the given network/mask.\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 my-ceph = ovh.Dedicated.getCeph({\n serviceName: \"94d423da-0e55-45f2-9812-836460a19939\",\n});\nconst my_acl = new ovh.dedicated.CephAcl(\"my-acl\", {\n serviceName: my_ceph.then(my_ceph =\u003e my_ceph.id),\n network: \"1.2.3.4\",\n netmask: \"255.255.255.255\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_ceph = ovh.Dedicated.get_ceph(service_name=\"94d423da-0e55-45f2-9812-836460a19939\")\nmy_acl = ovh.dedicated.CephAcl(\"my-acl\",\n service_name=my_ceph.id,\n network=\"1.2.3.4\",\n netmask=\"255.255.255.255\")\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 my_ceph = Ovh.Dedicated.GetCeph.Invoke(new()\n {\n ServiceName = \"94d423da-0e55-45f2-9812-836460a19939\",\n });\n\n var my_acl = new Ovh.Dedicated.CephAcl(\"my-acl\", new()\n {\n ServiceName = my_ceph.Apply(my_ceph =\u003e my_ceph.Apply(getCephResult =\u003e getCephResult.Id)),\n Network = \"1.2.3.4\",\n Netmask = \"255.255.255.255\",\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/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmy_ceph, err := Dedicated.GetCeph(ctx, \u0026dedicated.GetCephArgs{\n\t\t\tServiceName: \"94d423da-0e55-45f2-9812-836460a19939\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Dedicated.NewCephAcl(ctx, \"my-acl\", \u0026Dedicated.CephAclArgs{\n\t\t\tServiceName: *pulumi.String(my_ceph.Id),\n\t\t\tNetwork: pulumi.String(\"1.2.3.4\"),\n\t\t\tNetmask: pulumi.String(\"255.255.255.255\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.GetCephArgs;\nimport com.pulumi.ovh.Dedicated.CephAcl;\nimport com.pulumi.ovh.Dedicated.CephAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 my-ceph = DedicatedFunctions.getCeph(GetCephArgs.builder()\n .serviceName(\"94d423da-0e55-45f2-9812-836460a19939\")\n .build());\n\n var my_acl = new CephAcl(\"my-acl\", CephAclArgs.builder() \n .serviceName(my_ceph.id())\n .network(\"1.2.3.4\")\n .netmask(\"255.255.255.255\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n my-acl:\n type: ovh:Dedicated:CephAcl\n properties:\n serviceName: ${[\"my-ceph\"].id}\n network: 1.2.3.4\n netmask: 255.255.255.255\nvariables:\n my-ceph:\n fn::invoke:\n Function: ovh:Dedicated:getCeph\n Arguments:\n serviceName: 94d423da-0e55-45f2-9812-836460a19939\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Add a new access ACL for the given network/mask.\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 my-ceph = ovh.Dedicated.getCeph({\n serviceName: \"94d423da-0e55-45f2-9812-836460a19939\",\n});\nconst my_acl = new ovh.dedicated.CephAcl(\"my-acl\", {\n serviceName: my_ceph.then(my_ceph =\u003e my_ceph.id),\n network: \"1.2.3.4\",\n netmask: \"255.255.255.255\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_ceph = ovh.Dedicated.get_ceph(service_name=\"94d423da-0e55-45f2-9812-836460a19939\")\nmy_acl = ovh.dedicated.CephAcl(\"my-acl\",\n service_name=my_ceph.id,\n network=\"1.2.3.4\",\n netmask=\"255.255.255.255\")\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 my_ceph = Ovh.Dedicated.GetCeph.Invoke(new()\n {\n ServiceName = \"94d423da-0e55-45f2-9812-836460a19939\",\n });\n\n var my_acl = new Ovh.Dedicated.CephAcl(\"my-acl\", new()\n {\n ServiceName = my_ceph.Apply(my_ceph =\u003e my_ceph.Apply(getCephResult =\u003e getCephResult.Id)),\n Network = \"1.2.3.4\",\n Netmask = \"255.255.255.255\",\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/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmy_ceph, err := Dedicated.GetCeph(ctx, \u0026dedicated.GetCephArgs{\n\t\t\tServiceName: \"94d423da-0e55-45f2-9812-836460a19939\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Dedicated.NewCephAcl(ctx, \"my-acl\", \u0026Dedicated.CephAclArgs{\n\t\t\tServiceName: pulumi.String(my_ceph.Id),\n\t\t\tNetwork: pulumi.String(\"1.2.3.4\"),\n\t\t\tNetmask: pulumi.String(\"255.255.255.255\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.GetCephArgs;\nimport com.pulumi.ovh.Dedicated.CephAcl;\nimport com.pulumi.ovh.Dedicated.CephAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 my-ceph = DedicatedFunctions.getCeph(GetCephArgs.builder()\n .serviceName(\"94d423da-0e55-45f2-9812-836460a19939\")\n .build());\n\n var my_acl = new CephAcl(\"my-acl\", CephAclArgs.builder() \n .serviceName(my_ceph.id())\n .network(\"1.2.3.4\")\n .netmask(\"255.255.255.255\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n my-acl:\n type: ovh:Dedicated:CephAcl\n properties:\n serviceName: ${[\"my-ceph\"].id}\n network: 1.2.3.4\n netmask: 255.255.255.255\nvariables:\n my-ceph:\n fn::invoke:\n Function: ovh:Dedicated:getCeph\n Arguments:\n serviceName: 94d423da-0e55-45f2-9812-836460a19939\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "family": { "type": "string", @@ -10071,7 +10371,7 @@ } }, "ovh:Dedicated/serverInstallTask:ServerInstallTask": { - "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 rescue = ovh.Dedicated.getServerBoots({\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n bootType: \"rescue\",\n});\nconst key = new ovh.me.SshKey(\"key\", {\n keyName: \"mykey\",\n key: \"ssh-ed25519 AAAAC3...\",\n});\nconst debian = new ovh.me.InstallationTemplate(\"debian\", {\n baseTemplateName: \"debian11_64\",\n templateName: \"mydebian11\",\n defaultLanguage: \"en\",\n customization: {\n sshKeyName: key.keyName,\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});\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\")\nkey = ovh.me.SshKey(\"key\",\n key_name=\"mykey\",\n key=\"ssh-ed25519 AAAAC3...\")\ndebian = ovh.me.InstallationTemplate(\"debian\",\n base_template_name=\"debian11_64\",\n template_name=\"mydebian11\",\n default_language=\"en\",\n customization=ovh.me.InstallationTemplateCustomizationArgs(\n ssh_key_name=key.key_name,\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```\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 key = new Ovh.Me.SshKey(\"key\", new()\n {\n KeyName = \"mykey\",\n Key = \"ssh-ed25519 AAAAC3...\",\n });\n\n var debian = new Ovh.Me.InstallationTemplate(\"debian\", new()\n {\n BaseTemplateName = \"debian11_64\",\n TemplateName = \"mydebian11\",\n DefaultLanguage = \"en\",\n Customization = new Ovh.Me.Inputs.InstallationTemplateCustomizationArgs\n {\n SshKeyName = key.KeyName,\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 });\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\tkey, err := Me.NewSshKey(ctx, \"key\", \u0026Me.SshKeyArgs{\n\t\t\tKeyName: pulumi.String(\"mykey\"),\n\t\t\tKey: pulumi.String(\"ssh-ed25519 AAAAC3...\"),\n\t\t})\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(\"debian11_64\"),\n\t\t\tTemplateName: pulumi.String(\"mydebian11\"),\n\t\t\tDefaultLanguage: pulumi.String(\"en\"),\n\t\t\tCustomization: \u0026me.InstallationTemplateCustomizationArgs{\n\t\t\t\tSshKeyName: key.KeyName,\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})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.SshKey;\nimport com.pulumi.ovh.Me.SshKeyArgs;\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 java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 key = new SshKey(\"key\", SshKeyArgs.builder() \n .keyName(\"mykey\")\n .key(\"ssh-ed25519 AAAAC3...\")\n .build());\n\n var debian = new InstallationTemplate(\"debian\", InstallationTemplateArgs.builder() \n .baseTemplateName(\"debian11_64\")\n .templateName(\"mydebian11\")\n .defaultLanguage(\"en\")\n .customization(InstallationTemplateCustomizationArgs.builder()\n .sshKeyName(key.keyName())\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 .build());\n\n }\n}\n```\n```yaml\nresources:\n key:\n type: ovh:Me:SshKey\n properties:\n keyName: mykey\n key: ssh-ed25519 AAAAC3...\n debian:\n type: ovh:Me:InstallationTemplate\n properties:\n baseTemplateName: debian11_64\n templateName: mydebian11\n defaultLanguage: en\n customization:\n sshKeyName: ${key.keyName}\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\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\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\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 key = new ovh.me.SshKey(\"key\", {\n keyName: \"mykey\",\n key: \"ssh-ed25519 AAAAC3...\",\n});\nconst debian = new ovh.me.InstallationTemplate(\"debian\", {\n baseTemplateName: \"debian11_64\",\n templateName: \"mydebian11\",\n defaultLanguage: \"en\",\n customization: {\n sshKeyName: key.keyName,\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});\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\")\nkey = ovh.me.SshKey(\"key\",\n key_name=\"mykey\",\n key=\"ssh-ed25519 AAAAC3...\")\ndebian = ovh.me.InstallationTemplate(\"debian\",\n base_template_name=\"debian11_64\",\n template_name=\"mydebian11\",\n default_language=\"en\",\n customization=ovh.me.InstallationTemplateCustomizationArgs(\n ssh_key_name=key.key_name,\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```\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 key = new Ovh.Me.SshKey(\"key\", new()\n {\n KeyName = \"mykey\",\n Key = \"ssh-ed25519 AAAAC3...\",\n });\n\n var debian = new Ovh.Me.InstallationTemplate(\"debian\", new()\n {\n BaseTemplateName = \"debian11_64\",\n TemplateName = \"mydebian11\",\n DefaultLanguage = \"en\",\n Customization = new Ovh.Me.Inputs.InstallationTemplateCustomizationArgs\n {\n SshKeyName = key.KeyName,\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 });\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\tkey, err := Me.NewSshKey(ctx, \"key\", \u0026Me.SshKeyArgs{\n\t\t\tKeyName: pulumi.String(\"mykey\"),\n\t\t\tKey: pulumi.String(\"ssh-ed25519 AAAAC3...\"),\n\t\t})\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(\"debian11_64\"),\n\t\t\tTemplateName: pulumi.String(\"mydebian11\"),\n\t\t\tDefaultLanguage: pulumi.String(\"en\"),\n\t\t\tCustomization: \u0026me.InstallationTemplateCustomizationArgs{\n\t\t\t\tSshKeyName: key.KeyName,\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})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.SshKey;\nimport com.pulumi.ovh.Me.SshKeyArgs;\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 java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 key = new SshKey(\"key\", SshKeyArgs.builder() \n .keyName(\"mykey\")\n .key(\"ssh-ed25519 AAAAC3...\")\n .build());\n\n var debian = new InstallationTemplate(\"debian\", InstallationTemplateArgs.builder() \n .baseTemplateName(\"debian11_64\")\n .templateName(\"mydebian11\")\n .defaultLanguage(\"en\")\n .customization(InstallationTemplateCustomizationArgs.builder()\n .sshKeyName(key.keyName())\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 .build());\n\n }\n}\n```\n```yaml\nresources:\n key:\n type: ovh:Me:SshKey\n properties:\n keyName: mykey\n key: ssh-ed25519 AAAAC3...\n debian:\n type: ovh:Me:InstallationTemplate\n properties:\n baseTemplateName: debian11_64\n templateName: mydebian11\n defaultLanguage: en\n customization:\n sshKeyName: ${key.keyName}\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\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\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", @@ -10289,7 +10589,7 @@ } }, "ovh:Dedicated/serverRebootTask:ServerRebootTask": { - "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 rescue = ovh.Dedicated.getServerBoots({\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n bootType: \"rescue\",\n kernel: \"rescue64-pro\",\n});\nconst serverOnRescue = new ovh.dedicated.ServerUpdate(\"serverOnRescue\", {\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n bootId: rescue.then(rescue =\u003e rescue.results?.[0]),\n monitoring: true,\n state: \"ok\",\n});\nconst serverReboot = new ovh.dedicated.ServerRebootTask(\"serverReboot\", {\n serviceName: rescue.then(rescue =\u003e rescue.serviceName),\n keepers: [serverOnRescue.bootId],\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\",\n kernel=\"rescue64-pro\")\nserver_on_rescue = ovh.dedicated.ServerUpdate(\"serverOnRescue\",\n service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\",\n boot_id=rescue.results[0],\n monitoring=True,\n state=\"ok\")\nserver_reboot = ovh.dedicated.ServerRebootTask(\"serverReboot\",\n service_name=rescue.service_name,\n keepers=[server_on_rescue.boot_id])\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 Kernel = \"rescue64-pro\",\n });\n\n var serverOnRescue = new Ovh.Dedicated.ServerUpdate(\"serverOnRescue\", new()\n {\n ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n BootId = rescue.Apply(getServerBootsResult =\u003e getServerBootsResult.Results[0]),\n Monitoring = true,\n State = \"ok\",\n });\n\n var serverReboot = new Ovh.Dedicated.ServerRebootTask(\"serverReboot\", new()\n {\n ServiceName = rescue.Apply(getServerBootsResult =\u003e getServerBootsResult.ServiceName),\n Keepers = new[]\n {\n serverOnRescue.BootId,\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/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\tKernel: pulumi.StringRef(\"rescue64-pro\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tserverOnRescue, err := Dedicated.NewServerUpdate(ctx, \"serverOnRescue\", \u0026Dedicated.ServerUpdateArgs{\n\t\t\tServiceName: pulumi.String(\"nsxxxxxxx.ip-xx-xx-xx.eu\"),\n\t\t\tBootId: *pulumi.Int(rescue.Results[0]),\n\t\t\tMonitoring: pulumi.Bool(true),\n\t\t\tState: pulumi.String(\"ok\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Dedicated.NewServerRebootTask(ctx, \"serverReboot\", \u0026Dedicated.ServerRebootTaskArgs{\n\t\t\tServiceName: *pulumi.String(rescue.ServiceName),\n\t\t\tKeepers: pulumi.StringArray{\n\t\t\t\tserverOnRescue.BootId,\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.Dedicated.ServerUpdate;\nimport com.pulumi.ovh.Dedicated.ServerUpdateArgs;\nimport com.pulumi.ovh.Dedicated.ServerRebootTask;\nimport com.pulumi.ovh.Dedicated.ServerRebootTaskArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 .kernel(\"rescue64-pro\")\n .build());\n\n var serverOnRescue = new ServerUpdate(\"serverOnRescue\", ServerUpdateArgs.builder() \n .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n .bootId(rescue.applyValue(getServerBootsResult -\u003e getServerBootsResult.results()[0]))\n .monitoring(true)\n .state(\"ok\")\n .build());\n\n var serverReboot = new ServerRebootTask(\"serverReboot\", ServerRebootTaskArgs.builder() \n .serviceName(rescue.applyValue(getServerBootsResult -\u003e getServerBootsResult.serviceName()))\n .keepers(serverOnRescue.bootId())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n serverOnRescue:\n type: ovh:Dedicated:ServerUpdate\n properties:\n serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n bootId: ${rescue.results[0]}\n monitoring: true\n state: ok\n serverReboot:\n type: ovh:Dedicated:ServerRebootTask\n properties:\n serviceName: ${rescue.serviceName}\n keepers:\n - ${serverOnRescue.bootId}\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 kernel: rescue64-pro\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 rescue = ovh.Dedicated.getServerBoots({\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n bootType: \"rescue\",\n kernel: \"rescue64-pro\",\n});\nconst serverOnRescue = new ovh.dedicated.ServerUpdate(\"serverOnRescue\", {\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n bootId: rescue.then(rescue =\u003e rescue.results?.[0]),\n monitoring: true,\n state: \"ok\",\n});\nconst serverReboot = new ovh.dedicated.ServerRebootTask(\"serverReboot\", {\n serviceName: rescue.then(rescue =\u003e rescue.serviceName),\n keepers: [serverOnRescue.bootId],\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\",\n kernel=\"rescue64-pro\")\nserver_on_rescue = ovh.dedicated.ServerUpdate(\"serverOnRescue\",\n service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\",\n boot_id=rescue.results[0],\n monitoring=True,\n state=\"ok\")\nserver_reboot = ovh.dedicated.ServerRebootTask(\"serverReboot\",\n service_name=rescue.service_name,\n keepers=[server_on_rescue.boot_id])\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 Kernel = \"rescue64-pro\",\n });\n\n var serverOnRescue = new Ovh.Dedicated.ServerUpdate(\"serverOnRescue\", new()\n {\n ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n BootId = rescue.Apply(getServerBootsResult =\u003e getServerBootsResult.Results[0]),\n Monitoring = true,\n State = \"ok\",\n });\n\n var serverReboot = new Ovh.Dedicated.ServerRebootTask(\"serverReboot\", new()\n {\n ServiceName = rescue.Apply(getServerBootsResult =\u003e getServerBootsResult.ServiceName),\n Keepers = new[]\n {\n serverOnRescue.BootId,\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/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\tKernel: pulumi.StringRef(\"rescue64-pro\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tserverOnRescue, err := Dedicated.NewServerUpdate(ctx, \"serverOnRescue\", \u0026Dedicated.ServerUpdateArgs{\n\t\t\tServiceName: pulumi.String(\"nsxxxxxxx.ip-xx-xx-xx.eu\"),\n\t\t\tBootId: pulumi.Int(rescue.Results[0]),\n\t\t\tMonitoring: pulumi.Bool(true),\n\t\t\tState: pulumi.String(\"ok\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Dedicated.NewServerRebootTask(ctx, \"serverReboot\", \u0026Dedicated.ServerRebootTaskArgs{\n\t\t\tServiceName: pulumi.String(rescue.ServiceName),\n\t\t\tKeepers: pulumi.StringArray{\n\t\t\t\tserverOnRescue.BootId,\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.Dedicated.ServerUpdate;\nimport com.pulumi.ovh.Dedicated.ServerUpdateArgs;\nimport com.pulumi.ovh.Dedicated.ServerRebootTask;\nimport com.pulumi.ovh.Dedicated.ServerRebootTaskArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 .kernel(\"rescue64-pro\")\n .build());\n\n var serverOnRescue = new ServerUpdate(\"serverOnRescue\", ServerUpdateArgs.builder() \n .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n .bootId(rescue.applyValue(getServerBootsResult -\u003e getServerBootsResult.results()[0]))\n .monitoring(true)\n .state(\"ok\")\n .build());\n\n var serverReboot = new ServerRebootTask(\"serverReboot\", ServerRebootTaskArgs.builder() \n .serviceName(rescue.applyValue(getServerBootsResult -\u003e getServerBootsResult.serviceName()))\n .keepers(serverOnRescue.bootId())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n serverOnRescue:\n type: ovh:Dedicated:ServerUpdate\n properties:\n serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n bootId: ${rescue.results[0]}\n monitoring: true\n state: ok\n serverReboot:\n type: ovh:Dedicated:ServerRebootTask\n properties:\n serviceName: ${rescue.serviceName}\n keepers:\n - ${serverOnRescue.bootId}\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 kernel: rescue64-pro\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "comment": { "type": "string", @@ -10401,7 +10701,7 @@ } }, "ovh:Dedicated/serverUpdate:ServerUpdate": { - "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 rescue = ovh.Dedicated.getServerBoots({\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n bootType: \"rescue\",\n kernel: \"rescue64-pro\",\n});\nconst server = new ovh.dedicated.ServerUpdate(\"server\", {\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n bootId: rescue.then(rescue =\u003e rescue.results?.[0]),\n monitoring: true,\n state: \"ok\",\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\",\n kernel=\"rescue64-pro\")\nserver = ovh.dedicated.ServerUpdate(\"server\",\n service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\",\n boot_id=rescue.results[0],\n monitoring=True,\n state=\"ok\")\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 Kernel = \"rescue64-pro\",\n });\n\n var server = new Ovh.Dedicated.ServerUpdate(\"server\", new()\n {\n ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n BootId = rescue.Apply(getServerBootsResult =\u003e getServerBootsResult.Results[0]),\n Monitoring = true,\n State = \"ok\",\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/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\tKernel: pulumi.StringRef(\"rescue64-pro\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Dedicated.NewServerUpdate(ctx, \"server\", \u0026Dedicated.ServerUpdateArgs{\n\t\t\tServiceName: pulumi.String(\"nsxxxxxxx.ip-xx-xx-xx.eu\"),\n\t\t\tBootId: *pulumi.Int(rescue.Results[0]),\n\t\t\tMonitoring: pulumi.Bool(true),\n\t\t\tState: pulumi.String(\"ok\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.Dedicated.ServerUpdate;\nimport com.pulumi.ovh.Dedicated.ServerUpdateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 .kernel(\"rescue64-pro\")\n .build());\n\n var server = new ServerUpdate(\"server\", ServerUpdateArgs.builder() \n .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n .bootId(rescue.applyValue(getServerBootsResult -\u003e getServerBootsResult.results()[0]))\n .monitoring(true)\n .state(\"ok\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n server:\n type: ovh:Dedicated:ServerUpdate\n properties:\n serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n bootId: ${rescue.results[0]}\n monitoring: true\n state: ok\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 kernel: rescue64-pro\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 rescue = ovh.Dedicated.getServerBoots({\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n bootType: \"rescue\",\n kernel: \"rescue64-pro\",\n});\nconst server = new ovh.dedicated.ServerUpdate(\"server\", {\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n bootId: rescue.then(rescue =\u003e rescue.results?.[0]),\n monitoring: true,\n state: \"ok\",\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\",\n kernel=\"rescue64-pro\")\nserver = ovh.dedicated.ServerUpdate(\"server\",\n service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\",\n boot_id=rescue.results[0],\n monitoring=True,\n state=\"ok\")\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 Kernel = \"rescue64-pro\",\n });\n\n var server = new Ovh.Dedicated.ServerUpdate(\"server\", new()\n {\n ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n BootId = rescue.Apply(getServerBootsResult =\u003e getServerBootsResult.Results[0]),\n Monitoring = true,\n State = \"ok\",\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/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\tKernel: pulumi.StringRef(\"rescue64-pro\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Dedicated.NewServerUpdate(ctx, \"server\", \u0026Dedicated.ServerUpdateArgs{\n\t\t\tServiceName: pulumi.String(\"nsxxxxxxx.ip-xx-xx-xx.eu\"),\n\t\t\tBootId: pulumi.Int(rescue.Results[0]),\n\t\t\tMonitoring: pulumi.Bool(true),\n\t\t\tState: pulumi.String(\"ok\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.Dedicated.ServerUpdate;\nimport com.pulumi.ovh.Dedicated.ServerUpdateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 .kernel(\"rescue64-pro\")\n .build());\n\n var server = new ServerUpdate(\"server\", ServerUpdateArgs.builder() \n .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n .bootId(rescue.applyValue(getServerBootsResult -\u003e getServerBootsResult.results()[0]))\n .monitoring(true)\n .state(\"ok\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n server:\n type: ovh:Dedicated:ServerUpdate\n properties:\n serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n bootId: ${rescue.results[0]}\n monitoring: true\n state: ok\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 kernel: rescue64-pro\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "bootId": { "type": "integer", @@ -10483,7 +10783,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=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", "properties": { "ZoneURN": { "type": "string" @@ -10841,7 +11141,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=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", "properties": { "DatabaseURN": { "type": "string", @@ -11566,7 +11866,7 @@ } }, "ovh:Iam/policy:Policy": { - "description": "Creates an IAM policy.\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 account = ovh.Me.getMe({});\nconst myGroup = new ovh.me.IdentityGroup(\"myGroup\", {description: \"my_group created in Terraform\"});\nconst manager = new ovh.iam.Policy(\"manager\", {\n description: \"Users are allowed to use the OVH manager\",\n identities: [myGroup.GroupURN],\n resources: [account.then(account =\u003e account.AccountURN)],\n allows: [\n \"account:apiovh:me/get\",\n \"account:apiovh:me/supportLevel/get\",\n \"account:apiovh:me/certificates/get\",\n \"account:apiovh:me/tag/get\",\n \"account:apiovh:services/get\",\n \"account:apiovh:*\",\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\naccount = ovh.Me.get_me()\nmy_group = ovh.me.IdentityGroup(\"myGroup\", description=\"my_group created in Terraform\")\nmanager = ovh.iam.Policy(\"manager\",\n description=\"Users are allowed to use the OVH manager\",\n identities=[my_group.group_urn],\n resources=[account.account_urn],\n allows=[\n \"account:apiovh:me/get\",\n \"account:apiovh:me/supportLevel/get\",\n \"account:apiovh:me/certificates/get\",\n \"account:apiovh:me/tag/get\",\n \"account:apiovh:services/get\",\n \"account:apiovh:*\",\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 account = Ovh.Me.GetMe.Invoke();\n\n var myGroup = new Ovh.Me.IdentityGroup(\"myGroup\", new()\n {\n Description = \"my_group created in Terraform\",\n });\n\n var manager = new Ovh.Iam.Policy(\"manager\", new()\n {\n Description = \"Users are allowed to use the OVH manager\",\n Identities = new[]\n {\n myGroup.GroupURN,\n },\n Resources = new[]\n {\n account.Apply(getMeResult =\u003e getMeResult.AccountURN),\n },\n Allows = new[]\n {\n \"account:apiovh:me/get\",\n \"account:apiovh:me/supportLevel/get\",\n \"account:apiovh:me/certificates/get\",\n \"account:apiovh:me/tag/get\",\n \"account:apiovh:services/get\",\n \"account:apiovh:*\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Iam\"\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\taccount, err := Me.GetMe(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyGroup, err := Me.NewIdentityGroup(ctx, \"myGroup\", \u0026Me.IdentityGroupArgs{\n\t\t\tDescription: pulumi.String(\"my_group created in Terraform\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Iam.NewPolicy(ctx, \"manager\", \u0026Iam.PolicyArgs{\n\t\t\tDescription: pulumi.String(\"Users are allowed to use the OVH manager\"),\n\t\t\tIdentities: pulumi.StringArray{\n\t\t\t\tmyGroup.GroupURN,\n\t\t\t},\n\t\t\tResources: pulumi.StringArray{\n\t\t\t\t*pulumi.String(account.AccountURN),\n\t\t\t},\n\t\t\tAllows: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"account:apiovh:me/get\"),\n\t\t\t\tpulumi.String(\"account:apiovh:me/supportLevel/get\"),\n\t\t\t\tpulumi.String(\"account:apiovh:me/certificates/get\"),\n\t\t\t\tpulumi.String(\"account:apiovh:me/tag/get\"),\n\t\t\t\tpulumi.String(\"account:apiovh:services/get\"),\n\t\t\t\tpulumi.String(\"account:apiovh:*\"),\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.Me.IdentityGroup;\nimport com.pulumi.ovh.Me.IdentityGroupArgs;\nimport com.pulumi.ovh.Iam.Policy;\nimport com.pulumi.ovh.Iam.PolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 account = MeFunctions.getMe();\n\n var myGroup = new IdentityGroup(\"myGroup\", IdentityGroupArgs.builder() \n .description(\"my_group created in Terraform\")\n .build());\n\n var manager = new Policy(\"manager\", PolicyArgs.builder() \n .description(\"Users are allowed to use the OVH manager\")\n .identities(myGroup.GroupURN())\n .resources(account.applyValue(getMeResult -\u003e getMeResult.AccountURN()))\n .allows( \n \"account:apiovh:me/get\",\n \"account:apiovh:me/supportLevel/get\",\n \"account:apiovh:me/certificates/get\",\n \"account:apiovh:me/tag/get\",\n \"account:apiovh:services/get\",\n \"account:apiovh:*\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n myGroup:\n type: ovh:Me:IdentityGroup\n properties:\n description: my_group created in Terraform\n manager:\n type: ovh:Iam:Policy\n properties:\n description: Users are allowed to use the OVH manager\n identities:\n - ${myGroup.GroupURN}\n resources:\n - ${account.AccountURN}\n # these are all the actions\n allows:\n - account:apiovh:me/get\n - account:apiovh:me/supportLevel/get\n - account:apiovh:me/certificates/get\n - account:apiovh:me/tag/get\n - account:apiovh:services/get\n - account:apiovh:*\nvariables:\n account:\n fn::invoke:\n Function: ovh:Me:getMe\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Creates an IAM policy.\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 account = ovh.Me.getMe({});\nconst myGroup = new ovh.me.IdentityGroup(\"myGroup\", {description: \"my_group created in Terraform\"});\nconst manager = new ovh.iam.Policy(\"manager\", {\n description: \"Users are allowed to use the OVH manager\",\n identities: [myGroup.GroupURN],\n resources: [account.then(account =\u003e account.AccountURN)],\n allows: [\n \"account:apiovh:me/get\",\n \"account:apiovh:me/supportLevel/get\",\n \"account:apiovh:me/certificates/get\",\n \"account:apiovh:me/tag/get\",\n \"account:apiovh:services/get\",\n \"account:apiovh:*\",\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\naccount = ovh.Me.get_me()\nmy_group = ovh.me.IdentityGroup(\"myGroup\", description=\"my_group created in Terraform\")\nmanager = ovh.iam.Policy(\"manager\",\n description=\"Users are allowed to use the OVH manager\",\n identities=[my_group.group_urn],\n resources=[account.account_urn],\n allows=[\n \"account:apiovh:me/get\",\n \"account:apiovh:me/supportLevel/get\",\n \"account:apiovh:me/certificates/get\",\n \"account:apiovh:me/tag/get\",\n \"account:apiovh:services/get\",\n \"account:apiovh:*\",\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 account = Ovh.Me.GetMe.Invoke();\n\n var myGroup = new Ovh.Me.IdentityGroup(\"myGroup\", new()\n {\n Description = \"my_group created in Terraform\",\n });\n\n var manager = new Ovh.Iam.Policy(\"manager\", new()\n {\n Description = \"Users are allowed to use the OVH manager\",\n Identities = new[]\n {\n myGroup.GroupURN,\n },\n Resources = new[]\n {\n account.Apply(getMeResult =\u003e getMeResult.AccountURN),\n },\n Allows = new[]\n {\n \"account:apiovh:me/get\",\n \"account:apiovh:me/supportLevel/get\",\n \"account:apiovh:me/certificates/get\",\n \"account:apiovh:me/tag/get\",\n \"account:apiovh:services/get\",\n \"account:apiovh:*\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Iam\"\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\taccount, err := Me.GetMe(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyGroup, err := Me.NewIdentityGroup(ctx, \"myGroup\", \u0026Me.IdentityGroupArgs{\n\t\t\tDescription: pulumi.String(\"my_group created in Terraform\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Iam.NewPolicy(ctx, \"manager\", \u0026Iam.PolicyArgs{\n\t\t\tDescription: pulumi.String(\"Users are allowed to use the OVH manager\"),\n\t\t\tIdentities: pulumi.StringArray{\n\t\t\t\tmyGroup.GroupURN,\n\t\t\t},\n\t\t\tResources: pulumi.StringArray{\n\t\t\t\tpulumi.String(account.AccountURN),\n\t\t\t},\n\t\t\tAllows: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"account:apiovh:me/get\"),\n\t\t\t\tpulumi.String(\"account:apiovh:me/supportLevel/get\"),\n\t\t\t\tpulumi.String(\"account:apiovh:me/certificates/get\"),\n\t\t\t\tpulumi.String(\"account:apiovh:me/tag/get\"),\n\t\t\t\tpulumi.String(\"account:apiovh:services/get\"),\n\t\t\t\tpulumi.String(\"account:apiovh:*\"),\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.Me.IdentityGroup;\nimport com.pulumi.ovh.Me.IdentityGroupArgs;\nimport com.pulumi.ovh.Iam.Policy;\nimport com.pulumi.ovh.Iam.PolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 account = MeFunctions.getMe();\n\n var myGroup = new IdentityGroup(\"myGroup\", IdentityGroupArgs.builder() \n .description(\"my_group created in Terraform\")\n .build());\n\n var manager = new Policy(\"manager\", PolicyArgs.builder() \n .description(\"Users are allowed to use the OVH manager\")\n .identities(myGroup.GroupURN())\n .resources(account.applyValue(getMeResult -\u003e getMeResult.AccountURN()))\n .allows( \n \"account:apiovh:me/get\",\n \"account:apiovh:me/supportLevel/get\",\n \"account:apiovh:me/certificates/get\",\n \"account:apiovh:me/tag/get\",\n \"account:apiovh:services/get\",\n \"account:apiovh:*\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n myGroup:\n type: ovh:Me:IdentityGroup\n properties:\n description: my_group created in Terraform\n manager:\n type: ovh:Iam:Policy\n properties:\n description: Users are allowed to use the OVH manager\n identities:\n - ${myGroup.GroupURN}\n resources:\n - ${account.AccountURN}\n # these are all the actions\n allows:\n - account:apiovh:me/get\n - account:apiovh:me/supportLevel/get\n - account:apiovh:me/certificates/get\n - account:apiovh:me/tag/get\n - account:apiovh:services/get\n - account:apiovh:*\nvariables:\n account:\n fn::invoke:\n Function: ovh:Me:getMe\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "allows": { "type": "array", @@ -11868,7 +12168,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=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", "properties": { "canBeTerminated": { "type": "boolean", @@ -12053,6 +12353,127 @@ "type": "object" } }, + "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", + "properties": { + "canBeTerminated": { + "type": "boolean", + "description": "Whether IP service can be terminated\n" + }, + "country": { + "type": "string", + "description": "Country\n" + }, + "description": { + "type": "string", + "description": "Description attached to the IP\n" + }, + "ip": { + "type": "string", + "description": "IP block that we want to attach to a different service\n" + }, + "organisationId": { + "type": "string", + "description": "IP block organisation Id\n" + }, + "routedTo": { + "$ref": "#/types/ovh:Ip/MoveRoutedTo:MoveRoutedTo", + "description": "Service to route the IP to. If null, the IP will be [parked](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/park~POST)\ninstead of [moved](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/move~POST)\n" + }, + "serviceName": { + "type": "string", + "description": "Name of the service to route the IP to. IP will be parked if this value is an empty string\n" + }, + "taskStartDate": { + "type": "string", + "description": "Starting date and time field of the current IP task that is in charge of changing the service the IP is attached to\n" + }, + "taskStatus": { + "type": "string", + "description": "Status field of the current IP task that is in charge of changing the service the IP is attached to\n" + }, + "type": { + "type": "string", + "description": "Possible values for ip type\n" + } + }, + "required": [ + "canBeTerminated", + "country", + "description", + "ip", + "organisationId", + "routedTo", + "serviceName", + "taskStartDate", + "taskStatus", + "type" + ], + "inputProperties": { + "description": { + "type": "string", + "description": "Description attached to the IP\n" + }, + "ip": { + "type": "string", + "description": "IP block that we want to attach to a different service\n" + }, + "routedTo": { + "$ref": "#/types/ovh:Ip/MoveRoutedTo:MoveRoutedTo", + "description": "Service to route the IP to. If null, the IP will be [parked](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/park~POST)\ninstead of [moved](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/move~POST)\n" + } + }, + "requiredInputs": [ + "ip", + "routedTo" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering Move resources.\n", + "properties": { + "canBeTerminated": { + "type": "boolean", + "description": "Whether IP service can be terminated\n" + }, + "country": { + "type": "string", + "description": "Country\n" + }, + "description": { + "type": "string", + "description": "Description attached to the IP\n" + }, + "ip": { + "type": "string", + "description": "IP block that we want to attach to a different service\n" + }, + "organisationId": { + "type": "string", + "description": "IP block organisation Id\n" + }, + "routedTo": { + "$ref": "#/types/ovh:Ip/MoveRoutedTo:MoveRoutedTo", + "description": "Service to route the IP to. If null, the IP will be [parked](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/park~POST)\ninstead of [moved](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/move~POST)\n" + }, + "serviceName": { + "type": "string", + "description": "Name of the service to route the IP to. IP will be parked if this value is an empty string\n" + }, + "taskStartDate": { + "type": "string", + "description": "Starting date and time field of the current IP task that is in charge of changing the service the IP is attached to\n" + }, + "taskStatus": { + "type": "string", + "description": "Status field of the current IP task that is in charge of changing the service the IP is attached to\n" + }, + "type": { + "type": "string", + "description": "Possible values for ip type\n" + } + }, + "type": "object" + } + }, "ovh:Ip/reverse:Reverse": { "description": "Provides a OVHcloud IP reverse.\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\n// Set the reverse of an IP\nconst test = new ovh.ip.Reverse(\"test\", {\n ip: \"192.0.2.0/24\",\n ReverseIp: \"192.0.2.1\",\n ReverseValue: \"example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\n# Set the reverse of an IP\ntest = ovh.ip.Reverse(\"test\",\n ip=\"192.0.2.0/24\",\n reverse_ip=\"192.0.2.1\",\n reverse_value=\"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 // Set the reverse of an IP\n var test = new Ovh.Ip.Reverse(\"test\", new()\n {\n Ip = \"192.0.2.0/24\",\n ReverseIp = \"192.0.2.1\",\n ReverseValue = \"example.com\",\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// Set the reverse of an IP\n\t\t_, err := Ip.NewReverse(ctx, \"test\", \u0026Ip.ReverseArgs{\n\t\t\tIp: pulumi.String(\"192.0.2.0/24\"),\n\t\t\tReverseIp: pulumi.String(\"192.0.2.1\"),\n\t\t\tReverseValue: 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.Ip.Reverse;\nimport com.pulumi.ovh.Ip.ReverseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new Reverse(\"test\", ReverseArgs.builder() \n .ip(\"192.0.2.0/24\")\n .ReverseIp(\"192.0.2.1\")\n .ReverseValue(\"example.com\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Set the reverse of an IP\n test:\n type: ovh:Ip:Reverse\n properties:\n ip: 192.0.2.0/24\n ReverseIp: 192.0.2.1\n ReverseValue: example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe resource can be imported using the `ip`, `ip_reverse` of the address, separated by \"|\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Ip/reverse:Reverse my_reverse '2001:0db8:c0ff:ee::/64|2001:0db8:c0ff:ee::42'\n```\n\n", "properties": { @@ -12119,7 +12540,7 @@ } }, "ovh:IpLoadBalancing/httpFarm:HttpFarm": { - "description": "Creates a HTTP backend server group (farm) to be used by loadbalancing frontend(s)\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 lb = ovh.IpLoadBalancing.getIpLoadBalancing({\n serviceName: \"ip-1.2.3.4\",\n state: \"ok\",\n});\nconst farmname = new ovh.iploadbalancing.HttpFarm(\"farmname\", {\n displayName: \"ingress-8080-gra\",\n serviceName: lb.then(lb =\u003e lb.serviceName),\n zone: \"GRA\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"ip-1.2.3.4\",\n state=\"ok\")\nfarmname = ovh.ip_load_balancing.HttpFarm(\"farmname\",\n display_name=\"ingress-8080-gra\",\n service_name=lb.service_name,\n zone=\"GRA\")\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 lb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n {\n ServiceName = \"ip-1.2.3.4\",\n State = \"ok\",\n });\n\n var farmname = new Ovh.IpLoadBalancing.HttpFarm(\"farmname\", new()\n {\n DisplayName = \"ingress-8080-gra\",\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n Zone = \"GRA\",\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\tlb, err := IpLoadBalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\n\t\t\tServiceName: pulumi.StringRef(\"ip-1.2.3.4\"),\n\t\t\tState: pulumi.StringRef(\"ok\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = IpLoadBalancing.NewHttpFarm(ctx, \"farmname\", \u0026IpLoadBalancing.HttpFarmArgs{\n\t\t\tDisplayName: pulumi.String(\"ingress-8080-gra\"),\n\t\t\tServiceName: *pulumi.String(lb.ServiceName),\n\t\t\tZone: pulumi.String(\"GRA\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport com.pulumi.ovh.IpLoadBalancing.HttpFarm;\nimport com.pulumi.ovh.IpLoadBalancing.HttpFarmArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 lb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n .serviceName(\"ip-1.2.3.4\")\n .state(\"ok\")\n .build());\n\n var farmname = new HttpFarm(\"farmname\", HttpFarmArgs.builder() \n .displayName(\"ingress-8080-gra\")\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .zone(\"GRA\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n farmname:\n type: ovh:IpLoadBalancing:HttpFarm\n properties:\n displayName: ingress-8080-gra\n serviceName: ${lb.serviceName}\n zone: GRA\nvariables:\n lb:\n fn::invoke:\n Function: ovh:IpLoadBalancing:getIpLoadBalancing\n Arguments:\n serviceName: ip-1.2.3.4\n state: ok\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import \n\nHTTP farm can be imported using the following format `service_name` and the `id` of the farm, separated by \"/\" e.g.\n\n```bash\n$ terraform import ovh_iploadbalancing_http_farm.farmname service_name/farm_id\n```\n", + "description": "Creates a HTTP backend server group (farm) to be used by loadbalancing frontend(s)\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 lb = ovh.IpLoadBalancing.getIpLoadBalancing({\n serviceName: \"ip-1.2.3.4\",\n state: \"ok\",\n});\nconst farmname = new ovh.iploadbalancing.HttpFarm(\"farmname\", {\n displayName: \"ingress-8080-gra\",\n serviceName: lb.then(lb =\u003e lb.serviceName),\n zone: \"GRA\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"ip-1.2.3.4\",\n state=\"ok\")\nfarmname = ovh.ip_load_balancing.HttpFarm(\"farmname\",\n display_name=\"ingress-8080-gra\",\n service_name=lb.service_name,\n zone=\"GRA\")\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 lb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n {\n ServiceName = \"ip-1.2.3.4\",\n State = \"ok\",\n });\n\n var farmname = new Ovh.IpLoadBalancing.HttpFarm(\"farmname\", new()\n {\n DisplayName = \"ingress-8080-gra\",\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n Zone = \"GRA\",\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\tlb, err := IpLoadBalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\n\t\t\tServiceName: pulumi.StringRef(\"ip-1.2.3.4\"),\n\t\t\tState: pulumi.StringRef(\"ok\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = IpLoadBalancing.NewHttpFarm(ctx, \"farmname\", \u0026IpLoadBalancing.HttpFarmArgs{\n\t\t\tDisplayName: pulumi.String(\"ingress-8080-gra\"),\n\t\t\tServiceName: pulumi.String(lb.ServiceName),\n\t\t\tZone: pulumi.String(\"GRA\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport com.pulumi.ovh.IpLoadBalancing.HttpFarm;\nimport com.pulumi.ovh.IpLoadBalancing.HttpFarmArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 lb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n .serviceName(\"ip-1.2.3.4\")\n .state(\"ok\")\n .build());\n\n var farmname = new HttpFarm(\"farmname\", HttpFarmArgs.builder() \n .displayName(\"ingress-8080-gra\")\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .zone(\"GRA\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n farmname:\n type: ovh:IpLoadBalancing:HttpFarm\n properties:\n displayName: ingress-8080-gra\n serviceName: ${lb.serviceName}\n zone: GRA\nvariables:\n lb:\n fn::invoke:\n Function: ovh:IpLoadBalancing:getIpLoadBalancing\n Arguments:\n serviceName: ip-1.2.3.4\n state: ok\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import \n\nHTTP farm can be imported using the following format `service_name` and the `id` of the farm, separated by \"/\" e.g.\n\n```bash\n$ terraform import ovh_iploadbalancing_http_farm.farmname service_name/farm_id\n```\n", "properties": { "balance": { "type": "string", @@ -12240,7 +12661,7 @@ } }, "ovh:IpLoadBalancing/httpFarmServer:HttpFarmServer": { - "description": "Creates a backend server entry linked to HTTP loadbalancing group (farm)\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 lb = ovh.IpLoadBalancing.getIpLoadBalancing({\n serviceName: \"ip-1.2.3.4\",\n state: \"ok\",\n});\nconst farmname = new ovh.iploadbalancing.HttpFarm(\"farmname\", {\n port: 8080,\n serviceName: lb.then(lb =\u003e lb.serviceName),\n zone: \"all\",\n});\nconst backend = new ovh.iploadbalancing.HttpFarmServer(\"backend\", {\n address: \"4.5.6.7\",\n backup: true,\n displayName: \"mybackend\",\n farmId: farmname.id,\n port: 80,\n probe: true,\n proxyProtocolVersion: \"v2\",\n serviceName: lb.then(lb =\u003e lb.serviceName),\n ssl: false,\n status: \"active\",\n weight: 2,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"ip-1.2.3.4\",\n state=\"ok\")\nfarmname = ovh.ip_load_balancing.HttpFarm(\"farmname\",\n port=8080,\n service_name=lb.service_name,\n zone=\"all\")\nbackend = ovh.ip_load_balancing.HttpFarmServer(\"backend\",\n address=\"4.5.6.7\",\n backup=True,\n display_name=\"mybackend\",\n farm_id=farmname.id,\n port=80,\n probe=True,\n proxy_protocol_version=\"v2\",\n service_name=lb.service_name,\n ssl=False,\n status=\"active\",\n weight=2)\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 lb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n {\n ServiceName = \"ip-1.2.3.4\",\n State = \"ok\",\n });\n\n var farmname = new Ovh.IpLoadBalancing.HttpFarm(\"farmname\", new()\n {\n Port = 8080,\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n Zone = \"all\",\n });\n\n var backend = new Ovh.IpLoadBalancing.HttpFarmServer(\"backend\", new()\n {\n Address = \"4.5.6.7\",\n Backup = true,\n DisplayName = \"mybackend\",\n FarmId = farmname.Id,\n Port = 80,\n Probe = true,\n ProxyProtocolVersion = \"v2\",\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n Ssl = false,\n Status = \"active\",\n Weight = 2,\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\tlb, err := IpLoadBalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\n\t\t\tServiceName: pulumi.StringRef(\"ip-1.2.3.4\"),\n\t\t\tState: pulumi.StringRef(\"ok\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfarmname, err := IpLoadBalancing.NewHttpFarm(ctx, \"farmname\", \u0026IpLoadBalancing.HttpFarmArgs{\n\t\t\tPort: pulumi.Int(8080),\n\t\t\tServiceName: *pulumi.String(lb.ServiceName),\n\t\t\tZone: pulumi.String(\"all\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = IpLoadBalancing.NewHttpFarmServer(ctx, \"backend\", \u0026IpLoadBalancing.HttpFarmServerArgs{\n\t\t\tAddress: pulumi.String(\"4.5.6.7\"),\n\t\t\tBackup: pulumi.Bool(true),\n\t\t\tDisplayName: pulumi.String(\"mybackend\"),\n\t\t\tFarmId: farmname.ID(),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProbe: pulumi.Bool(true),\n\t\t\tProxyProtocolVersion: pulumi.String(\"v2\"),\n\t\t\tServiceName: *pulumi.String(lb.ServiceName),\n\t\t\tSsl: pulumi.Bool(false),\n\t\t\tStatus: pulumi.String(\"active\"),\n\t\t\tWeight: pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.IpLoadBalancing.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport com.pulumi.ovh.IpLoadBalancing.HttpFarm;\nimport com.pulumi.ovh.IpLoadBalancing.HttpFarmArgs;\nimport com.pulumi.ovh.IpLoadBalancing.HttpFarmServer;\nimport com.pulumi.ovh.IpLoadBalancing.HttpFarmServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 lb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n .serviceName(\"ip-1.2.3.4\")\n .state(\"ok\")\n .build());\n\n var farmname = new HttpFarm(\"farmname\", HttpFarmArgs.builder() \n .port(8080)\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .zone(\"all\")\n .build());\n\n var backend = new HttpFarmServer(\"backend\", HttpFarmServerArgs.builder() \n .address(\"4.5.6.7\")\n .backup(true)\n .displayName(\"mybackend\")\n .farmId(farmname.id())\n .port(80)\n .probe(true)\n .proxyProtocolVersion(\"v2\")\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .ssl(false)\n .status(\"active\")\n .weight(2)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n farmname:\n type: ovh:IpLoadBalancing:HttpFarm\n properties:\n port: 8080\n serviceName: ${lb.serviceName}\n zone: all\n backend:\n type: ovh:IpLoadBalancing:HttpFarmServer\n properties:\n address: 4.5.6.7\n backup: true\n displayName: mybackend\n farmId: ${farmname.id}\n port: 80\n probe: true\n proxyProtocolVersion: v2\n serviceName: ${lb.serviceName}\n ssl: false\n status: active\n weight: 2\nvariables:\n lb:\n fn::invoke:\n Function: ovh:IpLoadBalancing:getIpLoadBalancing\n Arguments:\n serviceName: ip-1.2.3.4\n state: ok\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import \n\nHTTP farm server can be imported using the following format `service_name`, the `id` of the farm and the `id` of the server separated by \"/\" e.g.\n\n```bash\n$ terraform import ovh_iploadbalancing_http_farm_server.backend service_name/farm_id/server_id\n```\n", + "description": "Creates a backend server entry linked to HTTP loadbalancing group (farm)\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 lb = ovh.IpLoadBalancing.getIpLoadBalancing({\n serviceName: \"ip-1.2.3.4\",\n state: \"ok\",\n});\nconst farmname = new ovh.iploadbalancing.HttpFarm(\"farmname\", {\n port: 8080,\n serviceName: lb.then(lb =\u003e lb.serviceName),\n zone: \"all\",\n});\nconst backend = new ovh.iploadbalancing.HttpFarmServer(\"backend\", {\n address: \"4.5.6.7\",\n backup: true,\n displayName: \"mybackend\",\n farmId: farmname.id,\n port: 80,\n probe: true,\n proxyProtocolVersion: \"v2\",\n serviceName: lb.then(lb =\u003e lb.serviceName),\n ssl: false,\n status: \"active\",\n weight: 2,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"ip-1.2.3.4\",\n state=\"ok\")\nfarmname = ovh.ip_load_balancing.HttpFarm(\"farmname\",\n port=8080,\n service_name=lb.service_name,\n zone=\"all\")\nbackend = ovh.ip_load_balancing.HttpFarmServer(\"backend\",\n address=\"4.5.6.7\",\n backup=True,\n display_name=\"mybackend\",\n farm_id=farmname.id,\n port=80,\n probe=True,\n proxy_protocol_version=\"v2\",\n service_name=lb.service_name,\n ssl=False,\n status=\"active\",\n weight=2)\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 lb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n {\n ServiceName = \"ip-1.2.3.4\",\n State = \"ok\",\n });\n\n var farmname = new Ovh.IpLoadBalancing.HttpFarm(\"farmname\", new()\n {\n Port = 8080,\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n Zone = \"all\",\n });\n\n var backend = new Ovh.IpLoadBalancing.HttpFarmServer(\"backend\", new()\n {\n Address = \"4.5.6.7\",\n Backup = true,\n DisplayName = \"mybackend\",\n FarmId = farmname.Id,\n Port = 80,\n Probe = true,\n ProxyProtocolVersion = \"v2\",\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n Ssl = false,\n Status = \"active\",\n Weight = 2,\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\tlb, err := IpLoadBalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\n\t\t\tServiceName: pulumi.StringRef(\"ip-1.2.3.4\"),\n\t\t\tState: pulumi.StringRef(\"ok\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfarmname, err := IpLoadBalancing.NewHttpFarm(ctx, \"farmname\", \u0026IpLoadBalancing.HttpFarmArgs{\n\t\t\tPort: pulumi.Int(8080),\n\t\t\tServiceName: pulumi.String(lb.ServiceName),\n\t\t\tZone: pulumi.String(\"all\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = IpLoadBalancing.NewHttpFarmServer(ctx, \"backend\", \u0026IpLoadBalancing.HttpFarmServerArgs{\n\t\t\tAddress: pulumi.String(\"4.5.6.7\"),\n\t\t\tBackup: pulumi.Bool(true),\n\t\t\tDisplayName: pulumi.String(\"mybackend\"),\n\t\t\tFarmId: farmname.ID(),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProbe: pulumi.Bool(true),\n\t\t\tProxyProtocolVersion: pulumi.String(\"v2\"),\n\t\t\tServiceName: pulumi.String(lb.ServiceName),\n\t\t\tSsl: pulumi.Bool(false),\n\t\t\tStatus: pulumi.String(\"active\"),\n\t\t\tWeight: pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.IpLoadBalancing.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport com.pulumi.ovh.IpLoadBalancing.HttpFarm;\nimport com.pulumi.ovh.IpLoadBalancing.HttpFarmArgs;\nimport com.pulumi.ovh.IpLoadBalancing.HttpFarmServer;\nimport com.pulumi.ovh.IpLoadBalancing.HttpFarmServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 lb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n .serviceName(\"ip-1.2.3.4\")\n .state(\"ok\")\n .build());\n\n var farmname = new HttpFarm(\"farmname\", HttpFarmArgs.builder() \n .port(8080)\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .zone(\"all\")\n .build());\n\n var backend = new HttpFarmServer(\"backend\", HttpFarmServerArgs.builder() \n .address(\"4.5.6.7\")\n .backup(true)\n .displayName(\"mybackend\")\n .farmId(farmname.id())\n .port(80)\n .probe(true)\n .proxyProtocolVersion(\"v2\")\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .ssl(false)\n .status(\"active\")\n .weight(2)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n farmname:\n type: ovh:IpLoadBalancing:HttpFarm\n properties:\n port: 8080\n serviceName: ${lb.serviceName}\n zone: all\n backend:\n type: ovh:IpLoadBalancing:HttpFarmServer\n properties:\n address: 4.5.6.7\n backup: true\n displayName: mybackend\n farmId: ${farmname.id}\n port: 80\n probe: true\n proxyProtocolVersion: v2\n serviceName: ${lb.serviceName}\n ssl: false\n status: active\n weight: 2\nvariables:\n lb:\n fn::invoke:\n Function: ovh:IpLoadBalancing:getIpLoadBalancing\n Arguments:\n serviceName: ip-1.2.3.4\n state: ok\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import \n\nHTTP farm server can be imported using the following format `service_name`, the `id` of the farm and the `id` of the server separated by \"/\" e.g.\n\n```bash\n$ terraform import ovh_iploadbalancing_http_farm_server.backend service_name/farm_id/server_id\n```\n", "properties": { "address": { "type": "string", @@ -12433,7 +12854,7 @@ } }, "ovh:IpLoadBalancing/httpFrontend:HttpFrontend": { - "description": "Creates a backend HTTP server group (frontend) to be used by loadbalancing frontend(s)\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 lb = ovh.IpLoadBalancing.getIpLoadBalancing({\n serviceName: \"ip-1.2.3.4\",\n state: \"ok\",\n});\nconst farm80 = new ovh.iploadbalancing.HttpFarm(\"farm80\", {\n displayName: \"ingress-8080-gra\",\n port: 80,\n serviceName: lb.then(lb =\u003e lb.serviceName),\n zone: \"all\",\n});\nconst testfrontend = new ovh.iploadbalancing.HttpFrontend(\"testfrontend\", {\n defaultFarmId: farm80.id,\n displayName: \"ingress-8080-gra\",\n port: \"80,443\",\n serviceName: lb.then(lb =\u003e lb.serviceName),\n zone: \"all\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"ip-1.2.3.4\",\n state=\"ok\")\nfarm80 = ovh.ip_load_balancing.HttpFarm(\"farm80\",\n display_name=\"ingress-8080-gra\",\n port=80,\n service_name=lb.service_name,\n zone=\"all\")\ntestfrontend = ovh.ip_load_balancing.HttpFrontend(\"testfrontend\",\n default_farm_id=farm80.id,\n display_name=\"ingress-8080-gra\",\n port=\"80,443\",\n service_name=lb.service_name,\n zone=\"all\")\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 lb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n {\n ServiceName = \"ip-1.2.3.4\",\n State = \"ok\",\n });\n\n var farm80 = new Ovh.IpLoadBalancing.HttpFarm(\"farm80\", new()\n {\n DisplayName = \"ingress-8080-gra\",\n Port = 80,\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n Zone = \"all\",\n });\n\n var testfrontend = new Ovh.IpLoadBalancing.HttpFrontend(\"testfrontend\", new()\n {\n DefaultFarmId = farm80.Id,\n DisplayName = \"ingress-8080-gra\",\n Port = \"80,443\",\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n Zone = \"all\",\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\tlb, err := IpLoadBalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\n\t\t\tServiceName: pulumi.StringRef(\"ip-1.2.3.4\"),\n\t\t\tState: pulumi.StringRef(\"ok\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfarm80, err := IpLoadBalancing.NewHttpFarm(ctx, \"farm80\", \u0026IpLoadBalancing.HttpFarmArgs{\n\t\t\tDisplayName: pulumi.String(\"ingress-8080-gra\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tServiceName: *pulumi.String(lb.ServiceName),\n\t\t\tZone: pulumi.String(\"all\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = IpLoadBalancing.NewHttpFrontend(ctx, \"testfrontend\", \u0026IpLoadBalancing.HttpFrontendArgs{\n\t\t\tDefaultFarmId: farm80.ID(),\n\t\t\tDisplayName: pulumi.String(\"ingress-8080-gra\"),\n\t\t\tPort: pulumi.String(\"80,443\"),\n\t\t\tServiceName: *pulumi.String(lb.ServiceName),\n\t\t\tZone: pulumi.String(\"all\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.IpLoadBalancing.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport com.pulumi.ovh.IpLoadBalancing.HttpFarm;\nimport com.pulumi.ovh.IpLoadBalancing.HttpFarmArgs;\nimport com.pulumi.ovh.IpLoadBalancing.HttpFrontend;\nimport com.pulumi.ovh.IpLoadBalancing.HttpFrontendArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 lb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n .serviceName(\"ip-1.2.3.4\")\n .state(\"ok\")\n .build());\n\n var farm80 = new HttpFarm(\"farm80\", HttpFarmArgs.builder() \n .displayName(\"ingress-8080-gra\")\n .port(80)\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .zone(\"all\")\n .build());\n\n var testfrontend = new HttpFrontend(\"testfrontend\", HttpFrontendArgs.builder() \n .defaultFarmId(farm80.id())\n .displayName(\"ingress-8080-gra\")\n .port(\"80,443\")\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .zone(\"all\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n farm80:\n type: ovh:IpLoadBalancing:HttpFarm\n properties:\n displayName: ingress-8080-gra\n port: 80\n serviceName: ${lb.serviceName}\n zone: all\n testfrontend:\n type: ovh:IpLoadBalancing:HttpFrontend\n properties:\n defaultFarmId: ${farm80.id}\n displayName: ingress-8080-gra\n port: 80,443\n serviceName: ${lb.serviceName}\n zone: all\nvariables:\n lb:\n fn::invoke:\n Function: ovh:IpLoadBalancing:getIpLoadBalancing\n Arguments:\n serviceName: ip-1.2.3.4\n state: ok\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n### With HTTP Header\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 lb = ovh.IpLoadBalancing.getIpLoadBalancing({\n serviceName: \"ip-1.2.3.4\",\n state: \"ok\",\n});\nconst farm80 = new ovh.iploadbalancing.HttpFarm(\"farm80\", {\n displayName: \"ingress-8080-gra\",\n port: 80,\n serviceName: lb.then(lb =\u003e lb.serviceName),\n zone: \"all\",\n});\nconst testfrontend = new ovh.iploadbalancing.HttpFrontend(\"testfrontend\", {\n defaultFarmId: farm80.id,\n displayName: \"ingress-8080-gra\",\n httpHeaders: [\n \"X-Ip-Header %%ci\",\n \"X-Port-Header %%cp\",\n ],\n port: \"80,443\",\n serviceName: lb.then(lb =\u003e lb.serviceName),\n zone: \"all\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"ip-1.2.3.4\",\n state=\"ok\")\nfarm80 = ovh.ip_load_balancing.HttpFarm(\"farm80\",\n display_name=\"ingress-8080-gra\",\n port=80,\n service_name=lb.service_name,\n zone=\"all\")\ntestfrontend = ovh.ip_load_balancing.HttpFrontend(\"testfrontend\",\n default_farm_id=farm80.id,\n display_name=\"ingress-8080-gra\",\n http_headers=[\n \"X-Ip-Header %%ci\",\n \"X-Port-Header %%cp\",\n ],\n port=\"80,443\",\n service_name=lb.service_name,\n zone=\"all\")\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 lb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n {\n ServiceName = \"ip-1.2.3.4\",\n State = \"ok\",\n });\n\n var farm80 = new Ovh.IpLoadBalancing.HttpFarm(\"farm80\", new()\n {\n DisplayName = \"ingress-8080-gra\",\n Port = 80,\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n Zone = \"all\",\n });\n\n var testfrontend = new Ovh.IpLoadBalancing.HttpFrontend(\"testfrontend\", new()\n {\n DefaultFarmId = farm80.Id,\n DisplayName = \"ingress-8080-gra\",\n HttpHeaders = new[]\n {\n \"X-Ip-Header %%ci\",\n \"X-Port-Header %%cp\",\n },\n Port = \"80,443\",\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n Zone = \"all\",\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\tlb, err := IpLoadBalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\n\t\t\tServiceName: pulumi.StringRef(\"ip-1.2.3.4\"),\n\t\t\tState: pulumi.StringRef(\"ok\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfarm80, err := IpLoadBalancing.NewHttpFarm(ctx, \"farm80\", \u0026IpLoadBalancing.HttpFarmArgs{\n\t\t\tDisplayName: pulumi.String(\"ingress-8080-gra\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tServiceName: *pulumi.String(lb.ServiceName),\n\t\t\tZone: pulumi.String(\"all\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = IpLoadBalancing.NewHttpFrontend(ctx, \"testfrontend\", \u0026IpLoadBalancing.HttpFrontendArgs{\n\t\t\tDefaultFarmId: farm80.ID(),\n\t\t\tDisplayName: pulumi.String(\"ingress-8080-gra\"),\n\t\t\tHttpHeaders: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"X-Ip-Header %%ci\"),\n\t\t\t\tpulumi.String(\"X-Port-Header %%cp\"),\n\t\t\t},\n\t\t\tPort: pulumi.String(\"80,443\"),\n\t\t\tServiceName: *pulumi.String(lb.ServiceName),\n\t\t\tZone: pulumi.String(\"all\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.IpLoadBalancing.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport com.pulumi.ovh.IpLoadBalancing.HttpFarm;\nimport com.pulumi.ovh.IpLoadBalancing.HttpFarmArgs;\nimport com.pulumi.ovh.IpLoadBalancing.HttpFrontend;\nimport com.pulumi.ovh.IpLoadBalancing.HttpFrontendArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 lb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n .serviceName(\"ip-1.2.3.4\")\n .state(\"ok\")\n .build());\n\n var farm80 = new HttpFarm(\"farm80\", HttpFarmArgs.builder() \n .displayName(\"ingress-8080-gra\")\n .port(80)\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .zone(\"all\")\n .build());\n\n var testfrontend = new HttpFrontend(\"testfrontend\", HttpFrontendArgs.builder() \n .defaultFarmId(farm80.id())\n .displayName(\"ingress-8080-gra\")\n .httpHeaders( \n \"X-Ip-Header %%ci\",\n \"X-Port-Header %%cp\")\n .port(\"80,443\")\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .zone(\"all\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n farm80:\n type: ovh:IpLoadBalancing:HttpFarm\n properties:\n displayName: ingress-8080-gra\n port: 80\n serviceName: ${lb.serviceName}\n zone: all\n testfrontend:\n type: ovh:IpLoadBalancing:HttpFrontend\n properties:\n defaultFarmId: ${farm80.id}\n displayName: ingress-8080-gra\n httpHeaders:\n - X-Ip-Header %%ci\n - X-Port-Header %%cp\n port: 80,443\n serviceName: ${lb.serviceName}\n zone: all\nvariables:\n lb:\n fn::invoke:\n Function: ovh:IpLoadBalancing:getIpLoadBalancing\n Arguments:\n serviceName: ip-1.2.3.4\n state: ok\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import \n\nHTTP frontend can be imported using the following format `service_name` and the `id` of the frontend separated by \"/\" e.g.\n\n```bash\n$ terraform import ovh_iploadbalancing_http_frontend.testfrontend service_name/http_frontend_id\n```\n", + "description": "Creates a backend HTTP server group (frontend) to be used by loadbalancing frontend(s)\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 lb = ovh.IpLoadBalancing.getIpLoadBalancing({\n serviceName: \"ip-1.2.3.4\",\n state: \"ok\",\n});\nconst farm80 = new ovh.iploadbalancing.HttpFarm(\"farm80\", {\n displayName: \"ingress-8080-gra\",\n port: 80,\n serviceName: lb.then(lb =\u003e lb.serviceName),\n zone: \"all\",\n});\nconst testfrontend = new ovh.iploadbalancing.HttpFrontend(\"testfrontend\", {\n defaultFarmId: farm80.id,\n displayName: \"ingress-8080-gra\",\n port: \"80,443\",\n serviceName: lb.then(lb =\u003e lb.serviceName),\n zone: \"all\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"ip-1.2.3.4\",\n state=\"ok\")\nfarm80 = ovh.ip_load_balancing.HttpFarm(\"farm80\",\n display_name=\"ingress-8080-gra\",\n port=80,\n service_name=lb.service_name,\n zone=\"all\")\ntestfrontend = ovh.ip_load_balancing.HttpFrontend(\"testfrontend\",\n default_farm_id=farm80.id,\n display_name=\"ingress-8080-gra\",\n port=\"80,443\",\n service_name=lb.service_name,\n zone=\"all\")\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 lb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n {\n ServiceName = \"ip-1.2.3.4\",\n State = \"ok\",\n });\n\n var farm80 = new Ovh.IpLoadBalancing.HttpFarm(\"farm80\", new()\n {\n DisplayName = \"ingress-8080-gra\",\n Port = 80,\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n Zone = \"all\",\n });\n\n var testfrontend = new Ovh.IpLoadBalancing.HttpFrontend(\"testfrontend\", new()\n {\n DefaultFarmId = farm80.Id,\n DisplayName = \"ingress-8080-gra\",\n Port = \"80,443\",\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n Zone = \"all\",\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\tlb, err := IpLoadBalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\n\t\t\tServiceName: pulumi.StringRef(\"ip-1.2.3.4\"),\n\t\t\tState: pulumi.StringRef(\"ok\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfarm80, err := IpLoadBalancing.NewHttpFarm(ctx, \"farm80\", \u0026IpLoadBalancing.HttpFarmArgs{\n\t\t\tDisplayName: pulumi.String(\"ingress-8080-gra\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tServiceName: pulumi.String(lb.ServiceName),\n\t\t\tZone: pulumi.String(\"all\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = IpLoadBalancing.NewHttpFrontend(ctx, \"testfrontend\", \u0026IpLoadBalancing.HttpFrontendArgs{\n\t\t\tDefaultFarmId: farm80.ID(),\n\t\t\tDisplayName: pulumi.String(\"ingress-8080-gra\"),\n\t\t\tPort: pulumi.String(\"80,443\"),\n\t\t\tServiceName: pulumi.String(lb.ServiceName),\n\t\t\tZone: pulumi.String(\"all\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.IpLoadBalancing.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport com.pulumi.ovh.IpLoadBalancing.HttpFarm;\nimport com.pulumi.ovh.IpLoadBalancing.HttpFarmArgs;\nimport com.pulumi.ovh.IpLoadBalancing.HttpFrontend;\nimport com.pulumi.ovh.IpLoadBalancing.HttpFrontendArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 lb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n .serviceName(\"ip-1.2.3.4\")\n .state(\"ok\")\n .build());\n\n var farm80 = new HttpFarm(\"farm80\", HttpFarmArgs.builder() \n .displayName(\"ingress-8080-gra\")\n .port(80)\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .zone(\"all\")\n .build());\n\n var testfrontend = new HttpFrontend(\"testfrontend\", HttpFrontendArgs.builder() \n .defaultFarmId(farm80.id())\n .displayName(\"ingress-8080-gra\")\n .port(\"80,443\")\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .zone(\"all\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n farm80:\n type: ovh:IpLoadBalancing:HttpFarm\n properties:\n displayName: ingress-8080-gra\n port: 80\n serviceName: ${lb.serviceName}\n zone: all\n testfrontend:\n type: ovh:IpLoadBalancing:HttpFrontend\n properties:\n defaultFarmId: ${farm80.id}\n displayName: ingress-8080-gra\n port: 80,443\n serviceName: ${lb.serviceName}\n zone: all\nvariables:\n lb:\n fn::invoke:\n Function: ovh:IpLoadBalancing:getIpLoadBalancing\n Arguments:\n serviceName: ip-1.2.3.4\n state: ok\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n### With HTTP Header\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 lb = ovh.IpLoadBalancing.getIpLoadBalancing({\n serviceName: \"ip-1.2.3.4\",\n state: \"ok\",\n});\nconst farm80 = new ovh.iploadbalancing.HttpFarm(\"farm80\", {\n displayName: \"ingress-8080-gra\",\n port: 80,\n serviceName: lb.then(lb =\u003e lb.serviceName),\n zone: \"all\",\n});\nconst testfrontend = new ovh.iploadbalancing.HttpFrontend(\"testfrontend\", {\n defaultFarmId: farm80.id,\n displayName: \"ingress-8080-gra\",\n httpHeaders: [\n \"X-Ip-Header %%ci\",\n \"X-Port-Header %%cp\",\n ],\n port: \"80,443\",\n serviceName: lb.then(lb =\u003e lb.serviceName),\n zone: \"all\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"ip-1.2.3.4\",\n state=\"ok\")\nfarm80 = ovh.ip_load_balancing.HttpFarm(\"farm80\",\n display_name=\"ingress-8080-gra\",\n port=80,\n service_name=lb.service_name,\n zone=\"all\")\ntestfrontend = ovh.ip_load_balancing.HttpFrontend(\"testfrontend\",\n default_farm_id=farm80.id,\n display_name=\"ingress-8080-gra\",\n http_headers=[\n \"X-Ip-Header %%ci\",\n \"X-Port-Header %%cp\",\n ],\n port=\"80,443\",\n service_name=lb.service_name,\n zone=\"all\")\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 lb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n {\n ServiceName = \"ip-1.2.3.4\",\n State = \"ok\",\n });\n\n var farm80 = new Ovh.IpLoadBalancing.HttpFarm(\"farm80\", new()\n {\n DisplayName = \"ingress-8080-gra\",\n Port = 80,\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n Zone = \"all\",\n });\n\n var testfrontend = new Ovh.IpLoadBalancing.HttpFrontend(\"testfrontend\", new()\n {\n DefaultFarmId = farm80.Id,\n DisplayName = \"ingress-8080-gra\",\n HttpHeaders = new[]\n {\n \"X-Ip-Header %%ci\",\n \"X-Port-Header %%cp\",\n },\n Port = \"80,443\",\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n Zone = \"all\",\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\tlb, err := IpLoadBalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\n\t\t\tServiceName: pulumi.StringRef(\"ip-1.2.3.4\"),\n\t\t\tState: pulumi.StringRef(\"ok\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfarm80, err := IpLoadBalancing.NewHttpFarm(ctx, \"farm80\", \u0026IpLoadBalancing.HttpFarmArgs{\n\t\t\tDisplayName: pulumi.String(\"ingress-8080-gra\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tServiceName: pulumi.String(lb.ServiceName),\n\t\t\tZone: pulumi.String(\"all\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = IpLoadBalancing.NewHttpFrontend(ctx, \"testfrontend\", \u0026IpLoadBalancing.HttpFrontendArgs{\n\t\t\tDefaultFarmId: farm80.ID(),\n\t\t\tDisplayName: pulumi.String(\"ingress-8080-gra\"),\n\t\t\tHttpHeaders: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"X-Ip-Header %%ci\"),\n\t\t\t\tpulumi.String(\"X-Port-Header %%cp\"),\n\t\t\t},\n\t\t\tPort: pulumi.String(\"80,443\"),\n\t\t\tServiceName: pulumi.String(lb.ServiceName),\n\t\t\tZone: pulumi.String(\"all\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.IpLoadBalancing.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport com.pulumi.ovh.IpLoadBalancing.HttpFarm;\nimport com.pulumi.ovh.IpLoadBalancing.HttpFarmArgs;\nimport com.pulumi.ovh.IpLoadBalancing.HttpFrontend;\nimport com.pulumi.ovh.IpLoadBalancing.HttpFrontendArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 lb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n .serviceName(\"ip-1.2.3.4\")\n .state(\"ok\")\n .build());\n\n var farm80 = new HttpFarm(\"farm80\", HttpFarmArgs.builder() \n .displayName(\"ingress-8080-gra\")\n .port(80)\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .zone(\"all\")\n .build());\n\n var testfrontend = new HttpFrontend(\"testfrontend\", HttpFrontendArgs.builder() \n .defaultFarmId(farm80.id())\n .displayName(\"ingress-8080-gra\")\n .httpHeaders( \n \"X-Ip-Header %%ci\",\n \"X-Port-Header %%cp\")\n .port(\"80,443\")\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .zone(\"all\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n farm80:\n type: ovh:IpLoadBalancing:HttpFarm\n properties:\n displayName: ingress-8080-gra\n port: 80\n serviceName: ${lb.serviceName}\n zone: all\n testfrontend:\n type: ovh:IpLoadBalancing:HttpFrontend\n properties:\n defaultFarmId: ${farm80.id}\n displayName: ingress-8080-gra\n httpHeaders:\n - X-Ip-Header %%ci\n - X-Port-Header %%cp\n port: 80,443\n serviceName: ${lb.serviceName}\n zone: all\nvariables:\n lb:\n fn::invoke:\n Function: ovh:IpLoadBalancing:getIpLoadBalancing\n Arguments:\n serviceName: ip-1.2.3.4\n state: ok\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import \n\nHTTP frontend can be imported using the following format `service_name` and the `id` of the frontend separated by \"/\" e.g.\n\n```bash\n$ terraform import ovh_iploadbalancing_http_frontend.testfrontend service_name/http_frontend_id\n```\n", "properties": { "allowedSources": { "type": "array", @@ -12878,7 +13299,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=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", "properties": { "LoadBalancerURN": { "type": "string", @@ -13130,7 +13551,7 @@ } }, "ovh:IpLoadBalancing/refresh:Refresh": { - "description": "Applies changes from other `ovh_iploadbalancing_*` resources to the production configuration of loadbalancers.\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 lb = ovh.IpLoadBalancing.getIpLoadBalancing({\n serviceName: \"ip-1.2.3.4\",\n state: \"ok\",\n});\nconst farmname = new ovh.iploadbalancing.TcpFarm(\"farmname\", {\n port: 8080,\n serviceName: lb.then(lb =\u003e lb.serviceName),\n zone: \"all\",\n});\nconst backend = new ovh.iploadbalancing.TcpFarmServer(\"backend\", {\n address: \"4.5.6.7\",\n backup: true,\n displayName: \"mybackend\",\n farmId: farmname.id,\n port: 80,\n probe: true,\n proxyProtocolVersion: \"v2\",\n serviceName: lb.then(lb =\u003e lb.serviceName),\n ssl: false,\n status: \"active\",\n weight: 2,\n});\nconst mylb = new ovh.iploadbalancing.Refresh(\"mylb\", {\n keepers: [[backend].map(__item =\u003e __item.address)],\n serviceName: lb.then(lb =\u003e lb.serviceName),\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"ip-1.2.3.4\",\n state=\"ok\")\nfarmname = ovh.ip_load_balancing.TcpFarm(\"farmname\",\n port=8080,\n service_name=lb.service_name,\n zone=\"all\")\nbackend = ovh.ip_load_balancing.TcpFarmServer(\"backend\",\n address=\"4.5.6.7\",\n backup=True,\n display_name=\"mybackend\",\n farm_id=farmname.id,\n port=80,\n probe=True,\n proxy_protocol_version=\"v2\",\n service_name=lb.service_name,\n ssl=False,\n status=\"active\",\n weight=2)\nmylb = ovh.ip_load_balancing.Refresh(\"mylb\",\n keepers=[[__item.address for __item in [backend]]],\n service_name=lb.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 lb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n {\n ServiceName = \"ip-1.2.3.4\",\n State = \"ok\",\n });\n\n var farmname = new Ovh.IpLoadBalancing.TcpFarm(\"farmname\", new()\n {\n Port = 8080,\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n Zone = \"all\",\n });\n\n var backend = new Ovh.IpLoadBalancing.TcpFarmServer(\"backend\", new()\n {\n Address = \"4.5.6.7\",\n Backup = true,\n DisplayName = \"mybackend\",\n FarmId = farmname.Id,\n Port = 80,\n Probe = true,\n ProxyProtocolVersion = \"v2\",\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n Ssl = false,\n Status = \"active\",\n Weight = 2,\n });\n\n var mylb = new Ovh.IpLoadBalancing.Refresh(\"mylb\", new()\n {\n Keepers = new[]\n {\n new[]\n {\n backend,\n }.Select(__item =\u003e __item.Address).ToList(),\n },\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\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)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nlb, err := IpLoadBalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\nServiceName: pulumi.StringRef(\"ip-1.2.3.4\"),\nState: pulumi.StringRef(\"ok\"),\n}, nil);\nif err != nil {\nreturn err\n}\nfarmname, err := IpLoadBalancing.NewTcpFarm(ctx, \"farmname\", \u0026IpLoadBalancing.TcpFarmArgs{\nPort: pulumi.Int(8080),\nServiceName: *pulumi.String(lb.ServiceName),\nZone: pulumi.String(\"all\"),\n})\nif err != nil {\nreturn err\n}\nbackend, err := IpLoadBalancing.NewTcpFarmServer(ctx, \"backend\", \u0026IpLoadBalancing.TcpFarmServerArgs{\nAddress: pulumi.String(\"4.5.6.7\"),\nBackup: pulumi.Bool(true),\nDisplayName: pulumi.String(\"mybackend\"),\nFarmId: farmname.ID(),\nPort: pulumi.Int(80),\nProbe: pulumi.Bool(true),\nProxyProtocolVersion: pulumi.String(\"v2\"),\nServiceName: *pulumi.String(lb.ServiceName),\nSsl: pulumi.Bool(false),\nStatus: pulumi.String(\"active\"),\nWeight: pulumi.Int(2),\n})\nif err != nil {\nreturn err\n}\n_, err = IpLoadBalancing.NewRefresh(ctx, \"mylb\", \u0026IpLoadBalancing.RefreshArgs{\nKeepers: pulumi.StringArray{\n%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ #-resources-ovh:IpLoadBalancing-refresh:Refresh.pp:23,16-35),\n},\nServiceName: *pulumi.String(lb.ServiceName),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.IpLoadBalancing.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport com.pulumi.ovh.IpLoadBalancing.TcpFarm;\nimport com.pulumi.ovh.IpLoadBalancing.TcpFarmArgs;\nimport com.pulumi.ovh.IpLoadBalancing.TcpFarmServer;\nimport com.pulumi.ovh.IpLoadBalancing.TcpFarmServerArgs;\nimport com.pulumi.ovh.IpLoadBalancing.Refresh;\nimport com.pulumi.ovh.IpLoadBalancing.RefreshArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 lb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n .serviceName(\"ip-1.2.3.4\")\n .state(\"ok\")\n .build());\n\n var farmname = new TcpFarm(\"farmname\", TcpFarmArgs.builder() \n .port(8080)\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .zone(\"all\")\n .build());\n\n var backend = new TcpFarmServer(\"backend\", TcpFarmServerArgs.builder() \n .address(\"4.5.6.7\")\n .backup(true)\n .displayName(\"mybackend\")\n .farmId(farmname.id())\n .port(80)\n .probe(true)\n .proxyProtocolVersion(\"v2\")\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .ssl(false)\n .status(\"active\")\n .weight(2)\n .build());\n\n var mylb = new Refresh(\"mylb\", RefreshArgs.builder() \n .keepers(backend.stream().map(element -\u003e element.address()).collect(toList()))\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .build());\n\n }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Applies changes from other `ovh_iploadbalancing_*` resources to the production configuration of loadbalancers.\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 lb = ovh.IpLoadBalancing.getIpLoadBalancing({\n serviceName: \"ip-1.2.3.4\",\n state: \"ok\",\n});\nconst farmname = new ovh.iploadbalancing.TcpFarm(\"farmname\", {\n port: 8080,\n serviceName: lb.then(lb =\u003e lb.serviceName),\n zone: \"all\",\n});\nconst backend = new ovh.iploadbalancing.TcpFarmServer(\"backend\", {\n address: \"4.5.6.7\",\n backup: true,\n displayName: \"mybackend\",\n farmId: farmname.id,\n port: 80,\n probe: true,\n proxyProtocolVersion: \"v2\",\n serviceName: lb.then(lb =\u003e lb.serviceName),\n ssl: false,\n status: \"active\",\n weight: 2,\n});\nconst mylb = new ovh.iploadbalancing.Refresh(\"mylb\", {\n keepers: [[backend].map(__item =\u003e __item.address)],\n serviceName: lb.then(lb =\u003e lb.serviceName),\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"ip-1.2.3.4\",\n state=\"ok\")\nfarmname = ovh.ip_load_balancing.TcpFarm(\"farmname\",\n port=8080,\n service_name=lb.service_name,\n zone=\"all\")\nbackend = ovh.ip_load_balancing.TcpFarmServer(\"backend\",\n address=\"4.5.6.7\",\n backup=True,\n display_name=\"mybackend\",\n farm_id=farmname.id,\n port=80,\n probe=True,\n proxy_protocol_version=\"v2\",\n service_name=lb.service_name,\n ssl=False,\n status=\"active\",\n weight=2)\nmylb = ovh.ip_load_balancing.Refresh(\"mylb\",\n keepers=[[__item.address for __item in [backend]]],\n service_name=lb.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 lb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n {\n ServiceName = \"ip-1.2.3.4\",\n State = \"ok\",\n });\n\n var farmname = new Ovh.IpLoadBalancing.TcpFarm(\"farmname\", new()\n {\n Port = 8080,\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n Zone = \"all\",\n });\n\n var backend = new Ovh.IpLoadBalancing.TcpFarmServer(\"backend\", new()\n {\n Address = \"4.5.6.7\",\n Backup = true,\n DisplayName = \"mybackend\",\n FarmId = farmname.Id,\n Port = 80,\n Probe = true,\n ProxyProtocolVersion = \"v2\",\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n Ssl = false,\n Status = \"active\",\n Weight = 2,\n });\n\n var mylb = new Ovh.IpLoadBalancing.Refresh(\"mylb\", new()\n {\n Keepers = new[]\n {\n new[]\n {\n backend,\n }.Select(__item =\u003e __item.Address).ToList(),\n },\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\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)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nlb, err := IpLoadBalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\nServiceName: pulumi.StringRef(\"ip-1.2.3.4\"),\nState: pulumi.StringRef(\"ok\"),\n}, nil);\nif err != nil {\nreturn err\n}\nfarmname, err := IpLoadBalancing.NewTcpFarm(ctx, \"farmname\", \u0026IpLoadBalancing.TcpFarmArgs{\nPort: pulumi.Int(8080),\nServiceName: pulumi.String(lb.ServiceName),\nZone: pulumi.String(\"all\"),\n})\nif err != nil {\nreturn err\n}\nbackend, err := IpLoadBalancing.NewTcpFarmServer(ctx, \"backend\", \u0026IpLoadBalancing.TcpFarmServerArgs{\nAddress: pulumi.String(\"4.5.6.7\"),\nBackup: pulumi.Bool(true),\nDisplayName: pulumi.String(\"mybackend\"),\nFarmId: farmname.ID(),\nPort: pulumi.Int(80),\nProbe: pulumi.Bool(true),\nProxyProtocolVersion: pulumi.String(\"v2\"),\nServiceName: pulumi.String(lb.ServiceName),\nSsl: pulumi.Bool(false),\nStatus: pulumi.String(\"active\"),\nWeight: pulumi.Int(2),\n})\nif err != nil {\nreturn err\n}\n_, err = IpLoadBalancing.NewRefresh(ctx, \"mylb\", \u0026IpLoadBalancing.RefreshArgs{\nKeepers: pulumi.StringArray{\n%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ #-resources-ovh:IpLoadBalancing-refresh:Refresh.pp:23,16-35),\n},\nServiceName: pulumi.String(lb.ServiceName),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.IpLoadBalancing.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport com.pulumi.ovh.IpLoadBalancing.TcpFarm;\nimport com.pulumi.ovh.IpLoadBalancing.TcpFarmArgs;\nimport com.pulumi.ovh.IpLoadBalancing.TcpFarmServer;\nimport com.pulumi.ovh.IpLoadBalancing.TcpFarmServerArgs;\nimport com.pulumi.ovh.IpLoadBalancing.Refresh;\nimport com.pulumi.ovh.IpLoadBalancing.RefreshArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 lb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n .serviceName(\"ip-1.2.3.4\")\n .state(\"ok\")\n .build());\n\n var farmname = new TcpFarm(\"farmname\", TcpFarmArgs.builder() \n .port(8080)\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .zone(\"all\")\n .build());\n\n var backend = new TcpFarmServer(\"backend\", TcpFarmServerArgs.builder() \n .address(\"4.5.6.7\")\n .backup(true)\n .displayName(\"mybackend\")\n .farmId(farmname.id())\n .port(80)\n .probe(true)\n .proxyProtocolVersion(\"v2\")\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .ssl(false)\n .status(\"active\")\n .weight(2)\n .build());\n\n var mylb = new Refresh(\"mylb\", RefreshArgs.builder() \n .keepers(backend.stream().map(element -\u003e element.address()).collect(toList()))\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .build());\n\n }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "keepers": { "type": "array", @@ -13188,7 +13609,7 @@ } }, "ovh:IpLoadBalancing/tcpFarm:TcpFarm": { - "description": "Creates a backend server group (farm) to be used by loadbalancing frontend(s)\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 lb = ovh.IpLoadBalancing.getIpLoadBalancing({\n serviceName: \"ip-1.2.3.4\",\n state: \"ok\",\n});\nconst farmname = new ovh.iploadbalancing.TcpFarm(\"farmname\", {\n displayName: \"ingress-8080-gra\",\n serviceName: lb.then(lb =\u003e lb.serviceName),\n zone: \"GRA\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"ip-1.2.3.4\",\n state=\"ok\")\nfarmname = ovh.ip_load_balancing.TcpFarm(\"farmname\",\n display_name=\"ingress-8080-gra\",\n service_name=lb.service_name,\n zone=\"GRA\")\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 lb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n {\n ServiceName = \"ip-1.2.3.4\",\n State = \"ok\",\n });\n\n var farmname = new Ovh.IpLoadBalancing.TcpFarm(\"farmname\", new()\n {\n DisplayName = \"ingress-8080-gra\",\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n Zone = \"GRA\",\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\tlb, err := IpLoadBalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\n\t\t\tServiceName: pulumi.StringRef(\"ip-1.2.3.4\"),\n\t\t\tState: pulumi.StringRef(\"ok\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = IpLoadBalancing.NewTcpFarm(ctx, \"farmname\", \u0026IpLoadBalancing.TcpFarmArgs{\n\t\t\tDisplayName: pulumi.String(\"ingress-8080-gra\"),\n\t\t\tServiceName: *pulumi.String(lb.ServiceName),\n\t\t\tZone: pulumi.String(\"GRA\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport com.pulumi.ovh.IpLoadBalancing.TcpFarm;\nimport com.pulumi.ovh.IpLoadBalancing.TcpFarmArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 lb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n .serviceName(\"ip-1.2.3.4\")\n .state(\"ok\")\n .build());\n\n var farmname = new TcpFarm(\"farmname\", TcpFarmArgs.builder() \n .displayName(\"ingress-8080-gra\")\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .zone(\"GRA\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n farmname:\n type: ovh:IpLoadBalancing:TcpFarm\n properties:\n displayName: ingress-8080-gra\n serviceName: ${lb.serviceName}\n zone: GRA\nvariables:\n lb:\n fn::invoke:\n Function: ovh:IpLoadBalancing:getIpLoadBalancing\n Arguments:\n serviceName: ip-1.2.3.4\n state: ok\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import \n\nTCP Farm can be imported using the following format `service_name` and the `id` of the farm, separated by \"/\" e.g.\n\n```bash\n$ terraform import ovh_iploadbalancing_tcp_farm.farmname service_name/farm_id\n```\n", + "description": "Creates a backend server group (farm) to be used by loadbalancing frontend(s)\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 lb = ovh.IpLoadBalancing.getIpLoadBalancing({\n serviceName: \"ip-1.2.3.4\",\n state: \"ok\",\n});\nconst farmname = new ovh.iploadbalancing.TcpFarm(\"farmname\", {\n displayName: \"ingress-8080-gra\",\n serviceName: lb.then(lb =\u003e lb.serviceName),\n zone: \"GRA\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"ip-1.2.3.4\",\n state=\"ok\")\nfarmname = ovh.ip_load_balancing.TcpFarm(\"farmname\",\n display_name=\"ingress-8080-gra\",\n service_name=lb.service_name,\n zone=\"GRA\")\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 lb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n {\n ServiceName = \"ip-1.2.3.4\",\n State = \"ok\",\n });\n\n var farmname = new Ovh.IpLoadBalancing.TcpFarm(\"farmname\", new()\n {\n DisplayName = \"ingress-8080-gra\",\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n Zone = \"GRA\",\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\tlb, err := IpLoadBalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\n\t\t\tServiceName: pulumi.StringRef(\"ip-1.2.3.4\"),\n\t\t\tState: pulumi.StringRef(\"ok\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = IpLoadBalancing.NewTcpFarm(ctx, \"farmname\", \u0026IpLoadBalancing.TcpFarmArgs{\n\t\t\tDisplayName: pulumi.String(\"ingress-8080-gra\"),\n\t\t\tServiceName: pulumi.String(lb.ServiceName),\n\t\t\tZone: pulumi.String(\"GRA\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport com.pulumi.ovh.IpLoadBalancing.TcpFarm;\nimport com.pulumi.ovh.IpLoadBalancing.TcpFarmArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 lb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n .serviceName(\"ip-1.2.3.4\")\n .state(\"ok\")\n .build());\n\n var farmname = new TcpFarm(\"farmname\", TcpFarmArgs.builder() \n .displayName(\"ingress-8080-gra\")\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .zone(\"GRA\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n farmname:\n type: ovh:IpLoadBalancing:TcpFarm\n properties:\n displayName: ingress-8080-gra\n serviceName: ${lb.serviceName}\n zone: GRA\nvariables:\n lb:\n fn::invoke:\n Function: ovh:IpLoadBalancing:getIpLoadBalancing\n Arguments:\n serviceName: ip-1.2.3.4\n state: ok\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import \n\nTCP Farm can be imported using the following format `service_name` and the `id` of the farm, separated by \"/\" e.g.\n\n```bash\n$ terraform import ovh_iploadbalancing_tcp_farm.farmname service_name/farm_id\n```\n", "properties": { "balance": { "type": "string", @@ -13309,7 +13730,7 @@ } }, "ovh:IpLoadBalancing/tcpFarmServer:TcpFarmServer": { - "description": "Creates a backend server entry linked to loadbalancing group (farm)\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 lb = ovh.IpLoadBalancing.getIpLoadBalancing({\n serviceName: \"ip-1.2.3.4\",\n state: \"ok\",\n});\nconst farmname = new ovh.iploadbalancing.TcpFarm(\"farmname\", {\n port: 8080,\n serviceName: lb.then(lb =\u003e lb.serviceName),\n zone: \"all\",\n});\nconst backend = new ovh.iploadbalancing.TcpFarmServer(\"backend\", {\n address: \"4.5.6.7\",\n backup: true,\n displayName: \"mybackend\",\n farmId: farmname.id,\n port: 80,\n probe: true,\n proxyProtocolVersion: \"v2\",\n serviceName: lb.then(lb =\u003e lb.serviceName),\n ssl: false,\n status: \"active\",\n weight: 2,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"ip-1.2.3.4\",\n state=\"ok\")\nfarmname = ovh.ip_load_balancing.TcpFarm(\"farmname\",\n port=8080,\n service_name=lb.service_name,\n zone=\"all\")\nbackend = ovh.ip_load_balancing.TcpFarmServer(\"backend\",\n address=\"4.5.6.7\",\n backup=True,\n display_name=\"mybackend\",\n farm_id=farmname.id,\n port=80,\n probe=True,\n proxy_protocol_version=\"v2\",\n service_name=lb.service_name,\n ssl=False,\n status=\"active\",\n weight=2)\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 lb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n {\n ServiceName = \"ip-1.2.3.4\",\n State = \"ok\",\n });\n\n var farmname = new Ovh.IpLoadBalancing.TcpFarm(\"farmname\", new()\n {\n Port = 8080,\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n Zone = \"all\",\n });\n\n var backend = new Ovh.IpLoadBalancing.TcpFarmServer(\"backend\", new()\n {\n Address = \"4.5.6.7\",\n Backup = true,\n DisplayName = \"mybackend\",\n FarmId = farmname.Id,\n Port = 80,\n Probe = true,\n ProxyProtocolVersion = \"v2\",\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n Ssl = false,\n Status = \"active\",\n Weight = 2,\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\tlb, err := IpLoadBalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\n\t\t\tServiceName: pulumi.StringRef(\"ip-1.2.3.4\"),\n\t\t\tState: pulumi.StringRef(\"ok\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfarmname, err := IpLoadBalancing.NewTcpFarm(ctx, \"farmname\", \u0026IpLoadBalancing.TcpFarmArgs{\n\t\t\tPort: pulumi.Int(8080),\n\t\t\tServiceName: *pulumi.String(lb.ServiceName),\n\t\t\tZone: pulumi.String(\"all\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = IpLoadBalancing.NewTcpFarmServer(ctx, \"backend\", \u0026IpLoadBalancing.TcpFarmServerArgs{\n\t\t\tAddress: pulumi.String(\"4.5.6.7\"),\n\t\t\tBackup: pulumi.Bool(true),\n\t\t\tDisplayName: pulumi.String(\"mybackend\"),\n\t\t\tFarmId: farmname.ID(),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProbe: pulumi.Bool(true),\n\t\t\tProxyProtocolVersion: pulumi.String(\"v2\"),\n\t\t\tServiceName: *pulumi.String(lb.ServiceName),\n\t\t\tSsl: pulumi.Bool(false),\n\t\t\tStatus: pulumi.String(\"active\"),\n\t\t\tWeight: pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.IpLoadBalancing.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport com.pulumi.ovh.IpLoadBalancing.TcpFarm;\nimport com.pulumi.ovh.IpLoadBalancing.TcpFarmArgs;\nimport com.pulumi.ovh.IpLoadBalancing.TcpFarmServer;\nimport com.pulumi.ovh.IpLoadBalancing.TcpFarmServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 lb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n .serviceName(\"ip-1.2.3.4\")\n .state(\"ok\")\n .build());\n\n var farmname = new TcpFarm(\"farmname\", TcpFarmArgs.builder() \n .port(8080)\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .zone(\"all\")\n .build());\n\n var backend = new TcpFarmServer(\"backend\", TcpFarmServerArgs.builder() \n .address(\"4.5.6.7\")\n .backup(true)\n .displayName(\"mybackend\")\n .farmId(farmname.id())\n .port(80)\n .probe(true)\n .proxyProtocolVersion(\"v2\")\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .ssl(false)\n .status(\"active\")\n .weight(2)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n farmname:\n type: ovh:IpLoadBalancing:TcpFarm\n properties:\n port: 8080\n serviceName: ${lb.serviceName}\n zone: all\n backend:\n type: ovh:IpLoadBalancing:TcpFarmServer\n properties:\n address: 4.5.6.7\n backup: true\n displayName: mybackend\n farmId: ${farmname.id}\n port: 80\n probe: true\n proxyProtocolVersion: v2\n serviceName: ${lb.serviceName}\n ssl: false\n status: active\n weight: 2\nvariables:\n lb:\n fn::invoke:\n Function: ovh:IpLoadBalancing:getIpLoadBalancing\n Arguments:\n serviceName: ip-1.2.3.4\n state: ok\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import \n\nTCP farm server can be imported using the following format `service_name`, the `id` of the farm and the `id` of the server separated by \"/\" e.g.\n\n```bash\n$ terraform import ovh_iploadbalancing_tcp_farm_server.backend service_name/farm_id/server_id\n```\n", + "description": "Creates a backend server entry linked to loadbalancing group (farm)\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 lb = ovh.IpLoadBalancing.getIpLoadBalancing({\n serviceName: \"ip-1.2.3.4\",\n state: \"ok\",\n});\nconst farmname = new ovh.iploadbalancing.TcpFarm(\"farmname\", {\n port: 8080,\n serviceName: lb.then(lb =\u003e lb.serviceName),\n zone: \"all\",\n});\nconst backend = new ovh.iploadbalancing.TcpFarmServer(\"backend\", {\n address: \"4.5.6.7\",\n backup: true,\n displayName: \"mybackend\",\n farmId: farmname.id,\n port: 80,\n probe: true,\n proxyProtocolVersion: \"v2\",\n serviceName: lb.then(lb =\u003e lb.serviceName),\n ssl: false,\n status: \"active\",\n weight: 2,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"ip-1.2.3.4\",\n state=\"ok\")\nfarmname = ovh.ip_load_balancing.TcpFarm(\"farmname\",\n port=8080,\n service_name=lb.service_name,\n zone=\"all\")\nbackend = ovh.ip_load_balancing.TcpFarmServer(\"backend\",\n address=\"4.5.6.7\",\n backup=True,\n display_name=\"mybackend\",\n farm_id=farmname.id,\n port=80,\n probe=True,\n proxy_protocol_version=\"v2\",\n service_name=lb.service_name,\n ssl=False,\n status=\"active\",\n weight=2)\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 lb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n {\n ServiceName = \"ip-1.2.3.4\",\n State = \"ok\",\n });\n\n var farmname = new Ovh.IpLoadBalancing.TcpFarm(\"farmname\", new()\n {\n Port = 8080,\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n Zone = \"all\",\n });\n\n var backend = new Ovh.IpLoadBalancing.TcpFarmServer(\"backend\", new()\n {\n Address = \"4.5.6.7\",\n Backup = true,\n DisplayName = \"mybackend\",\n FarmId = farmname.Id,\n Port = 80,\n Probe = true,\n ProxyProtocolVersion = \"v2\",\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n Ssl = false,\n Status = \"active\",\n Weight = 2,\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\tlb, err := IpLoadBalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\n\t\t\tServiceName: pulumi.StringRef(\"ip-1.2.3.4\"),\n\t\t\tState: pulumi.StringRef(\"ok\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfarmname, err := IpLoadBalancing.NewTcpFarm(ctx, \"farmname\", \u0026IpLoadBalancing.TcpFarmArgs{\n\t\t\tPort: pulumi.Int(8080),\n\t\t\tServiceName: pulumi.String(lb.ServiceName),\n\t\t\tZone: pulumi.String(\"all\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = IpLoadBalancing.NewTcpFarmServer(ctx, \"backend\", \u0026IpLoadBalancing.TcpFarmServerArgs{\n\t\t\tAddress: pulumi.String(\"4.5.6.7\"),\n\t\t\tBackup: pulumi.Bool(true),\n\t\t\tDisplayName: pulumi.String(\"mybackend\"),\n\t\t\tFarmId: farmname.ID(),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProbe: pulumi.Bool(true),\n\t\t\tProxyProtocolVersion: pulumi.String(\"v2\"),\n\t\t\tServiceName: pulumi.String(lb.ServiceName),\n\t\t\tSsl: pulumi.Bool(false),\n\t\t\tStatus: pulumi.String(\"active\"),\n\t\t\tWeight: pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.IpLoadBalancing.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport com.pulumi.ovh.IpLoadBalancing.TcpFarm;\nimport com.pulumi.ovh.IpLoadBalancing.TcpFarmArgs;\nimport com.pulumi.ovh.IpLoadBalancing.TcpFarmServer;\nimport com.pulumi.ovh.IpLoadBalancing.TcpFarmServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 lb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n .serviceName(\"ip-1.2.3.4\")\n .state(\"ok\")\n .build());\n\n var farmname = new TcpFarm(\"farmname\", TcpFarmArgs.builder() \n .port(8080)\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .zone(\"all\")\n .build());\n\n var backend = new TcpFarmServer(\"backend\", TcpFarmServerArgs.builder() \n .address(\"4.5.6.7\")\n .backup(true)\n .displayName(\"mybackend\")\n .farmId(farmname.id())\n .port(80)\n .probe(true)\n .proxyProtocolVersion(\"v2\")\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .ssl(false)\n .status(\"active\")\n .weight(2)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n farmname:\n type: ovh:IpLoadBalancing:TcpFarm\n properties:\n port: 8080\n serviceName: ${lb.serviceName}\n zone: all\n backend:\n type: ovh:IpLoadBalancing:TcpFarmServer\n properties:\n address: 4.5.6.7\n backup: true\n displayName: mybackend\n farmId: ${farmname.id}\n port: 80\n probe: true\n proxyProtocolVersion: v2\n serviceName: ${lb.serviceName}\n ssl: false\n status: active\n weight: 2\nvariables:\n lb:\n fn::invoke:\n Function: ovh:IpLoadBalancing:getIpLoadBalancing\n Arguments:\n serviceName: ip-1.2.3.4\n state: ok\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import \n\nTCP farm server can be imported using the following format `service_name`, the `id` of the farm and the `id` of the server separated by \"/\" e.g.\n\n```bash\n$ terraform import ovh_iploadbalancing_tcp_farm_server.backend service_name/farm_id/server_id\n```\n", "properties": { "address": { "type": "string", @@ -13493,7 +13914,7 @@ } }, "ovh:IpLoadBalancing/tcpFrontend:TcpFrontend": { - "description": "Creates a backend server group (frontend) to be used by loadbalancing frontend(s)\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 lb = ovh.IpLoadBalancing.getIpLoadBalancing({\n serviceName: \"ip-1.2.3.4\",\n state: \"ok\",\n});\nconst farm80 = new ovh.iploadbalancing.TcpFarm(\"farm80\", {\n displayName: \"ingress-8080-gra\",\n port: 80,\n serviceName: lb.then(lb =\u003e lb.serviceName),\n zone: \"all\",\n});\nconst testfrontend = new ovh.iploadbalancing.TcpFrontend(\"testfrontend\", {\n defaultFarmId: farm80.id,\n displayName: \"ingress-8080-gra\",\n port: \"80,443\",\n serviceName: lb.then(lb =\u003e lb.serviceName),\n zone: \"all\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"ip-1.2.3.4\",\n state=\"ok\")\nfarm80 = ovh.ip_load_balancing.TcpFarm(\"farm80\",\n display_name=\"ingress-8080-gra\",\n port=80,\n service_name=lb.service_name,\n zone=\"all\")\ntestfrontend = ovh.ip_load_balancing.TcpFrontend(\"testfrontend\",\n default_farm_id=farm80.id,\n display_name=\"ingress-8080-gra\",\n port=\"80,443\",\n service_name=lb.service_name,\n zone=\"all\")\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 lb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n {\n ServiceName = \"ip-1.2.3.4\",\n State = \"ok\",\n });\n\n var farm80 = new Ovh.IpLoadBalancing.TcpFarm(\"farm80\", new()\n {\n DisplayName = \"ingress-8080-gra\",\n Port = 80,\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n Zone = \"all\",\n });\n\n var testfrontend = new Ovh.IpLoadBalancing.TcpFrontend(\"testfrontend\", new()\n {\n DefaultFarmId = farm80.Id,\n DisplayName = \"ingress-8080-gra\",\n Port = \"80,443\",\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n Zone = \"all\",\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\tlb, err := IpLoadBalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\n\t\t\tServiceName: pulumi.StringRef(\"ip-1.2.3.4\"),\n\t\t\tState: pulumi.StringRef(\"ok\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfarm80, err := IpLoadBalancing.NewTcpFarm(ctx, \"farm80\", \u0026IpLoadBalancing.TcpFarmArgs{\n\t\t\tDisplayName: pulumi.String(\"ingress-8080-gra\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tServiceName: *pulumi.String(lb.ServiceName),\n\t\t\tZone: pulumi.String(\"all\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = IpLoadBalancing.NewTcpFrontend(ctx, \"testfrontend\", \u0026IpLoadBalancing.TcpFrontendArgs{\n\t\t\tDefaultFarmId: farm80.ID(),\n\t\t\tDisplayName: pulumi.String(\"ingress-8080-gra\"),\n\t\t\tPort: pulumi.String(\"80,443\"),\n\t\t\tServiceName: *pulumi.String(lb.ServiceName),\n\t\t\tZone: pulumi.String(\"all\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.IpLoadBalancing.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport com.pulumi.ovh.IpLoadBalancing.TcpFarm;\nimport com.pulumi.ovh.IpLoadBalancing.TcpFarmArgs;\nimport com.pulumi.ovh.IpLoadBalancing.TcpFrontend;\nimport com.pulumi.ovh.IpLoadBalancing.TcpFrontendArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 lb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n .serviceName(\"ip-1.2.3.4\")\n .state(\"ok\")\n .build());\n\n var farm80 = new TcpFarm(\"farm80\", TcpFarmArgs.builder() \n .displayName(\"ingress-8080-gra\")\n .port(80)\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .zone(\"all\")\n .build());\n\n var testfrontend = new TcpFrontend(\"testfrontend\", TcpFrontendArgs.builder() \n .defaultFarmId(farm80.id())\n .displayName(\"ingress-8080-gra\")\n .port(\"80,443\")\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .zone(\"all\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n farm80:\n type: ovh:IpLoadBalancing:TcpFarm\n properties:\n displayName: ingress-8080-gra\n port: 80\n serviceName: ${lb.serviceName}\n zone: all\n testfrontend:\n type: ovh:IpLoadBalancing:TcpFrontend\n properties:\n defaultFarmId: ${farm80.id}\n displayName: ingress-8080-gra\n port: 80,443\n serviceName: ${lb.serviceName}\n zone: all\nvariables:\n lb:\n fn::invoke:\n Function: ovh:IpLoadBalancing:getIpLoadBalancing\n Arguments:\n serviceName: ip-1.2.3.4\n state: ok\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import \n\nTCP frontend can be imported using the following format `service_name` and the `id` of the frontend separated by \"/\" e.g.\n\n```bash\n$ terraform import ovh_iploadbalancing_tcp_frontend.testfrontend service_name/tcp_frontend_id\n```\n", + "description": "Creates a backend server group (frontend) to be used by loadbalancing frontend(s)\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 lb = ovh.IpLoadBalancing.getIpLoadBalancing({\n serviceName: \"ip-1.2.3.4\",\n state: \"ok\",\n});\nconst farm80 = new ovh.iploadbalancing.TcpFarm(\"farm80\", {\n displayName: \"ingress-8080-gra\",\n port: 80,\n serviceName: lb.then(lb =\u003e lb.serviceName),\n zone: \"all\",\n});\nconst testfrontend = new ovh.iploadbalancing.TcpFrontend(\"testfrontend\", {\n defaultFarmId: farm80.id,\n displayName: \"ingress-8080-gra\",\n port: \"80,443\",\n serviceName: lb.then(lb =\u003e lb.serviceName),\n zone: \"all\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"ip-1.2.3.4\",\n state=\"ok\")\nfarm80 = ovh.ip_load_balancing.TcpFarm(\"farm80\",\n display_name=\"ingress-8080-gra\",\n port=80,\n service_name=lb.service_name,\n zone=\"all\")\ntestfrontend = ovh.ip_load_balancing.TcpFrontend(\"testfrontend\",\n default_farm_id=farm80.id,\n display_name=\"ingress-8080-gra\",\n port=\"80,443\",\n service_name=lb.service_name,\n zone=\"all\")\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 lb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n {\n ServiceName = \"ip-1.2.3.4\",\n State = \"ok\",\n });\n\n var farm80 = new Ovh.IpLoadBalancing.TcpFarm(\"farm80\", new()\n {\n DisplayName = \"ingress-8080-gra\",\n Port = 80,\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n Zone = \"all\",\n });\n\n var testfrontend = new Ovh.IpLoadBalancing.TcpFrontend(\"testfrontend\", new()\n {\n DefaultFarmId = farm80.Id,\n DisplayName = \"ingress-8080-gra\",\n Port = \"80,443\",\n ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n Zone = \"all\",\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\tlb, err := IpLoadBalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\n\t\t\tServiceName: pulumi.StringRef(\"ip-1.2.3.4\"),\n\t\t\tState: pulumi.StringRef(\"ok\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfarm80, err := IpLoadBalancing.NewTcpFarm(ctx, \"farm80\", \u0026IpLoadBalancing.TcpFarmArgs{\n\t\t\tDisplayName: pulumi.String(\"ingress-8080-gra\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tServiceName: pulumi.String(lb.ServiceName),\n\t\t\tZone: pulumi.String(\"all\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = IpLoadBalancing.NewTcpFrontend(ctx, \"testfrontend\", \u0026IpLoadBalancing.TcpFrontendArgs{\n\t\t\tDefaultFarmId: farm80.ID(),\n\t\t\tDisplayName: pulumi.String(\"ingress-8080-gra\"),\n\t\t\tPort: pulumi.String(\"80,443\"),\n\t\t\tServiceName: pulumi.String(lb.ServiceName),\n\t\t\tZone: pulumi.String(\"all\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.IpLoadBalancing.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport com.pulumi.ovh.IpLoadBalancing.TcpFarm;\nimport com.pulumi.ovh.IpLoadBalancing.TcpFarmArgs;\nimport com.pulumi.ovh.IpLoadBalancing.TcpFrontend;\nimport com.pulumi.ovh.IpLoadBalancing.TcpFrontendArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 lb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n .serviceName(\"ip-1.2.3.4\")\n .state(\"ok\")\n .build());\n\n var farm80 = new TcpFarm(\"farm80\", TcpFarmArgs.builder() \n .displayName(\"ingress-8080-gra\")\n .port(80)\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .zone(\"all\")\n .build());\n\n var testfrontend = new TcpFrontend(\"testfrontend\", TcpFrontendArgs.builder() \n .defaultFarmId(farm80.id())\n .displayName(\"ingress-8080-gra\")\n .port(\"80,443\")\n .serviceName(lb.applyValue(getIpLoadBalancingResult -\u003e getIpLoadBalancingResult.serviceName()))\n .zone(\"all\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n farm80:\n type: ovh:IpLoadBalancing:TcpFarm\n properties:\n displayName: ingress-8080-gra\n port: 80\n serviceName: ${lb.serviceName}\n zone: all\n testfrontend:\n type: ovh:IpLoadBalancing:TcpFrontend\n properties:\n defaultFarmId: ${farm80.id}\n displayName: ingress-8080-gra\n port: 80,443\n serviceName: ${lb.serviceName}\n zone: all\nvariables:\n lb:\n fn::invoke:\n Function: ovh:IpLoadBalancing:getIpLoadBalancing\n Arguments:\n serviceName: ip-1.2.3.4\n state: ok\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import \n\nTCP frontend can be imported using the following format `service_name` and the `id` of the frontend separated by \"/\" e.g.\n\n```bash\n$ terraform import ovh_iploadbalancing_tcp_frontend.testfrontend service_name/tcp_frontend_id\n```\n", "properties": { "allowedSources": { "type": "array", @@ -15046,7 +15467,7 @@ } }, "ovh:Vrack/dedicatedServerInterface:DedicatedServerInterface": { - "description": "Attach a Dedicated Server Network Interface to a VRack.\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 server = ovh.getServer({\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n});\nconst vdsi = new ovh.vrack.DedicatedServerInterface(\"vdsi\", {\n serviceName: \"pn-xxxxxxx\",\n interfaceId: server.then(server =\u003e server.enabledVrackVnis?.[0]),\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nserver = ovh.get_server(service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\")\nvdsi = ovh.vrack.DedicatedServerInterface(\"vdsi\",\n service_name=\"pn-xxxxxxx\",\n interface_id=server.enabled_vrack_vnis[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 server = Ovh.GetServer.Invoke(new()\n {\n ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n });\n\n var vdsi = new Ovh.Vrack.DedicatedServerInterface(\"vdsi\", new()\n {\n ServiceName = \"pn-xxxxxxx\",\n InterfaceId = server.Apply(getServerResult =\u003e getServerResult.EnabledVrackVnis[0]),\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/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\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\t_, err = Vrack.NewDedicatedServerInterface(ctx, \"vdsi\", \u0026Vrack.DedicatedServerInterfaceArgs{\n\t\t\tServiceName: pulumi.String(\"pn-xxxxxxx\"),\n\t\t\tInterfaceId: *pulumi.String(server.EnabledVrackVnis[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.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetServerArgs;\nimport com.pulumi.ovh.Vrack.DedicatedServerInterface;\nimport com.pulumi.ovh.Vrack.DedicatedServerInterfaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 var vdsi = new DedicatedServerInterface(\"vdsi\", DedicatedServerInterfaceArgs.builder() \n .serviceName(\"pn-xxxxxxx\")\n .interfaceId(server.applyValue(getServerResult -\u003e getServerResult.enabledVrackVnis()[0]))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vdsi:\n type: ovh:Vrack:DedicatedServerInterface\n properties:\n serviceName: pn-xxxxxxx\n #name of the vrack\n interfaceId: ${server.enabledVrackVnis[0]}\nvariables:\n server:\n fn::invoke:\n Function: ovh:getServer\n Arguments:\n serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Attach a Dedicated Server Network Interface to a VRack.\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 server = ovh.getServer({\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n});\nconst vdsi = new ovh.vrack.DedicatedServerInterface(\"vdsi\", {\n serviceName: \"pn-xxxxxxx\",\n interfaceId: server.then(server =\u003e server.enabledVrackVnis?.[0]),\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nserver = ovh.get_server(service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\")\nvdsi = ovh.vrack.DedicatedServerInterface(\"vdsi\",\n service_name=\"pn-xxxxxxx\",\n interface_id=server.enabled_vrack_vnis[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 server = Ovh.GetServer.Invoke(new()\n {\n ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n });\n\n var vdsi = new Ovh.Vrack.DedicatedServerInterface(\"vdsi\", new()\n {\n ServiceName = \"pn-xxxxxxx\",\n InterfaceId = server.Apply(getServerResult =\u003e getServerResult.EnabledVrackVnis[0]),\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/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\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\t_, err = Vrack.NewDedicatedServerInterface(ctx, \"vdsi\", \u0026Vrack.DedicatedServerInterfaceArgs{\n\t\t\tServiceName: pulumi.String(\"pn-xxxxxxx\"),\n\t\t\tInterfaceId: pulumi.String(server.EnabledVrackVnis[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.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetServerArgs;\nimport com.pulumi.ovh.Vrack.DedicatedServerInterface;\nimport com.pulumi.ovh.Vrack.DedicatedServerInterfaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 var vdsi = new DedicatedServerInterface(\"vdsi\", DedicatedServerInterfaceArgs.builder() \n .serviceName(\"pn-xxxxxxx\")\n .interfaceId(server.applyValue(getServerResult -\u003e getServerResult.enabledVrackVnis()[0]))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vdsi:\n type: ovh:Vrack:DedicatedServerInterface\n properties:\n serviceName: pn-xxxxxxx\n #name of the vrack\n interfaceId: ${server.enabledVrackVnis[0]}\nvariables:\n server:\n fn::invoke:\n Function: ovh:getServer\n Arguments:\n serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "interfaceId": { "type": "string", @@ -15095,7 +15516,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=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", "properties": { "block": { "type": "string", @@ -15220,7 +15641,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 `order_id` that can be retrieved in the [order page](https://www.ovh.com/manager/#/dedicated/billing/orders/orders). \n\nbash\n\n```sh\n$ pulumi import ovh:Vrack/vrack:Vrack vrack 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 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 `order_id` that can be retrieved in the [order page](https://www.ovh.com/manager/#/dedicated/billing/orders/orders). \n\nbash\n\n```sh\n$ pulumi import ovh:Vrack/vrack:Vrack vrack order_id\n```\n\n", "properties": { "VrackURN": { "type": "string", @@ -19576,6 +19997,123 @@ ] } }, + "ovh:Dedicated/getServerSpecificationsHardware:getServerSpecificationsHardware": { + "description": "Use this data source to get the hardward information about a dedicated server associated with your OVHcloud Account.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst spec = ovh.Dedicated.getServerSpecificationsHardware({\n serviceName: \"myserver\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nspec = ovh.Dedicated.get_server_specifications_hardware(service_name=\"myserver\")\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 spec = Ovh.Dedicated.GetServerSpecificationsHardware.Invoke(new()\n {\n ServiceName = \"myserver\",\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/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Dedicated.GetServerSpecificationsHardware(ctx, \u0026dedicated.GetServerSpecificationsHardwareArgs{\n\t\t\tServiceName: \"myserver\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Dedicated.DedicatedFunctions;\nimport com.pulumi.ovh.Dedicated.inputs.GetServerSpecificationsHardwareArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 spec = DedicatedFunctions.getServerSpecificationsHardware(GetServerSpecificationsHardwareArgs.builder()\n .serviceName(\"myserver\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n spec:\n fn::invoke:\n Function: ovh:Dedicated:getServerSpecificationsHardware\n Arguments:\n serviceName: myserver\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "inputs": { + "description": "A collection of arguments for invoking getServerSpecificationsHardware.\n", + "properties": { + "serviceName": { + "type": "string", + "description": "The internal name of your dedicated server.\n" + } + }, + "type": "object", + "required": [ + "serviceName" + ] + }, + "outputs": { + "description": "A collection of values returned by getServerSpecificationsHardware.\n", + "properties": { + "bootMode": { + "type": "string", + "description": "Server boot mode\n" + }, + "coresPerProcessor": { + "type": "number", + "description": "Number of cores per processor\n" + }, + "defaultHardwareRaidSize": { + "$ref": "#/types/ovh:Dedicated/getServerSpecificationsHardwareDefaultHardwareRaidSize:getServerSpecificationsHardwareDefaultHardwareRaidSize", + "description": "Default hardware raid size for this disk group\n" + }, + "defaultHardwareRaidType": { + "type": "string", + "description": "Default hardware raid type for this disk group\n" + }, + "description": { + "type": "string", + "description": "Expansion card description\n" + }, + "diskGroups": { + "type": "array", + "items": { + "$ref": "#/types/ovh:Dedicated/getServerSpecificationsHardwareDiskGroup:getServerSpecificationsHardwareDiskGroup" + }, + "description": "Details about the groups of disks in the server\n" + }, + "expansionCards": { + "type": "array", + "items": { + "$ref": "#/types/ovh:Dedicated/getServerSpecificationsHardwareExpansionCard:getServerSpecificationsHardwareExpansionCard" + }, + "description": "Details about the server's expansion cards\n" + }, + "formFactor": { + "type": "string", + "description": "Server form factor\n" + }, + "id": { + "type": "string", + "description": "The provider-assigned unique ID for this managed resource.\n" + }, + "memorySize": { + "$ref": "#/types/ovh:Dedicated/getServerSpecificationsHardwareMemorySize:getServerSpecificationsHardwareMemorySize", + "description": "RAM capacity\n" + }, + "motherboard": { + "type": "string", + "description": "Server motherboard\n" + }, + "numberOfProcessors": { + "type": "number", + "description": "Number of processors in this dedicated server\n" + }, + "processorArchitecture": { + "type": "string", + "description": "Processor architecture bit\n" + }, + "processorName": { + "type": "string", + "description": "Processor name\n" + }, + "serviceName": { + "type": "string" + }, + "threadsPerProcessor": { + "type": "number", + "description": "Number of threads per processor\n" + }, + "usbKeys": { + "type": "array", + "items": { + "$ref": "#/types/ovh:Dedicated/getServerSpecificationsHardwareUsbKey:getServerSpecificationsHardwareUsbKey" + }, + "description": "Capacity of the USB keys installed on your server, if any\n" + } + }, + "type": "object", + "required": [ + "bootMode", + "coresPerProcessor", + "defaultHardwareRaidSize", + "defaultHardwareRaidType", + "description", + "diskGroups", + "expansionCards", + "formFactor", + "memorySize", + "motherboard", + "numberOfProcessors", + "processorArchitecture", + "processorName", + "serviceName", + "threadsPerProcessor", + "usbKeys", + "id" + ] + } + }, "ovh:Domain/getZone:getZone": { "description": "Use this data source to retrieve information about a domain zone.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst rootzone = ovh.Domain.getZone({\n name: \"mysite.ovh\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nrootzone = ovh.Domain.get_zone(name=\"mysite.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 var rootzone = Ovh.Domain.GetZone.Invoke(new()\n {\n Name = \"mysite.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_, err := Domain.GetZone(ctx, \u0026domain.GetZoneArgs{\n\t\t\tName: \"mysite.ovh\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Domain.DomainFunctions;\nimport com.pulumi.ovh.Domain.inputs.GetZoneArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 rootzone = DomainFunctions.getZone(GetZoneArgs.builder()\n .name(\"mysite.ovh\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n rootzone:\n fn::invoke:\n Function: ovh:Domain:getZone\n Arguments:\n name: mysite.ovh\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { @@ -22131,19 +22669,23 @@ }, "bootId": { "type": "integer", - "description": "boot id of the server\n" + "description": "Boot id of the server\n" }, "bootScript": { "type": "string", - "description": "boot script of the server\n" + "description": "Boot script of the server\n" }, "commercialRange": { "type": "string", - "description": "dedicated server commercial range\n" + "description": "Dedicated server commercial range\n" }, "datacenter": { "type": "string", - "description": "dedicated datacenter localisation (bhs1,bhs2,...)\n" + "description": "Dedicated datacenter localisation (bhs1,bhs2,...)\n" + }, + "displayName": { + "type": "string", + "description": "Dedicated server display name\n" }, "enabledPublicVnis": { "type": "array", @@ -22172,18 +22714,18 @@ }, "ip": { "type": "string", - "description": "dedicated server ip (IPv4)\n" + "description": "Dedicated server ip (IPv4)\n" }, "ips": { "type": "array", "items": { "type": "string" }, - "description": "dedicated server ip blocks\n" + "description": "Dedicated server ip blocks\n" }, "linkSpeed": { "type": "integer", - "description": "link speed of the server\n" + "description": "Link speed of the server\n" }, "monitoring": { "type": "boolean", @@ -22203,30 +22745,30 @@ }, "rack": { "type": "string", - "description": "rack id of the server\n" + "description": "Rack id of the server\n" }, "rescueMail": { "type": "string", - "description": "rescue mail of the server\n" + "description": "Rescue mail of the server\n" }, "reverse": { "type": "string", - "description": "dedicated server reverse\n" + "description": "Dedicated server reverse\n" }, "rootDevice": { "type": "string", - "description": "root device of the server\n" + "description": "Root device of the server\n" }, "serverId": { "type": "integer", - "description": "your server id\n" + "description": "Server id\n" }, "serviceName": { "type": "string" }, "state": { "type": "string", - "description": "error, hacked, hackedBlocked, ok\n" + "description": "Error, hacked, hackedBlocked, ok\n" }, "supportLevel": { "type": "string", @@ -22237,7 +22779,7 @@ "items": { "$ref": "#/types/ovh:index/getServerVni:getServerVni" }, - "description": "the list of Virtualnetworkinterface assiociated with this server\n" + "description": "The list of Virtualnetworkinterface associated with this server\n" } }, "type": "object", @@ -22246,6 +22788,7 @@ "bootScript", "commercialRange", "datacenter", + "displayName", "enabledPublicVnis", "enabledVrackAggregationVnis", "enabledVrackVnis", diff --git a/provider/go.mod b/provider/go.mod index 2802adbf..3d6b88df 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -7,10 +7,10 @@ toolchain go1.21.1 replace github.com/hashicorp/terraform-plugin-sdk/v2 => github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20240229143312-4f60ee4e2975 require ( - github.com/ovh/terraform-provider-ovh v0.39.0 - github.com/pulumi/pulumi-terraform-bridge/pf v0.30.0 - github.com/pulumi/pulumi-terraform-bridge/v3 v3.77.0 - github.com/pulumi/pulumi/sdk/v3 v3.108.1 + github.com/ovh/terraform-provider-ovh v0.40.0 + github.com/pulumi/pulumi-terraform-bridge/pf v0.31.0 + github.com/pulumi/pulumi-terraform-bridge/v3 v3.78.0 + github.com/pulumi/pulumi/sdk/v3 v3.111.1 ) require ( @@ -127,9 +127,9 @@ require ( github.com/hashicorp/logutils v1.0.0 // indirect github.com/hashicorp/terraform-exec v0.20.0 // indirect github.com/hashicorp/terraform-json v0.21.0 // indirect - github.com/hashicorp/terraform-plugin-framework v1.6.1 // indirect + github.com/hashicorp/terraform-plugin-framework v1.7.0 // indirect github.com/hashicorp/terraform-plugin-framework-validators v0.12.0 // indirect - github.com/hashicorp/terraform-plugin-go v0.22.0 // indirect + github.com/hashicorp/terraform-plugin-go v0.22.1 // indirect github.com/hashicorp/terraform-plugin-log v0.9.0 // indirect github.com/hashicorp/terraform-plugin-sdk v1.8.0 // indirect github.com/hashicorp/terraform-plugin-sdk/v2 v2.33.0 // indirect @@ -173,7 +173,7 @@ require ( github.com/oklog/run v1.1.0 // indirect github.com/opentracing/basictracer-go v1.1.0 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect - github.com/ovh/go-ovh v1.4.2 // indirect + github.com/ovh/go-ovh v1.4.3 // indirect github.com/pgavlin/fx v0.1.6 // indirect github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386 // indirect github.com/pierrec/lz4 v2.6.1+incompatible // indirect @@ -187,8 +187,8 @@ require ( github.com/pulumi/esc v0.6.2 // indirect github.com/pulumi/pulumi-java/pkg v0.9.9 // indirect github.com/pulumi/pulumi-terraform-bridge/x/muxer v0.0.8 // indirect - github.com/pulumi/pulumi-yaml v1.5.0 // indirect - github.com/pulumi/pulumi/pkg/v3 v3.108.1 // indirect + github.com/pulumi/pulumi-yaml v1.6.0 // indirect + github.com/pulumi/pulumi/pkg/v3 v3.111.1 // 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 @@ -247,8 +247,8 @@ require ( google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 // indirect - google.golang.org/grpc v1.62.0 // indirect - google.golang.org/protobuf v1.32.0 // indirect + google.golang.org/grpc v1.62.1 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/square/go-jose.v2 v2.6.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect diff --git a/provider/go.sum b/provider/go.sum index b86ce342..77bb6342 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -2242,12 +2242,13 @@ github.com/hashicorp/terraform-json v0.4.0/go.mod h1:eAbqb4w0pSlRmdvl8fOyHAi/+8j github.com/hashicorp/terraform-json v0.19.0/go.mod h1:qdeBs11ovMzo5puhrRibdD6d2Dq6TyE/28JiU4tIQxk= github.com/hashicorp/terraform-json v0.21.0 h1:9NQxbLNqPbEMze+S6+YluEdXgJmhQykRyRNd+zTI05U= github.com/hashicorp/terraform-json v0.21.0/go.mod h1:qdeBs11ovMzo5puhrRibdD6d2Dq6TyE/28JiU4tIQxk= -github.com/hashicorp/terraform-plugin-framework v1.6.1 h1:hw2XrmUu8d8jVL52ekxim2IqDc+2Kpekn21xZANARLU= -github.com/hashicorp/terraform-plugin-framework v1.6.1/go.mod h1:aJI+n/hBPhz1J+77GdgNfk5svW12y7fmtxe/5L5IuwI= +github.com/hashicorp/terraform-plugin-framework v1.7.0 h1:wOULbVmfONnJo9iq7/q+iBOBJul5vRovaYJIu2cY/Pw= +github.com/hashicorp/terraform-plugin-framework v1.7.0/go.mod h1:jY9Id+3KbZ17OMpulgnWLSfwxNVYSoYBQFTgsx044CI= github.com/hashicorp/terraform-plugin-framework-validators v0.12.0 h1:HOjBuMbOEzl7snOdOoUfE2Jgeto6JOjLVQ39Ls2nksc= github.com/hashicorp/terraform-plugin-framework-validators v0.12.0/go.mod h1:jfHGE/gzjxYz6XoUwi/aYiiKrJDeutQNUtGQXkaHklg= -github.com/hashicorp/terraform-plugin-go v0.22.0 h1:1OS1Jk5mO0f5hrziWJGXXIxBrMe2j/B8E+DVGw43Xmc= github.com/hashicorp/terraform-plugin-go v0.22.0/go.mod h1:mPULV91VKss7sik6KFEcEu7HuTogMLLO/EvWCuFkRVE= +github.com/hashicorp/terraform-plugin-go v0.22.1 h1:iTS7WHNVrn7uhe3cojtvWWn83cm2Z6ryIUDTRO0EV7w= +github.com/hashicorp/terraform-plugin-go v0.22.1/go.mod h1:qrjnqRghvQ6KnDbB12XeZ4FluclYwptntoWCr9QaXTI= github.com/hashicorp/terraform-plugin-log v0.9.0 h1:i7hOA+vdAItN1/7UrfBqBwvYPQ9TFvymaRGZED3FCV0= github.com/hashicorp/terraform-plugin-log v0.9.0/go.mod h1:rKL8egZQ/eXSyDqzLUuwUYLVdlYeamldAHSxjUFADow= github.com/hashicorp/terraform-plugin-mux v0.15.0 h1:+/+lDx0WUsIOpkAmdwBIoFU8UP9o2eZASoOnLsWbKME= @@ -2698,10 +2699,10 @@ github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxS github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= -github.com/ovh/go-ovh v1.4.2 h1:ub4jVK6ERbiBTo4y5wbLCjeKCjGY+K36e7BviW+MaAU= -github.com/ovh/go-ovh v1.4.2/go.mod h1:AkPXVtgwB6xlKblMjRKJJmjRp+ogrE7fz2lVgcQY8SY= -github.com/ovh/terraform-provider-ovh v0.39.0 h1:yQjg8n19vfDzKCRGbLU1e6PtXEdAAilY8mvU4do1yi8= -github.com/ovh/terraform-provider-ovh v0.39.0/go.mod h1:HZlStnRUjLc6qWOqS/OyWe4vxRnDxEeyFTT8cL4T3YM= +github.com/ovh/go-ovh v1.4.3 h1:Gs3V823zwTFpzgGLZNI6ILS4rmxZgJwJCz54Er9LwD0= +github.com/ovh/go-ovh v1.4.3/go.mod h1:AkPXVtgwB6xlKblMjRKJJmjRp+ogrE7fz2lVgcQY8SY= +github.com/ovh/terraform-provider-ovh v0.40.0 h1:oOPv4OVV839xNq/AhGOe8FLEuzjeaS7C9QJSZvIO0Sw= +github.com/ovh/terraform-provider-ovh v0.40.0/go.mod h1:FsrDVZQIEqlMKRb8d22BwYvbOjmP6WtW+eVasFdJdcU= github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= @@ -2816,18 +2817,18 @@ github.com/pulumi/providertest v0.0.11 h1:mg8MQ7Cq7+9XlHIkBD+aCqQO4mwAJEISngZgVd github.com/pulumi/providertest v0.0.11/go.mod h1:HsxjVsytcMIuNj19w1lT2W0QXY0oReXl1+h6eD2JXP8= github.com/pulumi/pulumi-java/pkg v0.9.9 h1:F3xJUtMFDVrTGCxb7Rh2Q8s6tj7gMfM5pcoUthz7vFY= github.com/pulumi/pulumi-java/pkg v0.9.9/go.mod h1:LVF1zeg3UkToHWxb67V+zEIxQc3EdMnlot5NWSt+FpA= -github.com/pulumi/pulumi-terraform-bridge/pf v0.30.0 h1:2Jn0lXcfid0E2gbbpPwtRBWkJxGmOiUenTYP07A8b+U= -github.com/pulumi/pulumi-terraform-bridge/pf v0.30.0/go.mod h1:6MjVHzJy4MVmb/19nbRv7p9VkcKcpjl8a8uEp1CDKwo= -github.com/pulumi/pulumi-terraform-bridge/v3 v3.77.0 h1:BZhD7yNZz7O5MWeM4WofY6XBLjtiA3qH2UJJTg8+Nts= -github.com/pulumi/pulumi-terraform-bridge/v3 v3.77.0/go.mod h1:OCfjEGPU2fbBlda8UZhN/N3FljW6R08SK6lXPXzahwA= +github.com/pulumi/pulumi-terraform-bridge/pf v0.31.0 h1:KnVMjyTmkqjUDBVoQNODPMH0VpPmRmu7JHMruBF+Fvs= +github.com/pulumi/pulumi-terraform-bridge/pf v0.31.0/go.mod h1:kdaazbdv0Hn6/innKvWcPfRRn/0YeNYI/oWA4j8lV3k= +github.com/pulumi/pulumi-terraform-bridge/v3 v3.78.0 h1:zl1nXrx02X7u/w5kNjIVGVUzccEILcMWsIpg4QQanCI= +github.com/pulumi/pulumi-terraform-bridge/v3 v3.78.0/go.mod h1:WpkN/lgtBrDYGrMyG9cmncy5pN95lnowbmjILHWcm0M= 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.5.0 h1:HfXu+WSFNpycref9CK935cViYJzXwSgHGWM/RepyrW0= -github.com/pulumi/pulumi-yaml v1.5.0/go.mod h1:AvKSmEQv2EkPbpvAQroR1eP1LkJGC8z5NDM34rVWOtg= -github.com/pulumi/pulumi/pkg/v3 v3.108.1 h1:K1UK40v5IpEPIaJ2un3WNOTBbLQaKR26HbLLh5EmMHY= -github.com/pulumi/pulumi/pkg/v3 v3.108.1/go.mod h1:48uCfxkPXUq/XTBqei9VuR0CRWObnSVlqcLkD6DhII8= -github.com/pulumi/pulumi/sdk/v3 v3.108.1 h1:5idjc3JmzToYVizRPbFyjJ5UU4AbExd04pcSP9AhPEc= -github.com/pulumi/pulumi/sdk/v3 v3.108.1/go.mod h1:5A6GHUwAJlRY1SSLZh84aDIbsBShcrfcmHzI50ecSBg= +github.com/pulumi/pulumi-yaml v1.6.0 h1:mb/QkebWXTa1fR+P3ZkCCHGXOYC6iTN8X8By9eNz8xM= +github.com/pulumi/pulumi-yaml v1.6.0/go.mod h1:RyEPo4MhL363sbAiFMVKRsQmXpQPDCY1S8pGv3E6Ij0= +github.com/pulumi/pulumi/pkg/v3 v3.111.1 h1:SrVgQE96T7YlZx/AZoFSlXYwur7ZmQUHyjbPI8sH96Q= +github.com/pulumi/pulumi/pkg/v3 v3.111.1/go.mod h1:ZWsq8Y0EMHZ5E2ju92jC+POz97TEXs3BbQ6r2o0U4SA= +github.com/pulumi/pulumi/sdk/v3 v3.111.1 h1:uOeG/b6YxBuL59xHtmFPspMa8BB6ovjHelL7sVCGJZw= +github.com/pulumi/pulumi/sdk/v3 v3.111.1/go.mod h1:5A6GHUwAJlRY1SSLZh84aDIbsBShcrfcmHzI50ecSBg= 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= @@ -4184,8 +4185,8 @@ google.golang.org/grpc v1.58.2/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSs google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/grpc v1.61.1/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= -google.golang.org/grpc v1.62.0 h1:HQKZ/fa1bXkX1oFOvSjmZEUL8wLSaZTjCcLAlmZRtdk= -google.golang.org/grpc v1.62.0/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= +google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk= +google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -4206,8 +4207,9 @@ google.golang.org/protobuf v1.28.2-0.20230222093303-bc1253ad3743/go.mod h1:HV8QO google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/provider/resources.go b/provider/resources.go index 94726318..ecd5c900 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -216,6 +216,9 @@ func Provider() tfbridge.ProviderInfo { "ovh_cloud_project_failover_ip_attach": { Tok: ovhResource(cloudProjectMod, "FailoverIpAttach"), }, + "ovh_cloud_project_gateway": { + Tok: ovhResource(cloudProjectMod, "Gateway"), + }, "ovh_cloud_project_kube": { Tok: ovhResource(cloudProjectMod, "Kube"), }, @@ -310,6 +313,9 @@ func Provider() tfbridge.ProviderInfo { "ovh_hosting_privatedatabase_whitelist": { Tok: ovhResource(hostingMod, "PrivateDatabaseAllowlist"), }, + "ovh_ip_move": { + Tok: ovhResource(ipMod, "Move"), + }, "ovh_ip_reverse": { Tok: ovhResource(ipMod, "Reverse"), Fields: map[string]*tfbridge.SchemaInfo{ @@ -633,6 +639,9 @@ func Provider() tfbridge.ProviderInfo { "ovh_dedicated_server_boots": { Tok: ovhDataSource(dedicatedMod, "getServerBoots"), }, + "ovh_dedicated_server_specifications_hardware": { + Tok: ovhDataSource(dedicatedMod, "getServerSpecificationsHardware"), + }, "ovh_hosting_privatedatabase": { Tok: ovhDataSource(hostingMod, "getPrivateDatabase"), }, diff --git a/sdk/dotnet/CloudProject/Gateway.cs b/sdk/dotnet/CloudProject/Gateway.cs new file mode 100644 index 00000000..c571394a --- /dev/null +++ b/sdk/dotnet/CloudProject/Gateway.cs @@ -0,0 +1,198 @@ +// *** 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.CloudProject +{ + /// + /// Create a new Gateway for existing subnet in the specified public cloud project. + /// + [OvhResourceType("ovh:CloudProject/gateway:Gateway")] + public partial class Gateway : global::Pulumi.CustomResource + { + /// + /// The model of the gateway. + /// + [Output("model")] + public Output Model { get; private set; } = null!; + + /// + /// The name of the gateway. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The ID of the private network. + /// + [Output("networkId")] + public Output NetworkId { get; private set; } = null!; + + /// + /// The region of the gateway. + /// + [Output("region")] + public Output Region { get; private set; } = null!; + + /// + /// The ID of the private network. + /// + [Output("serviceName")] + public Output ServiceName { get; private set; } = null!; + + /// + /// The status of the gateway. + /// + [Output("status")] + public Output Status { get; private set; } = null!; + + /// + /// The ID of the subnet. + /// + [Output("subnetId")] + public Output SubnetId { get; private set; } = null!; + + + /// + /// Create a Gateway 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 Gateway(string name, GatewayArgs args, CustomResourceOptions? options = null) + : base("ovh:CloudProject/gateway:Gateway", name, args ?? new GatewayArgs(), MakeResourceOptions(options, "")) + { + } + + private Gateway(string name, Input id, GatewayState? state = null, CustomResourceOptions? options = null) + : base("ovh:CloudProject/gateway:Gateway", 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 Gateway 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 Gateway Get(string name, Input id, GatewayState? state = null, CustomResourceOptions? options = null) + { + return new Gateway(name, id, state, options); + } + } + + public sealed class GatewayArgs : global::Pulumi.ResourceArgs + { + /// + /// The model of the gateway. + /// + [Input("model", required: true)] + public Input Model { get; set; } = null!; + + /// + /// The name of the gateway. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The ID of the private network. + /// + [Input("networkId", required: true)] + public Input NetworkId { get; set; } = null!; + + /// + /// The region of the gateway. + /// + [Input("region", required: true)] + public Input Region { get; set; } = null!; + + /// + /// The ID of the private network. + /// + [Input("serviceName", required: true)] + public Input ServiceName { get; set; } = null!; + + /// + /// The ID of the subnet. + /// + [Input("subnetId", required: true)] + public Input SubnetId { get; set; } = null!; + + public GatewayArgs() + { + } + public static new GatewayArgs Empty => new GatewayArgs(); + } + + public sealed class GatewayState : global::Pulumi.ResourceArgs + { + /// + /// The model of the gateway. + /// + [Input("model")] + public Input? Model { get; set; } + + /// + /// The name of the gateway. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The ID of the private network. + /// + [Input("networkId")] + public Input? NetworkId { get; set; } + + /// + /// The region of the gateway. + /// + [Input("region")] + public Input? Region { get; set; } + + /// + /// The ID of the private network. + /// + [Input("serviceName")] + public Input? ServiceName { get; set; } + + /// + /// The status of the gateway. + /// + [Input("status")] + public Input? Status { get; set; } + + /// + /// The ID of the subnet. + /// + [Input("subnetId")] + public Input? SubnetId { get; set; } + + public GatewayState() + { + } + public static new GatewayState Empty => new GatewayState(); + } +} diff --git a/sdk/dotnet/CloudProject/Inputs/KubePrivateNetworkConfigurationArgs.cs b/sdk/dotnet/CloudProject/Inputs/KubePrivateNetworkConfigurationArgs.cs index 36a379ad..ef664acf 100644 --- a/sdk/dotnet/CloudProject/Inputs/KubePrivateNetworkConfigurationArgs.cs +++ b/sdk/dotnet/CloudProject/Inputs/KubePrivateNetworkConfigurationArgs.cs @@ -20,6 +20,19 @@ public sealed class KubePrivateNetworkConfigurationArgs : global::Pulumi.Resourc /// /// Defines whether routing should default to using the nodes' private interface, instead of their public interface. Default is false. + /// + /// In order to use the gateway IP advertised by the private network subnet DHCP, the following configuration shall be used. + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// + /// return await Deployment.RunAsync(() => + /// { + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> /// [Input("privateNetworkRoutingAsDefault", required: true)] public Input PrivateNetworkRoutingAsDefault { get; set; } = null!; diff --git a/sdk/dotnet/CloudProject/Inputs/KubePrivateNetworkConfigurationGetArgs.cs b/sdk/dotnet/CloudProject/Inputs/KubePrivateNetworkConfigurationGetArgs.cs index 0ba1e2ea..873d66a7 100644 --- a/sdk/dotnet/CloudProject/Inputs/KubePrivateNetworkConfigurationGetArgs.cs +++ b/sdk/dotnet/CloudProject/Inputs/KubePrivateNetworkConfigurationGetArgs.cs @@ -20,6 +20,19 @@ public sealed class KubePrivateNetworkConfigurationGetArgs : global::Pulumi.Reso /// /// Defines whether routing should default to using the nodes' private interface, instead of their public interface. Default is false. + /// + /// In order to use the gateway IP advertised by the private network subnet DHCP, the following configuration shall be used. + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// + /// return await Deployment.RunAsync(() => + /// { + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> /// [Input("privateNetworkRoutingAsDefault", required: true)] public Input PrivateNetworkRoutingAsDefault { get; set; } = null!; diff --git a/sdk/dotnet/CloudProject/Kube.cs b/sdk/dotnet/CloudProject/Kube.cs index d81744aa..7d7f8ec4 100644 --- a/sdk/dotnet/CloudProject/Kube.cs +++ b/sdk/dotnet/CloudProject/Kube.cs @@ -90,7 +90,7 @@ public partial class Kube : global::Pulumi.CustomResource public Output NodesUrl { get; private set; } = null!; /// - /// The private network configuration + /// The private network configuration. If this is set then the 2 parameters below shall be defined. /// [Output("privateNetworkConfiguration")] public Output PrivateNetworkConfiguration { get; private set; } = null!; @@ -235,7 +235,7 @@ public InputList Customizations public Input? Name { get; set; } /// - /// The private network configuration + /// The private network configuration. If this is set then the 2 parameters below shall be defined. /// [Input("privateNetworkConfiguration")] public Input? PrivateNetworkConfiguration { get; set; } @@ -386,7 +386,7 @@ public InputList NextUpgradeVersions public Input? NodesUrl { get; set; } /// - /// The private network configuration + /// The private network configuration. If this is set then the 2 parameters below shall be defined. /// [Input("privateNetworkConfiguration")] public Input? PrivateNetworkConfiguration { get; set; } diff --git a/sdk/dotnet/CloudProject/Outputs/KubePrivateNetworkConfiguration.cs b/sdk/dotnet/CloudProject/Outputs/KubePrivateNetworkConfiguration.cs index 93c3cd20..12bae224 100644 --- a/sdk/dotnet/CloudProject/Outputs/KubePrivateNetworkConfiguration.cs +++ b/sdk/dotnet/CloudProject/Outputs/KubePrivateNetworkConfiguration.cs @@ -19,6 +19,19 @@ public sealed class KubePrivateNetworkConfiguration public readonly string DefaultVrackGateway; /// /// Defines whether routing should default to using the nodes' private interface, instead of their public interface. Default is false. + /// + /// In order to use the gateway IP advertised by the private network subnet DHCP, the following configuration shall be used. + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// + /// return await Deployment.RunAsync(() => + /// { + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> /// public readonly bool PrivateNetworkRoutingAsDefault; diff --git a/sdk/dotnet/Dedicated/GetServerSpecificationsHardware.cs b/sdk/dotnet/Dedicated/GetServerSpecificationsHardware.cs new file mode 100644 index 00000000..e1e32787 --- /dev/null +++ b/sdk/dotnet/Dedicated/GetServerSpecificationsHardware.cs @@ -0,0 +1,221 @@ +// *** 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 +{ + public static class GetServerSpecificationsHardware + { + /// + /// Use this data source to get the hardward information about a dedicated server associated with your OVHcloud Account. + /// + /// ## Example Usage + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Ovh = Pulumi.Ovh; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var spec = Ovh.Dedicated.GetServerSpecificationsHardware.Invoke(new() + /// { + /// ServiceName = "myserver", + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + public static Task InvokeAsync(GetServerSpecificationsHardwareArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("ovh:Dedicated/getServerSpecificationsHardware:getServerSpecificationsHardware", args ?? new GetServerSpecificationsHardwareArgs(), options.WithDefaults()); + + /// + /// Use this data source to get the hardward information about a dedicated server associated with your OVHcloud Account. + /// + /// ## Example Usage + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Ovh = Pulumi.Ovh; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var spec = Ovh.Dedicated.GetServerSpecificationsHardware.Invoke(new() + /// { + /// ServiceName = "myserver", + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + public static Output Invoke(GetServerSpecificationsHardwareInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("ovh:Dedicated/getServerSpecificationsHardware:getServerSpecificationsHardware", args ?? new GetServerSpecificationsHardwareInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetServerSpecificationsHardwareArgs : global::Pulumi.InvokeArgs + { + /// + /// The internal name of your dedicated server. + /// + [Input("serviceName", required: true)] + public string ServiceName { get; set; } = null!; + + public GetServerSpecificationsHardwareArgs() + { + } + public static new GetServerSpecificationsHardwareArgs Empty => new GetServerSpecificationsHardwareArgs(); + } + + public sealed class GetServerSpecificationsHardwareInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The internal name of your dedicated server. + /// + [Input("serviceName", required: true)] + public Input ServiceName { get; set; } = null!; + + public GetServerSpecificationsHardwareInvokeArgs() + { + } + public static new GetServerSpecificationsHardwareInvokeArgs Empty => new GetServerSpecificationsHardwareInvokeArgs(); + } + + + [OutputType] + public sealed class GetServerSpecificationsHardwareResult + { + /// + /// Server boot mode + /// + public readonly string BootMode; + /// + /// Number of cores per processor + /// + public readonly double CoresPerProcessor; + /// + /// Default hardware raid size for this disk group + /// + public readonly Outputs.GetServerSpecificationsHardwareDefaultHardwareRaidSizeResult DefaultHardwareRaidSize; + /// + /// Default hardware raid type for this disk group + /// + public readonly string DefaultHardwareRaidType; + /// + /// Expansion card description + /// + public readonly string Description; + /// + /// Details about the groups of disks in the server + /// + public readonly ImmutableArray DiskGroups; + /// + /// Details about the server's expansion cards + /// + public readonly ImmutableArray ExpansionCards; + /// + /// Server form factor + /// + public readonly string FormFactor; + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + /// + /// RAM capacity + /// + public readonly Outputs.GetServerSpecificationsHardwareMemorySizeResult MemorySize; + /// + /// Server motherboard + /// + public readonly string Motherboard; + /// + /// Number of processors in this dedicated server + /// + public readonly double NumberOfProcessors; + /// + /// Processor architecture bit + /// + public readonly string ProcessorArchitecture; + /// + /// Processor name + /// + public readonly string ProcessorName; + public readonly string ServiceName; + /// + /// Number of threads per processor + /// + public readonly double ThreadsPerProcessor; + /// + /// Capacity of the USB keys installed on your server, if any + /// + public readonly ImmutableArray UsbKeys; + + [OutputConstructor] + private GetServerSpecificationsHardwareResult( + string bootMode, + + double coresPerProcessor, + + Outputs.GetServerSpecificationsHardwareDefaultHardwareRaidSizeResult defaultHardwareRaidSize, + + string defaultHardwareRaidType, + + string description, + + ImmutableArray diskGroups, + + ImmutableArray expansionCards, + + string formFactor, + + string id, + + Outputs.GetServerSpecificationsHardwareMemorySizeResult memorySize, + + string motherboard, + + double numberOfProcessors, + + string processorArchitecture, + + string processorName, + + string serviceName, + + double threadsPerProcessor, + + ImmutableArray usbKeys) + { + BootMode = bootMode; + CoresPerProcessor = coresPerProcessor; + DefaultHardwareRaidSize = defaultHardwareRaidSize; + DefaultHardwareRaidType = defaultHardwareRaidType; + Description = description; + DiskGroups = diskGroups; + ExpansionCards = expansionCards; + FormFactor = formFactor; + Id = id; + MemorySize = memorySize; + Motherboard = motherboard; + NumberOfProcessors = numberOfProcessors; + ProcessorArchitecture = processorArchitecture; + ProcessorName = processorName; + ServiceName = serviceName; + ThreadsPerProcessor = threadsPerProcessor; + UsbKeys = usbKeys; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsHardwareDefaultHardwareRaidSizeResult.cs b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsHardwareDefaultHardwareRaidSizeResult.cs new file mode 100644 index 00000000..f7f35bcb --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsHardwareDefaultHardwareRaidSizeResult.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 GetServerSpecificationsHardwareDefaultHardwareRaidSizeResult + { + public readonly string Unit; + public readonly double Value; + + [OutputConstructor] + private GetServerSpecificationsHardwareDefaultHardwareRaidSizeResult( + string unit, + + double value) + { + Unit = unit; + Value = value; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeResult.cs b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeResult.cs new file mode 100644 index 00000000..566d4cda --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeResult.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 GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeResult + { + public readonly string Unit; + public readonly double Value; + + [OutputConstructor] + private GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeResult( + string unit, + + double value) + { + Unit = unit; + Value = value; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsHardwareDiskGroupDiskSizeResult.cs b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsHardwareDiskGroupDiskSizeResult.cs new file mode 100644 index 00000000..b2fdecff --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsHardwareDiskGroupDiskSizeResult.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 GetServerSpecificationsHardwareDiskGroupDiskSizeResult + { + public readonly string Unit; + public readonly double Value; + + [OutputConstructor] + private GetServerSpecificationsHardwareDiskGroupDiskSizeResult( + string unit, + + double value) + { + Unit = unit; + Value = value; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsHardwareDiskGroupResult.cs b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsHardwareDiskGroupResult.cs new file mode 100644 index 00000000..8468a006 --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsHardwareDiskGroupResult.cs @@ -0,0 +1,77 @@ +// *** 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 GetServerSpecificationsHardwareDiskGroupResult + { + /// + /// Default hardware raid size for this disk group + /// + public readonly Outputs.GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeResult DefaultHardwareRaidSize; + /// + /// Default hardware raid type for this disk group + /// + public readonly string DefaultHardwareRaidType; + /// + /// Expansion card description + /// + public readonly string Description; + /// + /// Identifier of this disk group + /// + public readonly double DiskGroupId; + /// + /// Disk capacity + /// + public readonly Outputs.GetServerSpecificationsHardwareDiskGroupDiskSizeResult DiskSize; + /// + /// Type of the disk (SSD, SATA, SAS, ...) + /// + public readonly string DiskType; + /// + /// Number of disks in this group + /// + public readonly double NumberOfDisks; + /// + /// Raid controller, if any, managing this group of disks + /// + public readonly string RaidController; + + [OutputConstructor] + private GetServerSpecificationsHardwareDiskGroupResult( + Outputs.GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeResult defaultHardwareRaidSize, + + string defaultHardwareRaidType, + + string description, + + double diskGroupId, + + Outputs.GetServerSpecificationsHardwareDiskGroupDiskSizeResult diskSize, + + string diskType, + + double numberOfDisks, + + string raidController) + { + DefaultHardwareRaidSize = defaultHardwareRaidSize; + DefaultHardwareRaidType = defaultHardwareRaidType; + Description = description; + DiskGroupId = diskGroupId; + DiskSize = diskSize; + DiskType = diskType; + NumberOfDisks = numberOfDisks; + RaidController = raidController; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsHardwareExpansionCardResult.cs b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsHardwareExpansionCardResult.cs new file mode 100644 index 00000000..08b852ca --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsHardwareExpansionCardResult.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 GetServerSpecificationsHardwareExpansionCardResult + { + /// + /// Expansion card description + /// + public readonly string Description; + /// + /// Expansion card type enum + /// + public readonly string Type; + + [OutputConstructor] + private GetServerSpecificationsHardwareExpansionCardResult( + string description, + + string type) + { + Description = description; + Type = type; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsHardwareMemorySizeResult.cs b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsHardwareMemorySizeResult.cs new file mode 100644 index 00000000..8ff513f9 --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsHardwareMemorySizeResult.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 GetServerSpecificationsHardwareMemorySizeResult + { + public readonly string Unit; + public readonly double Value; + + [OutputConstructor] + private GetServerSpecificationsHardwareMemorySizeResult( + string unit, + + double value) + { + Unit = unit; + Value = value; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsHardwareUsbKeyResult.cs b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsHardwareUsbKeyResult.cs new file mode 100644 index 00000000..32714157 --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsHardwareUsbKeyResult.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 GetServerSpecificationsHardwareUsbKeyResult + { + public readonly string Unit; + public readonly double Value; + + [OutputConstructor] + private GetServerSpecificationsHardwareUsbKeyResult( + string unit, + + double value) + { + Unit = unit; + Value = value; + } + } +} diff --git a/sdk/dotnet/GetServer.cs b/sdk/dotnet/GetServer.cs index c0109a11..93de8acf 100644 --- a/sdk/dotnet/GetServer.cs +++ b/sdk/dotnet/GetServer.cs @@ -102,22 +102,26 @@ public sealed class GetServerResult /// public readonly string ServerURN; /// - /// boot id of the server + /// Boot id of the server /// public readonly int BootId; /// - /// boot script of the server + /// Boot script of the server /// public readonly string BootScript; /// - /// dedicated server commercial range + /// Dedicated server commercial range /// public readonly string CommercialRange; /// - /// dedicated datacenter localisation (bhs1,bhs2,...) + /// Dedicated datacenter localisation (bhs1,bhs2,...) /// public readonly string Datacenter; /// + /// Dedicated server display name + /// + public readonly string DisplayName; + /// /// List of enabled public VNI uuids /// public readonly ImmutableArray EnabledPublicVnis; @@ -134,15 +138,15 @@ public sealed class GetServerResult /// public readonly string Id; /// - /// dedicated server ip (IPv4) + /// Dedicated server ip (IPv4) /// public readonly string Ip; /// - /// dedicated server ip blocks + /// Dedicated server ip blocks /// public readonly ImmutableArray Ips; /// - /// link speed of the server + /// Link speed of the server /// public readonly int LinkSpeed; /// @@ -162,28 +166,28 @@ public sealed class GetServerResult /// public readonly bool ProfessionalUse; /// - /// rack id of the server + /// Rack id of the server /// public readonly string Rack; /// - /// rescue mail of the server + /// Rescue mail of the server /// public readonly string RescueMail; /// - /// dedicated server reverse + /// Dedicated server reverse /// public readonly string Reverse; /// - /// root device of the server + /// Root device of the server /// public readonly string RootDevice; /// - /// your server id + /// Server id /// public readonly int ServerId; public readonly string ServiceName; /// - /// error, hacked, hackedBlocked, ok + /// Error, hacked, hackedBlocked, ok /// public readonly string State; /// @@ -191,7 +195,7 @@ public sealed class GetServerResult /// public readonly string SupportLevel; /// - /// the list of Virtualnetworkinterface assiociated with this server + /// The list of Virtualnetworkinterface associated with this server /// public readonly ImmutableArray Vnis; @@ -207,6 +211,8 @@ private GetServerResult( string datacenter, + string displayName, + ImmutableArray enabledPublicVnis, ImmutableArray enabledVrackAggregationVnis, @@ -252,6 +258,7 @@ private GetServerResult( BootScript = bootScript; CommercialRange = commercialRange; Datacenter = datacenter; + DisplayName = displayName; EnabledPublicVnis = enabledPublicVnis; EnabledVrackAggregationVnis = enabledVrackAggregationVnis; EnabledVrackVnis = enabledVrackVnis; diff --git a/sdk/dotnet/Ip/Inputs/MoveRoutedToArgs.cs b/sdk/dotnet/Ip/Inputs/MoveRoutedToArgs.cs new file mode 100644 index 00000000..f91dcb68 --- /dev/null +++ b/sdk/dotnet/Ip/Inputs/MoveRoutedToArgs.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.Ip.Inputs +{ + + public sealed class MoveRoutedToArgs : global::Pulumi.ResourceArgs + { + /// + /// Name of the service to route the IP to. IP will be parked if this value is an empty string + /// + [Input("serviceName", required: true)] + public Input ServiceName { get; set; } = null!; + + public MoveRoutedToArgs() + { + } + public static new MoveRoutedToArgs Empty => new MoveRoutedToArgs(); + } +} diff --git a/sdk/dotnet/Ip/Inputs/MoveRoutedToGetArgs.cs b/sdk/dotnet/Ip/Inputs/MoveRoutedToGetArgs.cs new file mode 100644 index 00000000..30e41fe1 --- /dev/null +++ b/sdk/dotnet/Ip/Inputs/MoveRoutedToGetArgs.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.Ip.Inputs +{ + + public sealed class MoveRoutedToGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Name of the service to route the IP to. IP will be parked if this value is an empty string + /// + [Input("serviceName", required: true)] + public Input ServiceName { get; set; } = null!; + + public MoveRoutedToGetArgs() + { + } + public static new MoveRoutedToGetArgs Empty => new MoveRoutedToGetArgs(); + } +} diff --git a/sdk/dotnet/Ip/Move.cs b/sdk/dotnet/Ip/Move.cs new file mode 100644 index 00000000..e5ad0853 --- /dev/null +++ b/sdk/dotnet/Ip/Move.cs @@ -0,0 +1,267 @@ +// *** 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.Ip +{ + /// + /// Moves a given IP to a different service, or inversely, parks it if empty service is given + /// + /// ## Move IP `1.2.3.4` to service loadbalancer-XXXXX + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Ovh = Pulumi.Ovh; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var moveIpToLoadBalancerXxxxx = new Ovh.Ip.Move("moveIpToLoadBalancerXxxxx", new() + /// { + /// Ip = "1.2.3.4", + /// RoutedTo = new Ovh.Ip.Inputs.MoveRoutedToArgs + /// { + /// ServiceName = "loadbalancer-XXXXX", + /// }, + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + /// ## Park IP/Detach IP `1.2.3.4` from any service + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Ovh = Pulumi.Ovh; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var parkIp = new Ovh.Ip.Move("parkIp", new() + /// { + /// Ip = "1.2.3.4", + /// RoutedTo = new Ovh.Ip.Inputs.MoveRoutedToArgs + /// { + /// ServiceName = "", + /// }, + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + [OvhResourceType("ovh:Ip/move:Move")] + public partial class Move : global::Pulumi.CustomResource + { + /// + /// Whether IP service can be terminated + /// + [Output("canBeTerminated")] + public Output CanBeTerminated { get; private set; } = null!; + + /// + /// Country + /// + [Output("country")] + public Output Country { get; private set; } = null!; + + /// + /// Description attached to the IP + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// IP block that we want to attach to a different service + /// + [Output("ip")] + public Output Ip { get; private set; } = null!; + + /// + /// IP block organisation Id + /// + [Output("organisationId")] + public Output OrganisationId { get; private set; } = null!; + + /// + /// Service to route the IP to. If null, the IP will be [parked](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/park~POST) + /// instead of [moved](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/move~POST) + /// + [Output("routedTo")] + public Output RoutedTo { get; private set; } = null!; + + /// + /// Name of the service to route the IP to. IP will be parked if this value is an empty string + /// + [Output("serviceName")] + public Output ServiceName { get; private set; } = null!; + + /// + /// Starting date and time field of the current IP task that is in charge of changing the service the IP is attached to + /// + [Output("taskStartDate")] + public Output TaskStartDate { get; private set; } = null!; + + /// + /// Status field of the current IP task that is in charge of changing the service the IP is attached to + /// + [Output("taskStatus")] + public Output TaskStatus { get; private set; } = null!; + + /// + /// Possible values for ip type + /// + [Output("type")] + public Output Type { get; private set; } = null!; + + + /// + /// Create a Move 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 Move(string name, MoveArgs args, CustomResourceOptions? options = null) + : base("ovh:Ip/move:Move", name, args ?? new MoveArgs(), MakeResourceOptions(options, "")) + { + } + + private Move(string name, Input id, MoveState? state = null, CustomResourceOptions? options = null) + : base("ovh:Ip/move:Move", 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 Move 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 Move Get(string name, Input id, MoveState? state = null, CustomResourceOptions? options = null) + { + return new Move(name, id, state, options); + } + } + + public sealed class MoveArgs : global::Pulumi.ResourceArgs + { + /// + /// Description attached to the IP + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// IP block that we want to attach to a different service + /// + [Input("ip", required: true)] + public Input Ip { get; set; } = null!; + + /// + /// Service to route the IP to. If null, the IP will be [parked](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/park~POST) + /// instead of [moved](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/move~POST) + /// + [Input("routedTo", required: true)] + public Input RoutedTo { get; set; } = null!; + + public MoveArgs() + { + } + public static new MoveArgs Empty => new MoveArgs(); + } + + public sealed class MoveState : global::Pulumi.ResourceArgs + { + /// + /// Whether IP service can be terminated + /// + [Input("canBeTerminated")] + public Input? CanBeTerminated { get; set; } + + /// + /// Country + /// + [Input("country")] + public Input? Country { get; set; } + + /// + /// Description attached to the IP + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// IP block that we want to attach to a different service + /// + [Input("ip")] + public Input? Ip { get; set; } + + /// + /// IP block organisation Id + /// + [Input("organisationId")] + public Input? OrganisationId { get; set; } + + /// + /// Service to route the IP to. If null, the IP will be [parked](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/park~POST) + /// instead of [moved](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/move~POST) + /// + [Input("routedTo")] + public Input? RoutedTo { get; set; } + + /// + /// Name of the service to route the IP to. IP will be parked if this value is an empty string + /// + [Input("serviceName")] + public Input? ServiceName { get; set; } + + /// + /// Starting date and time field of the current IP task that is in charge of changing the service the IP is attached to + /// + [Input("taskStartDate")] + public Input? TaskStartDate { get; set; } + + /// + /// Status field of the current IP task that is in charge of changing the service the IP is attached to + /// + [Input("taskStatus")] + public Input? TaskStatus { get; set; } + + /// + /// Possible values for ip type + /// + [Input("type")] + public Input? Type { get; set; } + + public MoveState() + { + } + public static new MoveState Empty => new MoveState(); + } +} diff --git a/sdk/dotnet/Ip/Outputs/MoveRoutedTo.cs b/sdk/dotnet/Ip/Outputs/MoveRoutedTo.cs new file mode 100644 index 00000000..15ce0e43 --- /dev/null +++ b/sdk/dotnet/Ip/Outputs/MoveRoutedTo.cs @@ -0,0 +1,27 @@ +// *** 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.Ip.Outputs +{ + + [OutputType] + public sealed class MoveRoutedTo + { + /// + /// Name of the service to route the IP to. IP will be parked if this value is an empty string + /// + public readonly string ServiceName; + + [OutputConstructor] + private MoveRoutedTo(string serviceName) + { + ServiceName = serviceName; + } + } +} diff --git a/sdk/go.mod b/sdk/go.mod index 0b7a2fca..407ac872 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.108.1 + github.com/pulumi/pulumi/sdk/v3 v3.111.1 ) require ( diff --git a/sdk/go.sum b/sdk/go.sum index 440eb8a2..d037306e 100644 --- a/sdk/go.sum +++ b/sdk/go.sum @@ -138,8 +138,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.6.2 h1:+z+l8cuwIauLSwXQS0uoI3rqB+YG4SzsZYtHfNoXBvw= github.com/pulumi/esc v0.6.2/go.mod h1:jNnYNjzsOgVTjCp0LL24NsCk8ZJxq4IoLQdCT0X7l8k= -github.com/pulumi/pulumi/sdk/v3 v3.108.1 h1:5idjc3JmzToYVizRPbFyjJ5UU4AbExd04pcSP9AhPEc= -github.com/pulumi/pulumi/sdk/v3 v3.108.1/go.mod h1:5A6GHUwAJlRY1SSLZh84aDIbsBShcrfcmHzI50ecSBg= +github.com/pulumi/pulumi/sdk/v3 v3.111.1 h1:uOeG/b6YxBuL59xHtmFPspMa8BB6ovjHelL7sVCGJZw= +github.com/pulumi/pulumi/sdk/v3 v3.111.1/go.mod h1:5A6GHUwAJlRY1SSLZh84aDIbsBShcrfcmHzI50ecSBg= 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/containerRegistry.go b/sdk/go/ovh/cloudproject/containerRegistry.go index f15d1326..a5cd7b92 100644 --- a/sdk/go/ovh/cloudproject/containerRegistry.go +++ b/sdk/go/ovh/cloudproject/containerRegistry.go @@ -38,9 +38,9 @@ import ( // return err // } // _, err = CloudProject.NewContainerRegistry(ctx, "my-registry", &CloudProject.ContainerRegistryArgs{ -// ServiceName: *pulumi.String(regcap.ServiceName), -// PlanId: *pulumi.String(regcap.Id), -// Region: *pulumi.String(regcap.Region), +// ServiceName: pulumi.String(regcap.ServiceName), +// PlanId: pulumi.String(regcap.Id), +// Region: pulumi.String(regcap.Region), // }) // if err != nil { // return err diff --git a/sdk/go/ovh/cloudproject/gateway.go b/sdk/go/ovh/cloudproject/gateway.go new file mode 100644 index 00000000..dadce685 --- /dev/null +++ b/sdk/go/ovh/cloudproject/gateway.go @@ -0,0 +1,317 @@ +// 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 cloudproject + +import ( + "context" + "reflect" + + "errors" + "github.com/ovh/pulumi-ovh/sdk/go/ovh/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Create a new Gateway for existing subnet in the specified public cloud project. +type Gateway struct { + pulumi.CustomResourceState + + // The model of the gateway. + Model pulumi.StringOutput `pulumi:"model"` + // The name of the gateway. + Name pulumi.StringOutput `pulumi:"name"` + // The ID of the private network. + NetworkId pulumi.StringOutput `pulumi:"networkId"` + // The region of the gateway. + Region pulumi.StringOutput `pulumi:"region"` + // The ID of the private network. + ServiceName pulumi.StringOutput `pulumi:"serviceName"` + // The status of the gateway. + Status pulumi.StringOutput `pulumi:"status"` + // The ID of the subnet. + SubnetId pulumi.StringOutput `pulumi:"subnetId"` +} + +// NewGateway registers a new resource with the given unique name, arguments, and options. +func NewGateway(ctx *pulumi.Context, + name string, args *GatewayArgs, opts ...pulumi.ResourceOption) (*Gateway, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Model == nil { + return nil, errors.New("invalid value for required argument 'Model'") + } + if args.NetworkId == nil { + return nil, errors.New("invalid value for required argument 'NetworkId'") + } + if args.Region == nil { + return nil, errors.New("invalid value for required argument 'Region'") + } + if args.ServiceName == nil { + return nil, errors.New("invalid value for required argument 'ServiceName'") + } + if args.SubnetId == nil { + return nil, errors.New("invalid value for required argument 'SubnetId'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource Gateway + err := ctx.RegisterResource("ovh:CloudProject/gateway:Gateway", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetGateway gets an existing Gateway 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 GetGateway(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *GatewayState, opts ...pulumi.ResourceOption) (*Gateway, error) { + var resource Gateway + err := ctx.ReadResource("ovh:CloudProject/gateway:Gateway", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Gateway resources. +type gatewayState struct { + // The model of the gateway. + Model *string `pulumi:"model"` + // The name of the gateway. + Name *string `pulumi:"name"` + // The ID of the private network. + NetworkId *string `pulumi:"networkId"` + // The region of the gateway. + Region *string `pulumi:"region"` + // The ID of the private network. + ServiceName *string `pulumi:"serviceName"` + // The status of the gateway. + Status *string `pulumi:"status"` + // The ID of the subnet. + SubnetId *string `pulumi:"subnetId"` +} + +type GatewayState struct { + // The model of the gateway. + Model pulumi.StringPtrInput + // The name of the gateway. + Name pulumi.StringPtrInput + // The ID of the private network. + NetworkId pulumi.StringPtrInput + // The region of the gateway. + Region pulumi.StringPtrInput + // The ID of the private network. + ServiceName pulumi.StringPtrInput + // The status of the gateway. + Status pulumi.StringPtrInput + // The ID of the subnet. + SubnetId pulumi.StringPtrInput +} + +func (GatewayState) ElementType() reflect.Type { + return reflect.TypeOf((*gatewayState)(nil)).Elem() +} + +type gatewayArgs struct { + // The model of the gateway. + Model string `pulumi:"model"` + // The name of the gateway. + Name *string `pulumi:"name"` + // The ID of the private network. + NetworkId string `pulumi:"networkId"` + // The region of the gateway. + Region string `pulumi:"region"` + // The ID of the private network. + ServiceName string `pulumi:"serviceName"` + // The ID of the subnet. + SubnetId string `pulumi:"subnetId"` +} + +// The set of arguments for constructing a Gateway resource. +type GatewayArgs struct { + // The model of the gateway. + Model pulumi.StringInput + // The name of the gateway. + Name pulumi.StringPtrInput + // The ID of the private network. + NetworkId pulumi.StringInput + // The region of the gateway. + Region pulumi.StringInput + // The ID of the private network. + ServiceName pulumi.StringInput + // The ID of the subnet. + SubnetId pulumi.StringInput +} + +func (GatewayArgs) ElementType() reflect.Type { + return reflect.TypeOf((*gatewayArgs)(nil)).Elem() +} + +type GatewayInput interface { + pulumi.Input + + ToGatewayOutput() GatewayOutput + ToGatewayOutputWithContext(ctx context.Context) GatewayOutput +} + +func (*Gateway) ElementType() reflect.Type { + return reflect.TypeOf((**Gateway)(nil)).Elem() +} + +func (i *Gateway) ToGatewayOutput() GatewayOutput { + return i.ToGatewayOutputWithContext(context.Background()) +} + +func (i *Gateway) ToGatewayOutputWithContext(ctx context.Context) GatewayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayOutput) +} + +// GatewayArrayInput is an input type that accepts GatewayArray and GatewayArrayOutput values. +// You can construct a concrete instance of `GatewayArrayInput` via: +// +// GatewayArray{ GatewayArgs{...} } +type GatewayArrayInput interface { + pulumi.Input + + ToGatewayArrayOutput() GatewayArrayOutput + ToGatewayArrayOutputWithContext(context.Context) GatewayArrayOutput +} + +type GatewayArray []GatewayInput + +func (GatewayArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Gateway)(nil)).Elem() +} + +func (i GatewayArray) ToGatewayArrayOutput() GatewayArrayOutput { + return i.ToGatewayArrayOutputWithContext(context.Background()) +} + +func (i GatewayArray) ToGatewayArrayOutputWithContext(ctx context.Context) GatewayArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayArrayOutput) +} + +// GatewayMapInput is an input type that accepts GatewayMap and GatewayMapOutput values. +// You can construct a concrete instance of `GatewayMapInput` via: +// +// GatewayMap{ "key": GatewayArgs{...} } +type GatewayMapInput interface { + pulumi.Input + + ToGatewayMapOutput() GatewayMapOutput + ToGatewayMapOutputWithContext(context.Context) GatewayMapOutput +} + +type GatewayMap map[string]GatewayInput + +func (GatewayMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Gateway)(nil)).Elem() +} + +func (i GatewayMap) ToGatewayMapOutput() GatewayMapOutput { + return i.ToGatewayMapOutputWithContext(context.Background()) +} + +func (i GatewayMap) ToGatewayMapOutputWithContext(ctx context.Context) GatewayMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayMapOutput) +} + +type GatewayOutput struct{ *pulumi.OutputState } + +func (GatewayOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Gateway)(nil)).Elem() +} + +func (o GatewayOutput) ToGatewayOutput() GatewayOutput { + return o +} + +func (o GatewayOutput) ToGatewayOutputWithContext(ctx context.Context) GatewayOutput { + return o +} + +// The model of the gateway. +func (o GatewayOutput) Model() pulumi.StringOutput { + return o.ApplyT(func(v *Gateway) pulumi.StringOutput { return v.Model }).(pulumi.StringOutput) +} + +// The name of the gateway. +func (o GatewayOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *Gateway) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The ID of the private network. +func (o GatewayOutput) NetworkId() pulumi.StringOutput { + return o.ApplyT(func(v *Gateway) pulumi.StringOutput { return v.NetworkId }).(pulumi.StringOutput) +} + +// The region of the gateway. +func (o GatewayOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v *Gateway) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) +} + +// The ID of the private network. +func (o GatewayOutput) ServiceName() pulumi.StringOutput { + return o.ApplyT(func(v *Gateway) pulumi.StringOutput { return v.ServiceName }).(pulumi.StringOutput) +} + +// The status of the gateway. +func (o GatewayOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v *Gateway) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput) +} + +// The ID of the subnet. +func (o GatewayOutput) SubnetId() pulumi.StringOutput { + return o.ApplyT(func(v *Gateway) pulumi.StringOutput { return v.SubnetId }).(pulumi.StringOutput) +} + +type GatewayArrayOutput struct{ *pulumi.OutputState } + +func (GatewayArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Gateway)(nil)).Elem() +} + +func (o GatewayArrayOutput) ToGatewayArrayOutput() GatewayArrayOutput { + return o +} + +func (o GatewayArrayOutput) ToGatewayArrayOutputWithContext(ctx context.Context) GatewayArrayOutput { + return o +} + +func (o GatewayArrayOutput) Index(i pulumi.IntInput) GatewayOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Gateway { + return vs[0].([]*Gateway)[vs[1].(int)] + }).(GatewayOutput) +} + +type GatewayMapOutput struct{ *pulumi.OutputState } + +func (GatewayMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Gateway)(nil)).Elem() +} + +func (o GatewayMapOutput) ToGatewayMapOutput() GatewayMapOutput { + return o +} + +func (o GatewayMapOutput) ToGatewayMapOutputWithContext(ctx context.Context) GatewayMapOutput { + return o +} + +func (o GatewayMapOutput) MapIndex(k pulumi.StringInput) GatewayOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Gateway { + return vs[0].(map[string]*Gateway)[vs[1].(string)] + }).(GatewayOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*GatewayInput)(nil)).Elem(), &Gateway{}) + pulumi.RegisterInputType(reflect.TypeOf((*GatewayArrayInput)(nil)).Elem(), GatewayArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GatewayMapInput)(nil)).Elem(), GatewayMap{}) + pulumi.RegisterOutputType(GatewayOutput{}) + pulumi.RegisterOutputType(GatewayArrayOutput{}) + pulumi.RegisterOutputType(GatewayMapOutput{}) +} diff --git a/sdk/go/ovh/cloudproject/getKube.go b/sdk/go/ovh/cloudproject/getKube.go index 09451583..c076b398 100644 --- a/sdk/go/ovh/cloudproject/getKube.go +++ b/sdk/go/ovh/cloudproject/getKube.go @@ -60,7 +60,7 @@ type LookupKubeArgs struct { CustomizationKubeProxy *GetKubeCustomizationKubeProxy `pulumi:"customizationKubeProxy"` // **Deprecated** (Optional) Use `customizationApiserver` and `customizationKubeProxy` instead. Kubernetes cluster customization // - // Deprecated: Use customization_apiserver instead + // Deprecated: Use customizationApiserver instead Customizations []GetKubeCustomization `pulumi:"customizations"` // The id of the managed kubernetes cluster. KubeId string `pulumi:"kubeId"` @@ -88,7 +88,7 @@ type LookupKubeResult struct { CustomizationKubeProxy *GetKubeCustomizationKubeProxy `pulumi:"customizationKubeProxy"` // **Deprecated** (Optional) Use `customizationApiserver` and `customizationKubeProxy` instead. Kubernetes cluster customization // - // Deprecated: Use customization_apiserver instead + // Deprecated: Use customizationApiserver instead Customizations []GetKubeCustomization `pulumi:"customizations"` // The provider-assigned unique ID for this managed resource. Id string `pulumi:"id"` @@ -141,7 +141,7 @@ type LookupKubeOutputArgs struct { CustomizationKubeProxy GetKubeCustomizationKubeProxyPtrInput `pulumi:"customizationKubeProxy"` // **Deprecated** (Optional) Use `customizationApiserver` and `customizationKubeProxy` instead. Kubernetes cluster customization // - // Deprecated: Use customization_apiserver instead + // Deprecated: Use customizationApiserver instead Customizations GetKubeCustomizationArrayInput `pulumi:"customizations"` // The id of the managed kubernetes cluster. KubeId pulumi.StringInput `pulumi:"kubeId"` @@ -195,7 +195,7 @@ func (o LookupKubeResultOutput) CustomizationKubeProxy() GetKubeCustomizationKub // **Deprecated** (Optional) Use `customizationApiserver` and `customizationKubeProxy` instead. Kubernetes cluster customization // -// Deprecated: Use customization_apiserver instead +// Deprecated: Use customizationApiserver instead func (o LookupKubeResultOutput) Customizations() GetKubeCustomizationArrayOutput { return o.ApplyT(func(v LookupKubeResult) []GetKubeCustomization { return v.Customizations }).(GetKubeCustomizationArrayOutput) } diff --git a/sdk/go/ovh/cloudproject/init.go b/sdk/go/ovh/cloudproject/init.go index 1957ffd5..2c8680e9 100644 --- a/sdk/go/ovh/cloudproject/init.go +++ b/sdk/go/ovh/cloudproject/init.go @@ -37,6 +37,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &Database{} case "ovh:CloudProject/failoverIpAttach:FailoverIpAttach": r = &FailoverIpAttach{} + case "ovh:CloudProject/gateway:Gateway": + r = &Gateway{} case "ovh:CloudProject/kube:Kube": r = &Kube{} case "ovh:CloudProject/kubeIpRestrictions:KubeIpRestrictions": @@ -114,6 +116,11 @@ func init() { "CloudProject/failoverIpAttach", &module{version}, ) + pulumi.RegisterResourceModule( + "ovh", + "CloudProject/gateway", + &module{version}, + ) pulumi.RegisterResourceModule( "ovh", "CloudProject/kube", diff --git a/sdk/go/ovh/cloudproject/kube.go b/sdk/go/ovh/cloudproject/kube.go index 1eee385c..2cc0aa89 100644 --- a/sdk/go/ovh/cloudproject/kube.go +++ b/sdk/go/ovh/cloudproject/kube.go @@ -32,7 +32,7 @@ type Kube struct { CustomizationKubeProxy KubeCustomizationKubeProxyPtrOutput `pulumi:"customizationKubeProxy"` // **Deprecated** (Optional) Use `customizationApiserver` and `customizationKubeProxy` instead. Kubernetes cluster customization // - // Deprecated: Use customization_apiserver instead + // Deprecated: Use customizationApiserver instead Customizations KubeCustomizationArrayOutput `pulumi:"customizations"` // True if all nodes and control-plane are up-to-date. IsUpToDate pulumi.BoolOutput `pulumi:"isUpToDate"` @@ -48,7 +48,7 @@ type Kube struct { NextUpgradeVersions pulumi.StringArrayOutput `pulumi:"nextUpgradeVersions"` // Cluster nodes URL. NodesUrl pulumi.StringOutput `pulumi:"nodesUrl"` - // The private network configuration + // The private network configuration. If this is set then the 2 parameters below shall be defined. PrivateNetworkConfiguration KubePrivateNetworkConfigurationPtrOutput `pulumi:"privateNetworkConfiguration"` // OpenStack private network (or vRack) ID to use. **Changing this value recreates the resource, including ETCD user data.** Defaults - not use private network. // @@ -117,7 +117,7 @@ type kubeState struct { CustomizationKubeProxy *KubeCustomizationKubeProxy `pulumi:"customizationKubeProxy"` // **Deprecated** (Optional) Use `customizationApiserver` and `customizationKubeProxy` instead. Kubernetes cluster customization // - // Deprecated: Use customization_apiserver instead + // Deprecated: Use customizationApiserver instead Customizations []KubeCustomization `pulumi:"customizations"` // True if all nodes and control-plane are up-to-date. IsUpToDate *bool `pulumi:"isUpToDate"` @@ -133,7 +133,7 @@ type kubeState struct { NextUpgradeVersions []string `pulumi:"nextUpgradeVersions"` // Cluster nodes URL. NodesUrl *string `pulumi:"nodesUrl"` - // The private network configuration + // The private network configuration. If this is set then the 2 parameters below shall be defined. PrivateNetworkConfiguration *KubePrivateNetworkConfiguration `pulumi:"privateNetworkConfiguration"` // OpenStack private network (or vRack) ID to use. **Changing this value recreates the resource, including ETCD user data.** Defaults - not use private network. // @@ -162,7 +162,7 @@ type KubeState struct { CustomizationKubeProxy KubeCustomizationKubeProxyPtrInput // **Deprecated** (Optional) Use `customizationApiserver` and `customizationKubeProxy` instead. Kubernetes cluster customization // - // Deprecated: Use customization_apiserver instead + // Deprecated: Use customizationApiserver instead Customizations KubeCustomizationArrayInput // True if all nodes and control-plane are up-to-date. IsUpToDate pulumi.BoolPtrInput @@ -178,7 +178,7 @@ type KubeState struct { NextUpgradeVersions pulumi.StringArrayInput // Cluster nodes URL. NodesUrl pulumi.StringPtrInput - // The private network configuration + // The private network configuration. If this is set then the 2 parameters below shall be defined. PrivateNetworkConfiguration KubePrivateNetworkConfigurationPtrInput // OpenStack private network (or vRack) ID to use. **Changing this value recreates the resource, including ETCD user data.** Defaults - not use private network. // @@ -209,13 +209,13 @@ type kubeArgs struct { CustomizationKubeProxy *KubeCustomizationKubeProxy `pulumi:"customizationKubeProxy"` // **Deprecated** (Optional) Use `customizationApiserver` and `customizationKubeProxy` instead. Kubernetes cluster customization // - // Deprecated: Use customization_apiserver instead + // Deprecated: Use customizationApiserver instead Customizations []KubeCustomization `pulumi:"customizations"` // Selected mode for kube-proxy. **Changing this value recreates the resource, including ETCD user data.** Defaults to `iptables`. KubeProxyMode *string `pulumi:"kubeProxyMode"` // The name of the kubernetes cluster. Name *string `pulumi:"name"` - // The private network configuration + // The private network configuration. If this is set then the 2 parameters below shall be defined. PrivateNetworkConfiguration *KubePrivateNetworkConfiguration `pulumi:"privateNetworkConfiguration"` // OpenStack private network (or vRack) ID to use. **Changing this value recreates the resource, including ETCD user data.** Defaults - not use private network. // @@ -239,13 +239,13 @@ type KubeArgs struct { CustomizationKubeProxy KubeCustomizationKubeProxyPtrInput // **Deprecated** (Optional) Use `customizationApiserver` and `customizationKubeProxy` instead. Kubernetes cluster customization // - // Deprecated: Use customization_apiserver instead + // Deprecated: Use customizationApiserver instead Customizations KubeCustomizationArrayInput // Selected mode for kube-proxy. **Changing this value recreates the resource, including ETCD user data.** Defaults to `iptables`. KubeProxyMode pulumi.StringPtrInput // The name of the kubernetes cluster. Name pulumi.StringPtrInput - // The private network configuration + // The private network configuration. If this is set then the 2 parameters below shall be defined. PrivateNetworkConfiguration KubePrivateNetworkConfigurationPtrInput // OpenStack private network (or vRack) ID to use. **Changing this value recreates the resource, including ETCD user data.** Defaults - not use private network. // @@ -365,7 +365,7 @@ func (o KubeOutput) CustomizationKubeProxy() KubeCustomizationKubeProxyPtrOutput // **Deprecated** (Optional) Use `customizationApiserver` and `customizationKubeProxy` instead. Kubernetes cluster customization // -// Deprecated: Use customization_apiserver instead +// Deprecated: Use customizationApiserver instead func (o KubeOutput) Customizations() KubeCustomizationArrayOutput { return o.ApplyT(func(v *Kube) KubeCustomizationArrayOutput { return v.Customizations }).(KubeCustomizationArrayOutput) } @@ -405,7 +405,7 @@ func (o KubeOutput) NodesUrl() pulumi.StringOutput { return o.ApplyT(func(v *Kube) pulumi.StringOutput { return v.NodesUrl }).(pulumi.StringOutput) } -// The private network configuration +// The private network configuration. If this is set then the 2 parameters below shall be defined. func (o KubeOutput) PrivateNetworkConfiguration() KubePrivateNetworkConfigurationPtrOutput { return o.ApplyT(func(v *Kube) KubePrivateNetworkConfigurationPtrOutput { return v.PrivateNetworkConfiguration }).(KubePrivateNetworkConfigurationPtrOutput) } diff --git a/sdk/go/ovh/cloudproject/networkPrivate.go b/sdk/go/ovh/cloudproject/networkPrivate.go index 12e868cf..b575a7d5 100644 --- a/sdk/go/ovh/cloudproject/networkPrivate.go +++ b/sdk/go/ovh/cloudproject/networkPrivate.go @@ -72,7 +72,7 @@ type NetworkPrivate struct { // * `regions_status/region` - (Deprecated) The id of the region. // * `regions_status/status` - (Deprecated) The status of the network in the region. // - // Deprecated: use the regions_attributes field instead + // Deprecated: use the regionsAttributes field instead RegionsStatuses NetworkPrivateRegionsStatusArrayOutput `pulumi:"regionsStatuses"` // The id of the public cloud project. If omitted, // the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. @@ -133,7 +133,7 @@ type networkPrivateState struct { // * `regions_status/region` - (Deprecated) The id of the region. // * `regions_status/status` - (Deprecated) The status of the network in the region. // - // Deprecated: use the regions_attributes field instead + // Deprecated: use the regionsAttributes field instead RegionsStatuses []NetworkPrivateRegionsStatus `pulumi:"regionsStatuses"` // The id of the public cloud project. If omitted, // the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. @@ -162,7 +162,7 @@ type NetworkPrivateState struct { // * `regions_status/region` - (Deprecated) The id of the region. // * `regions_status/status` - (Deprecated) The status of the network in the region. // - // Deprecated: use the regions_attributes field instead + // Deprecated: use the regionsAttributes field instead RegionsStatuses NetworkPrivateRegionsStatusArrayInput // The id of the public cloud project. If omitted, // the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. @@ -319,7 +319,7 @@ func (o NetworkPrivateOutput) RegionsAttributes() NetworkPrivateRegionsAttribute // * `regions_status/region` - (Deprecated) The id of the region. // * `regions_status/status` - (Deprecated) The status of the network in the region. // -// Deprecated: use the regions_attributes field instead +// Deprecated: use the regionsAttributes field instead func (o NetworkPrivateOutput) RegionsStatuses() NetworkPrivateRegionsStatusArrayOutput { return o.ApplyT(func(v *NetworkPrivate) NetworkPrivateRegionsStatusArrayOutput { return v.RegionsStatuses }).(NetworkPrivateRegionsStatusArrayOutput) } diff --git a/sdk/go/ovh/cloudproject/pulumiTypes.go b/sdk/go/ovh/cloudproject/pulumiTypes.go index bfbc7c08..2a18b0ae 100644 --- a/sdk/go/ovh/cloudproject/pulumiTypes.go +++ b/sdk/go/ovh/cloudproject/pulumiTypes.go @@ -823,7 +823,7 @@ func (o DatabaseNodeArrayOutput) Index(i pulumi.IntInput) DatabaseNodeOutput { type KubeCustomization struct { // Kubernetes API server customization // - // Deprecated: Use customization_apiserver instead + // Deprecated: Use customizationApiserver instead Apiservers []KubeCustomizationApiserver `pulumi:"apiservers"` } @@ -841,7 +841,7 @@ type KubeCustomizationInput interface { type KubeCustomizationArgs struct { // Kubernetes API server customization // - // Deprecated: Use customization_apiserver instead + // Deprecated: Use customizationApiserver instead Apiservers KubeCustomizationApiserverArrayInput `pulumi:"apiservers"` } @@ -898,7 +898,7 @@ func (o KubeCustomizationOutput) ToKubeCustomizationOutputWithContext(ctx contex // Kubernetes API server customization // -// Deprecated: Use customization_apiserver instead +// Deprecated: Use customizationApiserver instead func (o KubeCustomizationOutput) Apiservers() KubeCustomizationApiserverArrayOutput { return o.ApplyT(func(v KubeCustomization) []KubeCustomizationApiserver { return v.Apiservers }).(KubeCustomizationApiserverArrayOutput) } @@ -2287,6 +2287,23 @@ type KubePrivateNetworkConfiguration struct { // If defined, all egress traffic will be routed towards this IP address, which should belong to the private network. Empty string means disabled. DefaultVrackGateway string `pulumi:"defaultVrackGateway"` // Defines whether routing should default to using the nodes' private interface, instead of their public interface. Default is false. + // + // In order to use the gateway IP advertised by the private network subnet DHCP, the following configuration shall be used. + // + // ```go + // package main + // + // import ( + // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + // ) + // + // func main() { + // pulumi.Run(func(ctx *pulumi.Context) error { + // return nil + // }) + // } + // ``` + // PrivateNetworkRoutingAsDefault bool `pulumi:"privateNetworkRoutingAsDefault"` } @@ -2305,6 +2322,23 @@ type KubePrivateNetworkConfigurationArgs struct { // If defined, all egress traffic will be routed towards this IP address, which should belong to the private network. Empty string means disabled. DefaultVrackGateway pulumi.StringInput `pulumi:"defaultVrackGateway"` // Defines whether routing should default to using the nodes' private interface, instead of their public interface. Default is false. + // + // In order to use the gateway IP advertised by the private network subnet DHCP, the following configuration shall be used. + // + // ```go + // package main + // + // import ( + // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + // ) + // + // func main() { + // pulumi.Run(func(ctx *pulumi.Context) error { + // return nil + // }) + // } + // ``` + // PrivateNetworkRoutingAsDefault pulumi.BoolInput `pulumi:"privateNetworkRoutingAsDefault"` } @@ -2391,6 +2425,26 @@ func (o KubePrivateNetworkConfigurationOutput) DefaultVrackGateway() pulumi.Stri } // Defines whether routing should default to using the nodes' private interface, instead of their public interface. Default is false. +// +// In order to use the gateway IP advertised by the private network subnet DHCP, the following configuration shall be used. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// return nil +// }) +// } +// +// ``` +// func (o KubePrivateNetworkConfigurationOutput) PrivateNetworkRoutingAsDefault() pulumi.BoolOutput { return o.ApplyT(func(v KubePrivateNetworkConfiguration) bool { return v.PrivateNetworkRoutingAsDefault }).(pulumi.BoolOutput) } @@ -2430,6 +2484,26 @@ func (o KubePrivateNetworkConfigurationPtrOutput) DefaultVrackGateway() pulumi.S } // Defines whether routing should default to using the nodes' private interface, instead of their public interface. Default is false. +// +// In order to use the gateway IP advertised by the private network subnet DHCP, the following configuration shall be used. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// return nil +// }) +// } +// +// ``` +// func (o KubePrivateNetworkConfigurationPtrOutput) PrivateNetworkRoutingAsDefault() pulumi.BoolPtrOutput { return o.ApplyT(func(v *KubePrivateNetworkConfiguration) *bool { if v == nil { @@ -4697,7 +4771,7 @@ func (o GetContainerRegistryUsersResultArrayOutput) Index(i pulumi.IntInput) Get type GetKubeCustomization struct { // Kubernetes API server customization // - // Deprecated: Use customization_apiserver instead + // Deprecated: Use customizationApiserver instead Apiservers []GetKubeCustomizationApiserver `pulumi:"apiservers"` } @@ -4715,7 +4789,7 @@ type GetKubeCustomizationInput interface { type GetKubeCustomizationArgs struct { // Kubernetes API server customization // - // Deprecated: Use customization_apiserver instead + // Deprecated: Use customizationApiserver instead Apiservers GetKubeCustomizationApiserverArrayInput `pulumi:"apiservers"` } @@ -4772,7 +4846,7 @@ func (o GetKubeCustomizationOutput) ToGetKubeCustomizationOutputWithContext(ctx // Kubernetes API server customization // -// Deprecated: Use customization_apiserver instead +// Deprecated: Use customizationApiserver instead func (o GetKubeCustomizationOutput) Apiservers() GetKubeCustomizationApiserverArrayOutput { return o.ApplyT(func(v GetKubeCustomization) []GetKubeCustomizationApiserver { return v.Apiservers }).(GetKubeCustomizationApiserverArrayOutput) } diff --git a/sdk/go/ovh/cloudprojectdatabase/databaseInstance.go b/sdk/go/ovh/cloudprojectdatabase/databaseInstance.go index f49308a7..ec99dd75 100644 --- a/sdk/go/ovh/cloudprojectdatabase/databaseInstance.go +++ b/sdk/go/ovh/cloudprojectdatabase/databaseInstance.go @@ -43,9 +43,9 @@ import ( // return err // } // _, err = CloudProjectDatabase.NewDatabaseInstance(ctx, "database", &CloudProjectDatabase.DatabaseInstanceArgs{ -// ServiceName: *pulumi.String(db.ServiceName), -// Engine: *pulumi.String(db.Engine), -// ClusterId: *pulumi.String(db.Id), +// ServiceName: pulumi.String(db.ServiceName), +// Engine: pulumi.String(db.Engine), +// ClusterId: pulumi.String(db.Id), // }) // if err != nil { // return err diff --git a/sdk/go/ovh/cloudprojectdatabase/integration.go b/sdk/go/ovh/cloudprojectdatabase/integration.go index f56e02f0..0f05d74b 100644 --- a/sdk/go/ovh/cloudprojectdatabase/integration.go +++ b/sdk/go/ovh/cloudprojectdatabase/integration.go @@ -52,11 +52,11 @@ import ( // return err // } // _, err = CloudProjectDatabase.NewIntegration(ctx, "integration", &CloudProjectDatabase.IntegrationArgs{ -// ServiceName: *pulumi.String(dbpostgresql.ServiceName), -// Engine: *pulumi.String(dbpostgresql.Engine), -// ClusterId: *pulumi.String(dbpostgresql.Id), -// SourceServiceId: *pulumi.String(dbpostgresql.Id), -// DestinationServiceId: *pulumi.String(dbopensearch.Id), +// ServiceName: pulumi.String(dbpostgresql.ServiceName), +// Engine: pulumi.String(dbpostgresql.Engine), +// ClusterId: pulumi.String(dbpostgresql.Id), +// SourceServiceId: pulumi.String(dbpostgresql.Id), +// DestinationServiceId: pulumi.String(dbopensearch.Id), // Type: pulumi.String("opensearchLogs"), // }) // if err != nil { diff --git a/sdk/go/ovh/cloudprojectdatabase/ipRestriction.go b/sdk/go/ovh/cloudprojectdatabase/ipRestriction.go index bb9d8d91..5f18f0b0 100644 --- a/sdk/go/ovh/cloudprojectdatabase/ipRestriction.go +++ b/sdk/go/ovh/cloudprojectdatabase/ipRestriction.go @@ -38,9 +38,9 @@ import ( // return err // } // _, err = CloudProjectDatabase.NewIpRestriction(ctx, "iprestriction", &CloudProjectDatabase.IpRestrictionArgs{ -// ServiceName: *pulumi.String(db.ServiceName), -// Engine: *pulumi.String(db.Engine), -// ClusterId: *pulumi.String(db.Id), +// ServiceName: pulumi.String(db.ServiceName), +// Engine: pulumi.String(db.Engine), +// ClusterId: pulumi.String(db.Id), // Ip: pulumi.String("178.97.6.0/24"), // }) // if err != nil { diff --git a/sdk/go/ovh/cloudprojectdatabase/kafkaAcl.go b/sdk/go/ovh/cloudprojectdatabase/kafkaAcl.go index 5c95ad41..15f397e2 100644 --- a/sdk/go/ovh/cloudprojectdatabase/kafkaAcl.go +++ b/sdk/go/ovh/cloudprojectdatabase/kafkaAcl.go @@ -38,8 +38,8 @@ import ( // return err // } // _, err = CloudProjectDatabase.NewKafkaAcl(ctx, "acl", &CloudProjectDatabase.KafkaAclArgs{ -// ServiceName: *pulumi.String(kafka.ServiceName), -// ClusterId: *pulumi.String(kafka.Id), +// ServiceName: pulumi.String(kafka.ServiceName), +// ClusterId: pulumi.String(kafka.Id), // Permission: pulumi.String("read"), // Topic: pulumi.String("mytopic"), // Username: pulumi.String("johndoe"), diff --git a/sdk/go/ovh/cloudprojectdatabase/kafkaSchemaRegistryAcl.go b/sdk/go/ovh/cloudprojectdatabase/kafkaSchemaRegistryAcl.go index c829f537..3908c777 100644 --- a/sdk/go/ovh/cloudprojectdatabase/kafkaSchemaRegistryAcl.go +++ b/sdk/go/ovh/cloudprojectdatabase/kafkaSchemaRegistryAcl.go @@ -38,8 +38,8 @@ import ( // return err // } // _, err = CloudProjectDatabase.NewKafkaSchemaRegistryAcl(ctx, "schemaRegistryAcl", &CloudProjectDatabase.KafkaSchemaRegistryAclArgs{ -// ServiceName: *pulumi.String(kafka.ServiceName), -// ClusterId: *pulumi.String(kafka.Id), +// ServiceName: pulumi.String(kafka.ServiceName), +// ClusterId: pulumi.String(kafka.Id), // Permission: pulumi.String("schema_registry_read"), // Resource: pulumi.String("Subject:myResource"), // Username: pulumi.String("johndoe"), diff --git a/sdk/go/ovh/cloudprojectdatabase/kafkaTopic.go b/sdk/go/ovh/cloudprojectdatabase/kafkaTopic.go index 12d0a124..1e7b08f0 100644 --- a/sdk/go/ovh/cloudprojectdatabase/kafkaTopic.go +++ b/sdk/go/ovh/cloudprojectdatabase/kafkaTopic.go @@ -38,8 +38,8 @@ import ( // return err // } // _, err = CloudProjectDatabase.NewKafkaTopic(ctx, "topic", &CloudProjectDatabase.KafkaTopicArgs{ -// ServiceName: *pulumi.String(kafka.ServiceName), -// ClusterId: *pulumi.String(kafka.Id), +// ServiceName: pulumi.String(kafka.ServiceName), +// ClusterId: pulumi.String(kafka.Id), // MinInsyncReplicas: pulumi.Int(1), // Partitions: pulumi.Int(3), // Replication: pulumi.Int(2), diff --git a/sdk/go/ovh/cloudprojectdatabase/m3dbNamespace.go b/sdk/go/ovh/cloudprojectdatabase/m3dbNamespace.go index 808a673b..db39fe43 100644 --- a/sdk/go/ovh/cloudprojectdatabase/m3dbNamespace.go +++ b/sdk/go/ovh/cloudprojectdatabase/m3dbNamespace.go @@ -38,8 +38,8 @@ import ( // return err // } // _, err = CloudProjectDatabase.NewM3DbNamespace(ctx, "namespace", &CloudProjectDatabase.M3DbNamespaceArgs{ -// ServiceName: *pulumi.String(m3db.ServiceName), -// ClusterId: *pulumi.String(m3db.Id), +// ServiceName: pulumi.String(m3db.ServiceName), +// ClusterId: pulumi.String(m3db.Id), // Resolution: pulumi.String("P2D"), // RetentionPeriodDuration: pulumi.String("PT48H"), // }) diff --git a/sdk/go/ovh/cloudprojectdatabase/opensearchPattern.go b/sdk/go/ovh/cloudprojectdatabase/opensearchPattern.go index 68b7f087..5756323d 100644 --- a/sdk/go/ovh/cloudprojectdatabase/opensearchPattern.go +++ b/sdk/go/ovh/cloudprojectdatabase/opensearchPattern.go @@ -38,8 +38,8 @@ import ( // return err // } // _, err = CloudProjectDatabase.NewOpensearchPattern(ctx, "pattern", &CloudProjectDatabase.OpensearchPatternArgs{ -// ServiceName: *pulumi.String(opensearch.ServiceName), -// ClusterId: *pulumi.String(opensearch.Id), +// ServiceName: pulumi.String(opensearch.ServiceName), +// ClusterId: pulumi.String(opensearch.Id), // MaxIndexCount: pulumi.Int(2), // Pattern: pulumi.String("logs_*"), // }) diff --git a/sdk/go/ovh/dbaas/logsInput.go b/sdk/go/ovh/dbaas/logsInput.go index e7112305..1fd6ea65 100644 --- a/sdk/go/ovh/dbaas/logsInput.go +++ b/sdk/go/ovh/dbaas/logsInput.go @@ -48,7 +48,7 @@ import ( // ServiceName: stream.ServiceName, // Description: stream.Description, // Title: stream.Title, -// EngineId: *pulumi.String(logstash.Id), +// EngineId: pulumi.String(logstash.Id), // StreamId: stream.ID(), // AllowedNetworks: pulumi.StringArray{ // pulumi.String("10.0.0.0/16"), diff --git a/sdk/go/ovh/dedicated/cephAcl.go b/sdk/go/ovh/dedicated/cephAcl.go index d25157b8..e6854bc9 100644 --- a/sdk/go/ovh/dedicated/cephAcl.go +++ b/sdk/go/ovh/dedicated/cephAcl.go @@ -36,7 +36,7 @@ import ( // return err // } // _, err = Dedicated.NewCephAcl(ctx, "my-acl", &Dedicated.CephAclArgs{ -// ServiceName: *pulumi.String(my_ceph.Id), +// ServiceName: pulumi.String(my_ceph.Id), // Network: pulumi.String("1.2.3.4"), // Netmask: pulumi.String("255.255.255.255"), // }) diff --git a/sdk/go/ovh/dedicated/getServerSpecificationsHardware.go b/sdk/go/ovh/dedicated/getServerSpecificationsHardware.go new file mode 100644 index 00000000..d754cbc7 --- /dev/null +++ b/sdk/go/ovh/dedicated/getServerSpecificationsHardware.go @@ -0,0 +1,230 @@ +// 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" + + "github.com/ovh/pulumi-ovh/sdk/go/ovh/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Use this data source to get the hardward information about a dedicated server associated with your OVHcloud Account. +// +// ## Example Usage +// +// +// ```go +// package main +// +// import ( +// +// "github.com/ovh/pulumi-ovh/sdk/go/ovh/Dedicated" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := Dedicated.GetServerSpecificationsHardware(ctx, &dedicated.GetServerSpecificationsHardwareArgs{ +// ServiceName: "myserver", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +func GetServerSpecificationsHardware(ctx *pulumi.Context, args *GetServerSpecificationsHardwareArgs, opts ...pulumi.InvokeOption) (*GetServerSpecificationsHardwareResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetServerSpecificationsHardwareResult + err := ctx.Invoke("ovh:Dedicated/getServerSpecificationsHardware:getServerSpecificationsHardware", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getServerSpecificationsHardware. +type GetServerSpecificationsHardwareArgs struct { + // The internal name of your dedicated server. + ServiceName string `pulumi:"serviceName"` +} + +// A collection of values returned by getServerSpecificationsHardware. +type GetServerSpecificationsHardwareResult struct { + // Server boot mode + BootMode string `pulumi:"bootMode"` + // Number of cores per processor + CoresPerProcessor float64 `pulumi:"coresPerProcessor"` + // Default hardware raid size for this disk group + DefaultHardwareRaidSize GetServerSpecificationsHardwareDefaultHardwareRaidSize `pulumi:"defaultHardwareRaidSize"` + // Default hardware raid type for this disk group + DefaultHardwareRaidType string `pulumi:"defaultHardwareRaidType"` + // Expansion card description + Description string `pulumi:"description"` + // Details about the groups of disks in the server + DiskGroups []GetServerSpecificationsHardwareDiskGroup `pulumi:"diskGroups"` + // Details about the server's expansion cards + ExpansionCards []GetServerSpecificationsHardwareExpansionCard `pulumi:"expansionCards"` + // Server form factor + FormFactor string `pulumi:"formFactor"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // RAM capacity + MemorySize GetServerSpecificationsHardwareMemorySize `pulumi:"memorySize"` + // Server motherboard + Motherboard string `pulumi:"motherboard"` + // Number of processors in this dedicated server + NumberOfProcessors float64 `pulumi:"numberOfProcessors"` + // Processor architecture bit + ProcessorArchitecture string `pulumi:"processorArchitecture"` + // Processor name + ProcessorName string `pulumi:"processorName"` + ServiceName string `pulumi:"serviceName"` + // Number of threads per processor + ThreadsPerProcessor float64 `pulumi:"threadsPerProcessor"` + // Capacity of the USB keys installed on your server, if any + UsbKeys []GetServerSpecificationsHardwareUsbKey `pulumi:"usbKeys"` +} + +func GetServerSpecificationsHardwareOutput(ctx *pulumi.Context, args GetServerSpecificationsHardwareOutputArgs, opts ...pulumi.InvokeOption) GetServerSpecificationsHardwareResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (GetServerSpecificationsHardwareResult, error) { + args := v.(GetServerSpecificationsHardwareArgs) + r, err := GetServerSpecificationsHardware(ctx, &args, opts...) + var s GetServerSpecificationsHardwareResult + if r != nil { + s = *r + } + return s, err + }).(GetServerSpecificationsHardwareResultOutput) +} + +// A collection of arguments for invoking getServerSpecificationsHardware. +type GetServerSpecificationsHardwareOutputArgs struct { + // The internal name of your dedicated server. + ServiceName pulumi.StringInput `pulumi:"serviceName"` +} + +func (GetServerSpecificationsHardwareOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsHardwareArgs)(nil)).Elem() +} + +// A collection of values returned by getServerSpecificationsHardware. +type GetServerSpecificationsHardwareResultOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsHardwareResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsHardwareResult)(nil)).Elem() +} + +func (o GetServerSpecificationsHardwareResultOutput) ToGetServerSpecificationsHardwareResultOutput() GetServerSpecificationsHardwareResultOutput { + return o +} + +func (o GetServerSpecificationsHardwareResultOutput) ToGetServerSpecificationsHardwareResultOutputWithContext(ctx context.Context) GetServerSpecificationsHardwareResultOutput { + return o +} + +// Server boot mode +func (o GetServerSpecificationsHardwareResultOutput) BootMode() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsHardwareResult) string { return v.BootMode }).(pulumi.StringOutput) +} + +// Number of cores per processor +func (o GetServerSpecificationsHardwareResultOutput) CoresPerProcessor() pulumi.Float64Output { + return o.ApplyT(func(v GetServerSpecificationsHardwareResult) float64 { return v.CoresPerProcessor }).(pulumi.Float64Output) +} + +// Default hardware raid size for this disk group +func (o GetServerSpecificationsHardwareResultOutput) DefaultHardwareRaidSize() GetServerSpecificationsHardwareDefaultHardwareRaidSizeOutput { + return o.ApplyT(func(v GetServerSpecificationsHardwareResult) GetServerSpecificationsHardwareDefaultHardwareRaidSize { + return v.DefaultHardwareRaidSize + }).(GetServerSpecificationsHardwareDefaultHardwareRaidSizeOutput) +} + +// Default hardware raid type for this disk group +func (o GetServerSpecificationsHardwareResultOutput) DefaultHardwareRaidType() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsHardwareResult) string { return v.DefaultHardwareRaidType }).(pulumi.StringOutput) +} + +// Expansion card description +func (o GetServerSpecificationsHardwareResultOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsHardwareResult) string { return v.Description }).(pulumi.StringOutput) +} + +// Details about the groups of disks in the server +func (o GetServerSpecificationsHardwareResultOutput) DiskGroups() GetServerSpecificationsHardwareDiskGroupArrayOutput { + return o.ApplyT(func(v GetServerSpecificationsHardwareResult) []GetServerSpecificationsHardwareDiskGroup { + return v.DiskGroups + }).(GetServerSpecificationsHardwareDiskGroupArrayOutput) +} + +// Details about the server's expansion cards +func (o GetServerSpecificationsHardwareResultOutput) ExpansionCards() GetServerSpecificationsHardwareExpansionCardArrayOutput { + return o.ApplyT(func(v GetServerSpecificationsHardwareResult) []GetServerSpecificationsHardwareExpansionCard { + return v.ExpansionCards + }).(GetServerSpecificationsHardwareExpansionCardArrayOutput) +} + +// Server form factor +func (o GetServerSpecificationsHardwareResultOutput) FormFactor() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsHardwareResult) string { return v.FormFactor }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetServerSpecificationsHardwareResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsHardwareResult) string { return v.Id }).(pulumi.StringOutput) +} + +// RAM capacity +func (o GetServerSpecificationsHardwareResultOutput) MemorySize() GetServerSpecificationsHardwareMemorySizeOutput { + return o.ApplyT(func(v GetServerSpecificationsHardwareResult) GetServerSpecificationsHardwareMemorySize { + return v.MemorySize + }).(GetServerSpecificationsHardwareMemorySizeOutput) +} + +// Server motherboard +func (o GetServerSpecificationsHardwareResultOutput) Motherboard() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsHardwareResult) string { return v.Motherboard }).(pulumi.StringOutput) +} + +// Number of processors in this dedicated server +func (o GetServerSpecificationsHardwareResultOutput) NumberOfProcessors() pulumi.Float64Output { + return o.ApplyT(func(v GetServerSpecificationsHardwareResult) float64 { return v.NumberOfProcessors }).(pulumi.Float64Output) +} + +// Processor architecture bit +func (o GetServerSpecificationsHardwareResultOutput) ProcessorArchitecture() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsHardwareResult) string { return v.ProcessorArchitecture }).(pulumi.StringOutput) +} + +// Processor name +func (o GetServerSpecificationsHardwareResultOutput) ProcessorName() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsHardwareResult) string { return v.ProcessorName }).(pulumi.StringOutput) +} + +func (o GetServerSpecificationsHardwareResultOutput) ServiceName() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsHardwareResult) string { return v.ServiceName }).(pulumi.StringOutput) +} + +// Number of threads per processor +func (o GetServerSpecificationsHardwareResultOutput) ThreadsPerProcessor() pulumi.Float64Output { + return o.ApplyT(func(v GetServerSpecificationsHardwareResult) float64 { return v.ThreadsPerProcessor }).(pulumi.Float64Output) +} + +// Capacity of the USB keys installed on your server, if any +func (o GetServerSpecificationsHardwareResultOutput) UsbKeys() GetServerSpecificationsHardwareUsbKeyArrayOutput { + return o.ApplyT(func(v GetServerSpecificationsHardwareResult) []GetServerSpecificationsHardwareUsbKey { + return v.UsbKeys + }).(GetServerSpecificationsHardwareUsbKeyArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(GetServerSpecificationsHardwareResultOutput{}) +} diff --git a/sdk/go/ovh/dedicated/pulumiTypes.go b/sdk/go/ovh/dedicated/pulumiTypes.go index 7e9cc78e..d7f0d9aa 100644 --- a/sdk/go/ovh/dedicated/pulumiTypes.go +++ b/sdk/go/ovh/dedicated/pulumiTypes.go @@ -511,13 +511,623 @@ func (o ServerNetworkingInterfaceArrayOutput) Index(i pulumi.IntInput) ServerNet }).(ServerNetworkingInterfaceOutput) } +type GetServerSpecificationsHardwareDefaultHardwareRaidSize struct { + Unit string `pulumi:"unit"` + Value float64 `pulumi:"value"` +} + +// GetServerSpecificationsHardwareDefaultHardwareRaidSizeInput is an input type that accepts GetServerSpecificationsHardwareDefaultHardwareRaidSizeArgs and GetServerSpecificationsHardwareDefaultHardwareRaidSizeOutput values. +// You can construct a concrete instance of `GetServerSpecificationsHardwareDefaultHardwareRaidSizeInput` via: +// +// GetServerSpecificationsHardwareDefaultHardwareRaidSizeArgs{...} +type GetServerSpecificationsHardwareDefaultHardwareRaidSizeInput interface { + pulumi.Input + + ToGetServerSpecificationsHardwareDefaultHardwareRaidSizeOutput() GetServerSpecificationsHardwareDefaultHardwareRaidSizeOutput + ToGetServerSpecificationsHardwareDefaultHardwareRaidSizeOutputWithContext(context.Context) GetServerSpecificationsHardwareDefaultHardwareRaidSizeOutput +} + +type GetServerSpecificationsHardwareDefaultHardwareRaidSizeArgs struct { + Unit pulumi.StringInput `pulumi:"unit"` + Value pulumi.Float64Input `pulumi:"value"` +} + +func (GetServerSpecificationsHardwareDefaultHardwareRaidSizeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsHardwareDefaultHardwareRaidSize)(nil)).Elem() +} + +func (i GetServerSpecificationsHardwareDefaultHardwareRaidSizeArgs) ToGetServerSpecificationsHardwareDefaultHardwareRaidSizeOutput() GetServerSpecificationsHardwareDefaultHardwareRaidSizeOutput { + return i.ToGetServerSpecificationsHardwareDefaultHardwareRaidSizeOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsHardwareDefaultHardwareRaidSizeArgs) ToGetServerSpecificationsHardwareDefaultHardwareRaidSizeOutputWithContext(ctx context.Context) GetServerSpecificationsHardwareDefaultHardwareRaidSizeOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsHardwareDefaultHardwareRaidSizeOutput) +} + +type GetServerSpecificationsHardwareDefaultHardwareRaidSizeOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsHardwareDefaultHardwareRaidSizeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsHardwareDefaultHardwareRaidSize)(nil)).Elem() +} + +func (o GetServerSpecificationsHardwareDefaultHardwareRaidSizeOutput) ToGetServerSpecificationsHardwareDefaultHardwareRaidSizeOutput() GetServerSpecificationsHardwareDefaultHardwareRaidSizeOutput { + return o +} + +func (o GetServerSpecificationsHardwareDefaultHardwareRaidSizeOutput) ToGetServerSpecificationsHardwareDefaultHardwareRaidSizeOutputWithContext(ctx context.Context) GetServerSpecificationsHardwareDefaultHardwareRaidSizeOutput { + return o +} + +func (o GetServerSpecificationsHardwareDefaultHardwareRaidSizeOutput) Unit() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsHardwareDefaultHardwareRaidSize) string { return v.Unit }).(pulumi.StringOutput) +} + +func (o GetServerSpecificationsHardwareDefaultHardwareRaidSizeOutput) Value() pulumi.Float64Output { + return o.ApplyT(func(v GetServerSpecificationsHardwareDefaultHardwareRaidSize) float64 { return v.Value }).(pulumi.Float64Output) +} + +type GetServerSpecificationsHardwareDiskGroup struct { + // Default hardware raid size for this disk group + DefaultHardwareRaidSize GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSize `pulumi:"defaultHardwareRaidSize"` + // Default hardware raid type for this disk group + DefaultHardwareRaidType string `pulumi:"defaultHardwareRaidType"` + // Expansion card description + Description string `pulumi:"description"` + // Identifier of this disk group + DiskGroupId float64 `pulumi:"diskGroupId"` + // Disk capacity + DiskSize GetServerSpecificationsHardwareDiskGroupDiskSize `pulumi:"diskSize"` + // Type of the disk (SSD, SATA, SAS, ...) + DiskType string `pulumi:"diskType"` + // Number of disks in this group + NumberOfDisks float64 `pulumi:"numberOfDisks"` + // Raid controller, if any, managing this group of disks + RaidController string `pulumi:"raidController"` +} + +// GetServerSpecificationsHardwareDiskGroupInput is an input type that accepts GetServerSpecificationsHardwareDiskGroupArgs and GetServerSpecificationsHardwareDiskGroupOutput values. +// You can construct a concrete instance of `GetServerSpecificationsHardwareDiskGroupInput` via: +// +// GetServerSpecificationsHardwareDiskGroupArgs{...} +type GetServerSpecificationsHardwareDiskGroupInput interface { + pulumi.Input + + ToGetServerSpecificationsHardwareDiskGroupOutput() GetServerSpecificationsHardwareDiskGroupOutput + ToGetServerSpecificationsHardwareDiskGroupOutputWithContext(context.Context) GetServerSpecificationsHardwareDiskGroupOutput +} + +type GetServerSpecificationsHardwareDiskGroupArgs struct { + // Default hardware raid size for this disk group + DefaultHardwareRaidSize GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeInput `pulumi:"defaultHardwareRaidSize"` + // Default hardware raid type for this disk group + DefaultHardwareRaidType pulumi.StringInput `pulumi:"defaultHardwareRaidType"` + // Expansion card description + Description pulumi.StringInput `pulumi:"description"` + // Identifier of this disk group + DiskGroupId pulumi.Float64Input `pulumi:"diskGroupId"` + // Disk capacity + DiskSize GetServerSpecificationsHardwareDiskGroupDiskSizeInput `pulumi:"diskSize"` + // Type of the disk (SSD, SATA, SAS, ...) + DiskType pulumi.StringInput `pulumi:"diskType"` + // Number of disks in this group + NumberOfDisks pulumi.Float64Input `pulumi:"numberOfDisks"` + // Raid controller, if any, managing this group of disks + RaidController pulumi.StringInput `pulumi:"raidController"` +} + +func (GetServerSpecificationsHardwareDiskGroupArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsHardwareDiskGroup)(nil)).Elem() +} + +func (i GetServerSpecificationsHardwareDiskGroupArgs) ToGetServerSpecificationsHardwareDiskGroupOutput() GetServerSpecificationsHardwareDiskGroupOutput { + return i.ToGetServerSpecificationsHardwareDiskGroupOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsHardwareDiskGroupArgs) ToGetServerSpecificationsHardwareDiskGroupOutputWithContext(ctx context.Context) GetServerSpecificationsHardwareDiskGroupOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsHardwareDiskGroupOutput) +} + +// GetServerSpecificationsHardwareDiskGroupArrayInput is an input type that accepts GetServerSpecificationsHardwareDiskGroupArray and GetServerSpecificationsHardwareDiskGroupArrayOutput values. +// You can construct a concrete instance of `GetServerSpecificationsHardwareDiskGroupArrayInput` via: +// +// GetServerSpecificationsHardwareDiskGroupArray{ GetServerSpecificationsHardwareDiskGroupArgs{...} } +type GetServerSpecificationsHardwareDiskGroupArrayInput interface { + pulumi.Input + + ToGetServerSpecificationsHardwareDiskGroupArrayOutput() GetServerSpecificationsHardwareDiskGroupArrayOutput + ToGetServerSpecificationsHardwareDiskGroupArrayOutputWithContext(context.Context) GetServerSpecificationsHardwareDiskGroupArrayOutput +} + +type GetServerSpecificationsHardwareDiskGroupArray []GetServerSpecificationsHardwareDiskGroupInput + +func (GetServerSpecificationsHardwareDiskGroupArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetServerSpecificationsHardwareDiskGroup)(nil)).Elem() +} + +func (i GetServerSpecificationsHardwareDiskGroupArray) ToGetServerSpecificationsHardwareDiskGroupArrayOutput() GetServerSpecificationsHardwareDiskGroupArrayOutput { + return i.ToGetServerSpecificationsHardwareDiskGroupArrayOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsHardwareDiskGroupArray) ToGetServerSpecificationsHardwareDiskGroupArrayOutputWithContext(ctx context.Context) GetServerSpecificationsHardwareDiskGroupArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsHardwareDiskGroupArrayOutput) +} + +type GetServerSpecificationsHardwareDiskGroupOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsHardwareDiskGroupOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsHardwareDiskGroup)(nil)).Elem() +} + +func (o GetServerSpecificationsHardwareDiskGroupOutput) ToGetServerSpecificationsHardwareDiskGroupOutput() GetServerSpecificationsHardwareDiskGroupOutput { + return o +} + +func (o GetServerSpecificationsHardwareDiskGroupOutput) ToGetServerSpecificationsHardwareDiskGroupOutputWithContext(ctx context.Context) GetServerSpecificationsHardwareDiskGroupOutput { + return o +} + +// Default hardware raid size for this disk group +func (o GetServerSpecificationsHardwareDiskGroupOutput) DefaultHardwareRaidSize() GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeOutput { + return o.ApplyT(func(v GetServerSpecificationsHardwareDiskGroup) GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSize { + return v.DefaultHardwareRaidSize + }).(GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeOutput) +} + +// Default hardware raid type for this disk group +func (o GetServerSpecificationsHardwareDiskGroupOutput) DefaultHardwareRaidType() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsHardwareDiskGroup) string { return v.DefaultHardwareRaidType }).(pulumi.StringOutput) +} + +// Expansion card description +func (o GetServerSpecificationsHardwareDiskGroupOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsHardwareDiskGroup) string { return v.Description }).(pulumi.StringOutput) +} + +// Identifier of this disk group +func (o GetServerSpecificationsHardwareDiskGroupOutput) DiskGroupId() pulumi.Float64Output { + return o.ApplyT(func(v GetServerSpecificationsHardwareDiskGroup) float64 { return v.DiskGroupId }).(pulumi.Float64Output) +} + +// Disk capacity +func (o GetServerSpecificationsHardwareDiskGroupOutput) DiskSize() GetServerSpecificationsHardwareDiskGroupDiskSizeOutput { + return o.ApplyT(func(v GetServerSpecificationsHardwareDiskGroup) GetServerSpecificationsHardwareDiskGroupDiskSize { + return v.DiskSize + }).(GetServerSpecificationsHardwareDiskGroupDiskSizeOutput) +} + +// Type of the disk (SSD, SATA, SAS, ...) +func (o GetServerSpecificationsHardwareDiskGroupOutput) DiskType() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsHardwareDiskGroup) string { return v.DiskType }).(pulumi.StringOutput) +} + +// Number of disks in this group +func (o GetServerSpecificationsHardwareDiskGroupOutput) NumberOfDisks() pulumi.Float64Output { + return o.ApplyT(func(v GetServerSpecificationsHardwareDiskGroup) float64 { return v.NumberOfDisks }).(pulumi.Float64Output) +} + +// Raid controller, if any, managing this group of disks +func (o GetServerSpecificationsHardwareDiskGroupOutput) RaidController() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsHardwareDiskGroup) string { return v.RaidController }).(pulumi.StringOutput) +} + +type GetServerSpecificationsHardwareDiskGroupArrayOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsHardwareDiskGroupArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetServerSpecificationsHardwareDiskGroup)(nil)).Elem() +} + +func (o GetServerSpecificationsHardwareDiskGroupArrayOutput) ToGetServerSpecificationsHardwareDiskGroupArrayOutput() GetServerSpecificationsHardwareDiskGroupArrayOutput { + return o +} + +func (o GetServerSpecificationsHardwareDiskGroupArrayOutput) ToGetServerSpecificationsHardwareDiskGroupArrayOutputWithContext(ctx context.Context) GetServerSpecificationsHardwareDiskGroupArrayOutput { + return o +} + +func (o GetServerSpecificationsHardwareDiskGroupArrayOutput) Index(i pulumi.IntInput) GetServerSpecificationsHardwareDiskGroupOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetServerSpecificationsHardwareDiskGroup { + return vs[0].([]GetServerSpecificationsHardwareDiskGroup)[vs[1].(int)] + }).(GetServerSpecificationsHardwareDiskGroupOutput) +} + +type GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSize struct { + Unit string `pulumi:"unit"` + Value float64 `pulumi:"value"` +} + +// GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeInput is an input type that accepts GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeArgs and GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeOutput values. +// You can construct a concrete instance of `GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeInput` via: +// +// GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeArgs{...} +type GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeInput interface { + pulumi.Input + + ToGetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeOutput() GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeOutput + ToGetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeOutputWithContext(context.Context) GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeOutput +} + +type GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeArgs struct { + Unit pulumi.StringInput `pulumi:"unit"` + Value pulumi.Float64Input `pulumi:"value"` +} + +func (GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSize)(nil)).Elem() +} + +func (i GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeArgs) ToGetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeOutput() GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeOutput { + return i.ToGetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeArgs) ToGetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeOutputWithContext(ctx context.Context) GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeOutput) +} + +type GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSize)(nil)).Elem() +} + +func (o GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeOutput) ToGetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeOutput() GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeOutput { + return o +} + +func (o GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeOutput) ToGetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeOutputWithContext(ctx context.Context) GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeOutput { + return o +} + +func (o GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeOutput) Unit() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSize) string { return v.Unit }).(pulumi.StringOutput) +} + +func (o GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeOutput) Value() pulumi.Float64Output { + return o.ApplyT(func(v GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSize) float64 { return v.Value }).(pulumi.Float64Output) +} + +type GetServerSpecificationsHardwareDiskGroupDiskSize struct { + Unit string `pulumi:"unit"` + Value float64 `pulumi:"value"` +} + +// GetServerSpecificationsHardwareDiskGroupDiskSizeInput is an input type that accepts GetServerSpecificationsHardwareDiskGroupDiskSizeArgs and GetServerSpecificationsHardwareDiskGroupDiskSizeOutput values. +// You can construct a concrete instance of `GetServerSpecificationsHardwareDiskGroupDiskSizeInput` via: +// +// GetServerSpecificationsHardwareDiskGroupDiskSizeArgs{...} +type GetServerSpecificationsHardwareDiskGroupDiskSizeInput interface { + pulumi.Input + + ToGetServerSpecificationsHardwareDiskGroupDiskSizeOutput() GetServerSpecificationsHardwareDiskGroupDiskSizeOutput + ToGetServerSpecificationsHardwareDiskGroupDiskSizeOutputWithContext(context.Context) GetServerSpecificationsHardwareDiskGroupDiskSizeOutput +} + +type GetServerSpecificationsHardwareDiskGroupDiskSizeArgs struct { + Unit pulumi.StringInput `pulumi:"unit"` + Value pulumi.Float64Input `pulumi:"value"` +} + +func (GetServerSpecificationsHardwareDiskGroupDiskSizeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsHardwareDiskGroupDiskSize)(nil)).Elem() +} + +func (i GetServerSpecificationsHardwareDiskGroupDiskSizeArgs) ToGetServerSpecificationsHardwareDiskGroupDiskSizeOutput() GetServerSpecificationsHardwareDiskGroupDiskSizeOutput { + return i.ToGetServerSpecificationsHardwareDiskGroupDiskSizeOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsHardwareDiskGroupDiskSizeArgs) ToGetServerSpecificationsHardwareDiskGroupDiskSizeOutputWithContext(ctx context.Context) GetServerSpecificationsHardwareDiskGroupDiskSizeOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsHardwareDiskGroupDiskSizeOutput) +} + +type GetServerSpecificationsHardwareDiskGroupDiskSizeOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsHardwareDiskGroupDiskSizeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsHardwareDiskGroupDiskSize)(nil)).Elem() +} + +func (o GetServerSpecificationsHardwareDiskGroupDiskSizeOutput) ToGetServerSpecificationsHardwareDiskGroupDiskSizeOutput() GetServerSpecificationsHardwareDiskGroupDiskSizeOutput { + return o +} + +func (o GetServerSpecificationsHardwareDiskGroupDiskSizeOutput) ToGetServerSpecificationsHardwareDiskGroupDiskSizeOutputWithContext(ctx context.Context) GetServerSpecificationsHardwareDiskGroupDiskSizeOutput { + return o +} + +func (o GetServerSpecificationsHardwareDiskGroupDiskSizeOutput) Unit() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsHardwareDiskGroupDiskSize) string { return v.Unit }).(pulumi.StringOutput) +} + +func (o GetServerSpecificationsHardwareDiskGroupDiskSizeOutput) Value() pulumi.Float64Output { + return o.ApplyT(func(v GetServerSpecificationsHardwareDiskGroupDiskSize) float64 { return v.Value }).(pulumi.Float64Output) +} + +type GetServerSpecificationsHardwareExpansionCard struct { + // Expansion card description + Description string `pulumi:"description"` + // Expansion card type enum + Type string `pulumi:"type"` +} + +// GetServerSpecificationsHardwareExpansionCardInput is an input type that accepts GetServerSpecificationsHardwareExpansionCardArgs and GetServerSpecificationsHardwareExpansionCardOutput values. +// You can construct a concrete instance of `GetServerSpecificationsHardwareExpansionCardInput` via: +// +// GetServerSpecificationsHardwareExpansionCardArgs{...} +type GetServerSpecificationsHardwareExpansionCardInput interface { + pulumi.Input + + ToGetServerSpecificationsHardwareExpansionCardOutput() GetServerSpecificationsHardwareExpansionCardOutput + ToGetServerSpecificationsHardwareExpansionCardOutputWithContext(context.Context) GetServerSpecificationsHardwareExpansionCardOutput +} + +type GetServerSpecificationsHardwareExpansionCardArgs struct { + // Expansion card description + Description pulumi.StringInput `pulumi:"description"` + // Expansion card type enum + Type pulumi.StringInput `pulumi:"type"` +} + +func (GetServerSpecificationsHardwareExpansionCardArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsHardwareExpansionCard)(nil)).Elem() +} + +func (i GetServerSpecificationsHardwareExpansionCardArgs) ToGetServerSpecificationsHardwareExpansionCardOutput() GetServerSpecificationsHardwareExpansionCardOutput { + return i.ToGetServerSpecificationsHardwareExpansionCardOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsHardwareExpansionCardArgs) ToGetServerSpecificationsHardwareExpansionCardOutputWithContext(ctx context.Context) GetServerSpecificationsHardwareExpansionCardOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsHardwareExpansionCardOutput) +} + +// GetServerSpecificationsHardwareExpansionCardArrayInput is an input type that accepts GetServerSpecificationsHardwareExpansionCardArray and GetServerSpecificationsHardwareExpansionCardArrayOutput values. +// You can construct a concrete instance of `GetServerSpecificationsHardwareExpansionCardArrayInput` via: +// +// GetServerSpecificationsHardwareExpansionCardArray{ GetServerSpecificationsHardwareExpansionCardArgs{...} } +type GetServerSpecificationsHardwareExpansionCardArrayInput interface { + pulumi.Input + + ToGetServerSpecificationsHardwareExpansionCardArrayOutput() GetServerSpecificationsHardwareExpansionCardArrayOutput + ToGetServerSpecificationsHardwareExpansionCardArrayOutputWithContext(context.Context) GetServerSpecificationsHardwareExpansionCardArrayOutput +} + +type GetServerSpecificationsHardwareExpansionCardArray []GetServerSpecificationsHardwareExpansionCardInput + +func (GetServerSpecificationsHardwareExpansionCardArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetServerSpecificationsHardwareExpansionCard)(nil)).Elem() +} + +func (i GetServerSpecificationsHardwareExpansionCardArray) ToGetServerSpecificationsHardwareExpansionCardArrayOutput() GetServerSpecificationsHardwareExpansionCardArrayOutput { + return i.ToGetServerSpecificationsHardwareExpansionCardArrayOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsHardwareExpansionCardArray) ToGetServerSpecificationsHardwareExpansionCardArrayOutputWithContext(ctx context.Context) GetServerSpecificationsHardwareExpansionCardArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsHardwareExpansionCardArrayOutput) +} + +type GetServerSpecificationsHardwareExpansionCardOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsHardwareExpansionCardOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsHardwareExpansionCard)(nil)).Elem() +} + +func (o GetServerSpecificationsHardwareExpansionCardOutput) ToGetServerSpecificationsHardwareExpansionCardOutput() GetServerSpecificationsHardwareExpansionCardOutput { + return o +} + +func (o GetServerSpecificationsHardwareExpansionCardOutput) ToGetServerSpecificationsHardwareExpansionCardOutputWithContext(ctx context.Context) GetServerSpecificationsHardwareExpansionCardOutput { + return o +} + +// Expansion card description +func (o GetServerSpecificationsHardwareExpansionCardOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsHardwareExpansionCard) string { return v.Description }).(pulumi.StringOutput) +} + +// Expansion card type enum +func (o GetServerSpecificationsHardwareExpansionCardOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsHardwareExpansionCard) string { return v.Type }).(pulumi.StringOutput) +} + +type GetServerSpecificationsHardwareExpansionCardArrayOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsHardwareExpansionCardArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetServerSpecificationsHardwareExpansionCard)(nil)).Elem() +} + +func (o GetServerSpecificationsHardwareExpansionCardArrayOutput) ToGetServerSpecificationsHardwareExpansionCardArrayOutput() GetServerSpecificationsHardwareExpansionCardArrayOutput { + return o +} + +func (o GetServerSpecificationsHardwareExpansionCardArrayOutput) ToGetServerSpecificationsHardwareExpansionCardArrayOutputWithContext(ctx context.Context) GetServerSpecificationsHardwareExpansionCardArrayOutput { + return o +} + +func (o GetServerSpecificationsHardwareExpansionCardArrayOutput) Index(i pulumi.IntInput) GetServerSpecificationsHardwareExpansionCardOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetServerSpecificationsHardwareExpansionCard { + return vs[0].([]GetServerSpecificationsHardwareExpansionCard)[vs[1].(int)] + }).(GetServerSpecificationsHardwareExpansionCardOutput) +} + +type GetServerSpecificationsHardwareMemorySize struct { + Unit string `pulumi:"unit"` + Value float64 `pulumi:"value"` +} + +// GetServerSpecificationsHardwareMemorySizeInput is an input type that accepts GetServerSpecificationsHardwareMemorySizeArgs and GetServerSpecificationsHardwareMemorySizeOutput values. +// You can construct a concrete instance of `GetServerSpecificationsHardwareMemorySizeInput` via: +// +// GetServerSpecificationsHardwareMemorySizeArgs{...} +type GetServerSpecificationsHardwareMemorySizeInput interface { + pulumi.Input + + ToGetServerSpecificationsHardwareMemorySizeOutput() GetServerSpecificationsHardwareMemorySizeOutput + ToGetServerSpecificationsHardwareMemorySizeOutputWithContext(context.Context) GetServerSpecificationsHardwareMemorySizeOutput +} + +type GetServerSpecificationsHardwareMemorySizeArgs struct { + Unit pulumi.StringInput `pulumi:"unit"` + Value pulumi.Float64Input `pulumi:"value"` +} + +func (GetServerSpecificationsHardwareMemorySizeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsHardwareMemorySize)(nil)).Elem() +} + +func (i GetServerSpecificationsHardwareMemorySizeArgs) ToGetServerSpecificationsHardwareMemorySizeOutput() GetServerSpecificationsHardwareMemorySizeOutput { + return i.ToGetServerSpecificationsHardwareMemorySizeOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsHardwareMemorySizeArgs) ToGetServerSpecificationsHardwareMemorySizeOutputWithContext(ctx context.Context) GetServerSpecificationsHardwareMemorySizeOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsHardwareMemorySizeOutput) +} + +type GetServerSpecificationsHardwareMemorySizeOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsHardwareMemorySizeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsHardwareMemorySize)(nil)).Elem() +} + +func (o GetServerSpecificationsHardwareMemorySizeOutput) ToGetServerSpecificationsHardwareMemorySizeOutput() GetServerSpecificationsHardwareMemorySizeOutput { + return o +} + +func (o GetServerSpecificationsHardwareMemorySizeOutput) ToGetServerSpecificationsHardwareMemorySizeOutputWithContext(ctx context.Context) GetServerSpecificationsHardwareMemorySizeOutput { + return o +} + +func (o GetServerSpecificationsHardwareMemorySizeOutput) Unit() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsHardwareMemorySize) string { return v.Unit }).(pulumi.StringOutput) +} + +func (o GetServerSpecificationsHardwareMemorySizeOutput) Value() pulumi.Float64Output { + return o.ApplyT(func(v GetServerSpecificationsHardwareMemorySize) float64 { return v.Value }).(pulumi.Float64Output) +} + +type GetServerSpecificationsHardwareUsbKey struct { + Unit string `pulumi:"unit"` + Value float64 `pulumi:"value"` +} + +// GetServerSpecificationsHardwareUsbKeyInput is an input type that accepts GetServerSpecificationsHardwareUsbKeyArgs and GetServerSpecificationsHardwareUsbKeyOutput values. +// You can construct a concrete instance of `GetServerSpecificationsHardwareUsbKeyInput` via: +// +// GetServerSpecificationsHardwareUsbKeyArgs{...} +type GetServerSpecificationsHardwareUsbKeyInput interface { + pulumi.Input + + ToGetServerSpecificationsHardwareUsbKeyOutput() GetServerSpecificationsHardwareUsbKeyOutput + ToGetServerSpecificationsHardwareUsbKeyOutputWithContext(context.Context) GetServerSpecificationsHardwareUsbKeyOutput +} + +type GetServerSpecificationsHardwareUsbKeyArgs struct { + Unit pulumi.StringInput `pulumi:"unit"` + Value pulumi.Float64Input `pulumi:"value"` +} + +func (GetServerSpecificationsHardwareUsbKeyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsHardwareUsbKey)(nil)).Elem() +} + +func (i GetServerSpecificationsHardwareUsbKeyArgs) ToGetServerSpecificationsHardwareUsbKeyOutput() GetServerSpecificationsHardwareUsbKeyOutput { + return i.ToGetServerSpecificationsHardwareUsbKeyOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsHardwareUsbKeyArgs) ToGetServerSpecificationsHardwareUsbKeyOutputWithContext(ctx context.Context) GetServerSpecificationsHardwareUsbKeyOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsHardwareUsbKeyOutput) +} + +// GetServerSpecificationsHardwareUsbKeyArrayInput is an input type that accepts GetServerSpecificationsHardwareUsbKeyArray and GetServerSpecificationsHardwareUsbKeyArrayOutput values. +// You can construct a concrete instance of `GetServerSpecificationsHardwareUsbKeyArrayInput` via: +// +// GetServerSpecificationsHardwareUsbKeyArray{ GetServerSpecificationsHardwareUsbKeyArgs{...} } +type GetServerSpecificationsHardwareUsbKeyArrayInput interface { + pulumi.Input + + ToGetServerSpecificationsHardwareUsbKeyArrayOutput() GetServerSpecificationsHardwareUsbKeyArrayOutput + ToGetServerSpecificationsHardwareUsbKeyArrayOutputWithContext(context.Context) GetServerSpecificationsHardwareUsbKeyArrayOutput +} + +type GetServerSpecificationsHardwareUsbKeyArray []GetServerSpecificationsHardwareUsbKeyInput + +func (GetServerSpecificationsHardwareUsbKeyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetServerSpecificationsHardwareUsbKey)(nil)).Elem() +} + +func (i GetServerSpecificationsHardwareUsbKeyArray) ToGetServerSpecificationsHardwareUsbKeyArrayOutput() GetServerSpecificationsHardwareUsbKeyArrayOutput { + return i.ToGetServerSpecificationsHardwareUsbKeyArrayOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsHardwareUsbKeyArray) ToGetServerSpecificationsHardwareUsbKeyArrayOutputWithContext(ctx context.Context) GetServerSpecificationsHardwareUsbKeyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsHardwareUsbKeyArrayOutput) +} + +type GetServerSpecificationsHardwareUsbKeyOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsHardwareUsbKeyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsHardwareUsbKey)(nil)).Elem() +} + +func (o GetServerSpecificationsHardwareUsbKeyOutput) ToGetServerSpecificationsHardwareUsbKeyOutput() GetServerSpecificationsHardwareUsbKeyOutput { + return o +} + +func (o GetServerSpecificationsHardwareUsbKeyOutput) ToGetServerSpecificationsHardwareUsbKeyOutputWithContext(ctx context.Context) GetServerSpecificationsHardwareUsbKeyOutput { + return o +} + +func (o GetServerSpecificationsHardwareUsbKeyOutput) Unit() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsHardwareUsbKey) string { return v.Unit }).(pulumi.StringOutput) +} + +func (o GetServerSpecificationsHardwareUsbKeyOutput) Value() pulumi.Float64Output { + return o.ApplyT(func(v GetServerSpecificationsHardwareUsbKey) float64 { return v.Value }).(pulumi.Float64Output) +} + +type GetServerSpecificationsHardwareUsbKeyArrayOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsHardwareUsbKeyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetServerSpecificationsHardwareUsbKey)(nil)).Elem() +} + +func (o GetServerSpecificationsHardwareUsbKeyArrayOutput) ToGetServerSpecificationsHardwareUsbKeyArrayOutput() GetServerSpecificationsHardwareUsbKeyArrayOutput { + return o +} + +func (o GetServerSpecificationsHardwareUsbKeyArrayOutput) ToGetServerSpecificationsHardwareUsbKeyArrayOutputWithContext(ctx context.Context) GetServerSpecificationsHardwareUsbKeyArrayOutput { + return o +} + +func (o GetServerSpecificationsHardwareUsbKeyArrayOutput) Index(i pulumi.IntInput) GetServerSpecificationsHardwareUsbKeyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetServerSpecificationsHardwareUsbKey { + return vs[0].([]GetServerSpecificationsHardwareUsbKey)[vs[1].(int)] + }).(GetServerSpecificationsHardwareUsbKeyOutput) +} + func init() { pulumi.RegisterInputType(reflect.TypeOf((*ServerInstallTaskDetailsInput)(nil)).Elem(), ServerInstallTaskDetailsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServerInstallTaskDetailsPtrInput)(nil)).Elem(), ServerInstallTaskDetailsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServerNetworkingInterfaceInput)(nil)).Elem(), ServerNetworkingInterfaceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServerNetworkingInterfaceArrayInput)(nil)).Elem(), ServerNetworkingInterfaceArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsHardwareDefaultHardwareRaidSizeInput)(nil)).Elem(), GetServerSpecificationsHardwareDefaultHardwareRaidSizeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsHardwareDiskGroupInput)(nil)).Elem(), GetServerSpecificationsHardwareDiskGroupArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsHardwareDiskGroupArrayInput)(nil)).Elem(), GetServerSpecificationsHardwareDiskGroupArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeInput)(nil)).Elem(), GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsHardwareDiskGroupDiskSizeInput)(nil)).Elem(), GetServerSpecificationsHardwareDiskGroupDiskSizeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsHardwareExpansionCardInput)(nil)).Elem(), GetServerSpecificationsHardwareExpansionCardArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsHardwareExpansionCardArrayInput)(nil)).Elem(), GetServerSpecificationsHardwareExpansionCardArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsHardwareMemorySizeInput)(nil)).Elem(), GetServerSpecificationsHardwareMemorySizeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsHardwareUsbKeyInput)(nil)).Elem(), GetServerSpecificationsHardwareUsbKeyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsHardwareUsbKeyArrayInput)(nil)).Elem(), GetServerSpecificationsHardwareUsbKeyArray{}) pulumi.RegisterOutputType(ServerInstallTaskDetailsOutput{}) pulumi.RegisterOutputType(ServerInstallTaskDetailsPtrOutput{}) pulumi.RegisterOutputType(ServerNetworkingInterfaceOutput{}) pulumi.RegisterOutputType(ServerNetworkingInterfaceArrayOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsHardwareDefaultHardwareRaidSizeOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsHardwareDiskGroupOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsHardwareDiskGroupArrayOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsHardwareDiskGroupDiskSizeOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsHardwareExpansionCardOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsHardwareExpansionCardArrayOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsHardwareMemorySizeOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsHardwareUsbKeyOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsHardwareUsbKeyArrayOutput{}) } diff --git a/sdk/go/ovh/dedicated/serverInstallTask.go b/sdk/go/ovh/dedicated/serverInstallTask.go index 38a8e22c..2224eed0 100644 --- a/sdk/go/ovh/dedicated/serverInstallTask.go +++ b/sdk/go/ovh/dedicated/serverInstallTask.go @@ -56,7 +56,7 @@ import ( // _, err = Dedicated.NewServerInstallTask(ctx, "serverInstall", &Dedicated.ServerInstallTaskArgs{ // ServiceName: pulumi.String("nsxxxxxxx.ip-xx-xx-xx.eu"), // TemplateName: debian.TemplateName, -// BootidOnDestroy: *pulumi.Int(rescue.Results[0]), +// BootidOnDestroy: pulumi.Int(rescue.Results[0]), // Details: &dedicated.ServerInstallTaskDetailsArgs{ // CustomHostname: pulumi.String("mytest"), // }, diff --git a/sdk/go/ovh/dedicated/serverRebootTask.go b/sdk/go/ovh/dedicated/serverRebootTask.go index b5a90487..fcc6ef7d 100644 --- a/sdk/go/ovh/dedicated/serverRebootTask.go +++ b/sdk/go/ovh/dedicated/serverRebootTask.go @@ -37,7 +37,7 @@ import ( // } // serverOnRescue, err := Dedicated.NewServerUpdate(ctx, "serverOnRescue", &Dedicated.ServerUpdateArgs{ // ServiceName: pulumi.String("nsxxxxxxx.ip-xx-xx-xx.eu"), -// BootId: *pulumi.Int(rescue.Results[0]), +// BootId: pulumi.Int(rescue.Results[0]), // Monitoring: pulumi.Bool(true), // State: pulumi.String("ok"), // }) @@ -45,7 +45,7 @@ import ( // return err // } // _, err = Dedicated.NewServerRebootTask(ctx, "serverReboot", &Dedicated.ServerRebootTaskArgs{ -// ServiceName: *pulumi.String(rescue.ServiceName), +// ServiceName: pulumi.String(rescue.ServiceName), // Keepers: pulumi.StringArray{ // serverOnRescue.BootId, // }, diff --git a/sdk/go/ovh/dedicated/serverUpdate.go b/sdk/go/ovh/dedicated/serverUpdate.go index f2273bbf..dce7e127 100644 --- a/sdk/go/ovh/dedicated/serverUpdate.go +++ b/sdk/go/ovh/dedicated/serverUpdate.go @@ -37,7 +37,7 @@ import ( // } // _, err = Dedicated.NewServerUpdate(ctx, "server", &Dedicated.ServerUpdateArgs{ // ServiceName: pulumi.String("nsxxxxxxx.ip-xx-xx-xx.eu"), -// BootId: *pulumi.Int(rescue.Results[0]), +// BootId: pulumi.Int(rescue.Results[0]), // Monitoring: pulumi.Bool(true), // State: pulumi.String("ok"), // }) diff --git a/sdk/go/ovh/domain/zone.go b/sdk/go/ovh/domain/zone.go index 03b0bd96..bbfd7fd7 100644 --- a/sdk/go/ovh/domain/zone.go +++ b/sdk/go/ovh/domain/zone.go @@ -49,11 +49,11 @@ import ( // return err // } // _, err = Domain.NewZone(ctx, "zoneZone", &Domain.ZoneArgs{ -// OvhSubsidiary: *pulumi.String(mycart.OvhSubsidiary), +// OvhSubsidiary: pulumi.String(mycart.OvhSubsidiary), // Plan: &domain.ZonePlanArgs{ -// Duration: *pulumi.String(zoneCartProductPlan.SelectedPrices[0].Duration), -// PlanCode: *pulumi.String(zoneCartProductPlan.PlanCode), -// PricingMode: *pulumi.String(zoneCartProductPlan.SelectedPrices[0].PricingMode), +// Duration: pulumi.String(zoneCartProductPlan.SelectedPrices[0].Duration), +// PlanCode: pulumi.String(zoneCartProductPlan.PlanCode), +// PricingMode: pulumi.String(zoneCartProductPlan.SelectedPrices[0].PricingMode), // Configurations: domain.ZonePlanConfigurationArray{ // &domain.ZonePlanConfigurationArgs{ // Label: pulumi.String("zone"), diff --git a/sdk/go/ovh/getServer.go b/sdk/go/ovh/getServer.go index 766faf1e..12d53368 100644 --- a/sdk/go/ovh/getServer.go +++ b/sdk/go/ovh/getServer.go @@ -60,14 +60,16 @@ type GetServerArgs struct { type GetServerResult struct { // URN of the dedicated server instance ServerURN string `pulumi:"ServerURN"` - // boot id of the server + // Boot id of the server BootId int `pulumi:"bootId"` - // boot script of the server + // Boot script of the server BootScript string `pulumi:"bootScript"` - // dedicated server commercial range + // Dedicated server commercial range CommercialRange string `pulumi:"commercialRange"` - // dedicated datacenter localisation (bhs1,bhs2,...) + // Dedicated datacenter localisation (bhs1,bhs2,...) Datacenter string `pulumi:"datacenter"` + // Dedicated server display name + DisplayName string `pulumi:"displayName"` // List of enabled public VNI uuids EnabledPublicVnis []string `pulumi:"enabledPublicVnis"` // List of enabled vrackAggregation VNI uuids @@ -76,11 +78,11 @@ type GetServerResult struct { EnabledVrackVnis []string `pulumi:"enabledVrackVnis"` // The provider-assigned unique ID for this managed resource. Id string `pulumi:"id"` - // dedicated server ip (IPv4) + // Dedicated server ip (IPv4) Ip string `pulumi:"ip"` - // dedicated server ip blocks + // Dedicated server ip blocks Ips []string `pulumi:"ips"` - // link speed of the server + // Link speed of the server LinkSpeed int `pulumi:"linkSpeed"` // Icmp monitoring state Monitoring bool `pulumi:"monitoring"` @@ -90,22 +92,22 @@ type GetServerResult struct { Os string `pulumi:"os"` // Does this server have professional use option ProfessionalUse bool `pulumi:"professionalUse"` - // rack id of the server + // Rack id of the server Rack string `pulumi:"rack"` - // rescue mail of the server + // Rescue mail of the server RescueMail string `pulumi:"rescueMail"` - // dedicated server reverse + // Dedicated server reverse Reverse string `pulumi:"reverse"` - // root device of the server + // Root device of the server RootDevice string `pulumi:"rootDevice"` - // your server id + // Server id ServerId int `pulumi:"serverId"` ServiceName string `pulumi:"serviceName"` - // error, hacked, hackedBlocked, ok + // Error, hacked, hackedBlocked, ok State string `pulumi:"state"` // Dedicated server support level (critical, fastpath, gs, pro) SupportLevel string `pulumi:"supportLevel"` - // the list of Virtualnetworkinterface assiociated with this server + // The list of Virtualnetworkinterface associated with this server Vnis []GetServerVni `pulumi:"vnis"` } @@ -152,26 +154,31 @@ func (o GetServerResultOutput) ServerURN() pulumi.StringOutput { return o.ApplyT(func(v GetServerResult) string { return v.ServerURN }).(pulumi.StringOutput) } -// boot id of the server +// Boot id of the server func (o GetServerResultOutput) BootId() pulumi.IntOutput { return o.ApplyT(func(v GetServerResult) int { return v.BootId }).(pulumi.IntOutput) } -// boot script of the server +// Boot script of the server func (o GetServerResultOutput) BootScript() pulumi.StringOutput { return o.ApplyT(func(v GetServerResult) string { return v.BootScript }).(pulumi.StringOutput) } -// dedicated server commercial range +// Dedicated server commercial range func (o GetServerResultOutput) CommercialRange() pulumi.StringOutput { return o.ApplyT(func(v GetServerResult) string { return v.CommercialRange }).(pulumi.StringOutput) } -// dedicated datacenter localisation (bhs1,bhs2,...) +// Dedicated datacenter localisation (bhs1,bhs2,...) func (o GetServerResultOutput) Datacenter() pulumi.StringOutput { return o.ApplyT(func(v GetServerResult) string { return v.Datacenter }).(pulumi.StringOutput) } +// Dedicated server display name +func (o GetServerResultOutput) DisplayName() pulumi.StringOutput { + return o.ApplyT(func(v GetServerResult) string { return v.DisplayName }).(pulumi.StringOutput) +} + // List of enabled public VNI uuids func (o GetServerResultOutput) EnabledPublicVnis() pulumi.StringArrayOutput { return o.ApplyT(func(v GetServerResult) []string { return v.EnabledPublicVnis }).(pulumi.StringArrayOutput) @@ -192,17 +199,17 @@ func (o GetServerResultOutput) Id() pulumi.StringOutput { return o.ApplyT(func(v GetServerResult) string { return v.Id }).(pulumi.StringOutput) } -// dedicated server ip (IPv4) +// Dedicated server ip (IPv4) func (o GetServerResultOutput) Ip() pulumi.StringOutput { return o.ApplyT(func(v GetServerResult) string { return v.Ip }).(pulumi.StringOutput) } -// dedicated server ip blocks +// Dedicated server ip blocks func (o GetServerResultOutput) Ips() pulumi.StringArrayOutput { return o.ApplyT(func(v GetServerResult) []string { return v.Ips }).(pulumi.StringArrayOutput) } -// link speed of the server +// Link speed of the server func (o GetServerResultOutput) LinkSpeed() pulumi.IntOutput { return o.ApplyT(func(v GetServerResult) int { return v.LinkSpeed }).(pulumi.IntOutput) } @@ -227,27 +234,27 @@ func (o GetServerResultOutput) ProfessionalUse() pulumi.BoolOutput { return o.ApplyT(func(v GetServerResult) bool { return v.ProfessionalUse }).(pulumi.BoolOutput) } -// rack id of the server +// Rack id of the server func (o GetServerResultOutput) Rack() pulumi.StringOutput { return o.ApplyT(func(v GetServerResult) string { return v.Rack }).(pulumi.StringOutput) } -// rescue mail of the server +// Rescue mail of the server func (o GetServerResultOutput) RescueMail() pulumi.StringOutput { return o.ApplyT(func(v GetServerResult) string { return v.RescueMail }).(pulumi.StringOutput) } -// dedicated server reverse +// Dedicated server reverse func (o GetServerResultOutput) Reverse() pulumi.StringOutput { return o.ApplyT(func(v GetServerResult) string { return v.Reverse }).(pulumi.StringOutput) } -// root device of the server +// Root device of the server func (o GetServerResultOutput) RootDevice() pulumi.StringOutput { return o.ApplyT(func(v GetServerResult) string { return v.RootDevice }).(pulumi.StringOutput) } -// your server id +// Server id func (o GetServerResultOutput) ServerId() pulumi.IntOutput { return o.ApplyT(func(v GetServerResult) int { return v.ServerId }).(pulumi.IntOutput) } @@ -256,7 +263,7 @@ func (o GetServerResultOutput) ServiceName() pulumi.StringOutput { return o.ApplyT(func(v GetServerResult) string { return v.ServiceName }).(pulumi.StringOutput) } -// error, hacked, hackedBlocked, ok +// Error, hacked, hackedBlocked, ok func (o GetServerResultOutput) State() pulumi.StringOutput { return o.ApplyT(func(v GetServerResult) string { return v.State }).(pulumi.StringOutput) } @@ -266,7 +273,7 @@ func (o GetServerResultOutput) SupportLevel() pulumi.StringOutput { return o.ApplyT(func(v GetServerResult) string { return v.SupportLevel }).(pulumi.StringOutput) } -// the list of Virtualnetworkinterface assiociated with this server +// The list of Virtualnetworkinterface associated with this server func (o GetServerResultOutput) Vnis() GetServerVniArrayOutput { return o.ApplyT(func(v GetServerResult) []GetServerVni { return v.Vnis }).(GetServerVniArrayOutput) } diff --git a/sdk/go/ovh/hosting/privateDatabase.go b/sdk/go/ovh/hosting/privateDatabase.go index 6fcdd04e..cecd529a 100644 --- a/sdk/go/ovh/hosting/privateDatabase.go +++ b/sdk/go/ovh/hosting/privateDatabase.go @@ -49,12 +49,12 @@ import ( // return err // } // databasePrivateDatabase, err := Hosting.NewPrivateDatabase(ctx, "databasePrivateDatabase", &Hosting.PrivateDatabaseArgs{ -// OvhSubsidiary: *pulumi.String(mycart.OvhSubsidiary), +// OvhSubsidiary: pulumi.String(mycart.OvhSubsidiary), // DisplayName: pulumi.String("Postgresql-12"), // Plan: &hosting.PrivateDatabasePlanArgs{ -// Duration: *pulumi.String(databaseCartProductPlan.Prices[3].Duration), -// PlanCode: *pulumi.String(databaseCartProductPlan.PlanCode), -// PricingMode: *pulumi.String(databaseCartProductPlan.SelectedPrices[0].PricingMode), +// Duration: pulumi.String(databaseCartProductPlan.Prices[3].Duration), +// PlanCode: pulumi.String(databaseCartProductPlan.PlanCode), +// PricingMode: pulumi.String(databaseCartProductPlan.SelectedPrices[0].PricingMode), // Configurations: hosting.PrivateDatabasePlanConfigurationArray{ // &hosting.PrivateDatabasePlanConfigurationArgs{ // Label: pulumi.String("dc"), diff --git a/sdk/go/ovh/iam/policy.go b/sdk/go/ovh/iam/policy.go index 9e18e763..ac295994 100644 --- a/sdk/go/ovh/iam/policy.go +++ b/sdk/go/ovh/iam/policy.go @@ -46,7 +46,7 @@ import ( // myGroup.GroupURN, // }, // Resources: pulumi.StringArray{ -// *pulumi.String(account.AccountURN), +// pulumi.String(account.AccountURN), // }, // Allows: pulumi.StringArray{ // pulumi.String("account:apiovh:me/get"), diff --git a/sdk/go/ovh/ip/init.go b/sdk/go/ovh/ip/init.go index c4ee2675..ef421bf7 100644 --- a/sdk/go/ovh/ip/init.go +++ b/sdk/go/ovh/ip/init.go @@ -23,6 +23,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi switch typ { case "ovh:Ip/ipService:IpService": r = &IpService{} + case "ovh:Ip/move:Move": + r = &Move{} case "ovh:Ip/reverse:Reverse": r = &Reverse{} default: @@ -43,6 +45,11 @@ func init() { "Ip/ipService", &module{version}, ) + pulumi.RegisterResourceModule( + "ovh", + "Ip/move", + &module{version}, + ) pulumi.RegisterResourceModule( "ovh", "Ip/reverse", diff --git a/sdk/go/ovh/ip/ipService.go b/sdk/go/ovh/ip/ipService.go index 01862026..5fbd4a8a 100644 --- a/sdk/go/ovh/ip/ipService.go +++ b/sdk/go/ovh/ip/ipService.go @@ -49,12 +49,12 @@ import ( // return err // } // _, err = Ip.NewIpService(ctx, "ipblockIpService", &Ip.IpServiceArgs{ -// OvhSubsidiary: *pulumi.String(mycart.OvhSubsidiary), +// OvhSubsidiary: pulumi.String(mycart.OvhSubsidiary), // Description: pulumi.String("my ip block"), // Plan: &ip.IpServicePlanArgs{ -// Duration: *pulumi.String(ipblockCartProductPlan.SelectedPrices[0].Duration), -// PlanCode: *pulumi.String(ipblockCartProductPlan.PlanCode), -// PricingMode: *pulumi.String(ipblockCartProductPlan.SelectedPrices[0].PricingMode), +// Duration: pulumi.String(ipblockCartProductPlan.SelectedPrices[0].Duration), +// PlanCode: pulumi.String(ipblockCartProductPlan.PlanCode), +// PricingMode: pulumi.String(ipblockCartProductPlan.SelectedPrices[0].PricingMode), // Configurations: ip.IpServicePlanConfigurationArray{ // &ip.IpServicePlanConfigurationArgs{ // Label: pulumi.String("country"), diff --git a/sdk/go/ovh/ip/move.go b/sdk/go/ovh/ip/move.go new file mode 100644 index 00000000..16da1a0c --- /dev/null +++ b/sdk/go/ovh/ip/move.go @@ -0,0 +1,397 @@ +// 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 ip + +import ( + "context" + "reflect" + + "errors" + "github.com/ovh/pulumi-ovh/sdk/go/ovh/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Moves a given IP to a different service, or inversely, parks it if empty service is given +// +// ## Move IP `1.2.3.4` to service loadbalancer-XXXXX +// +// +// ```go +// package main +// +// import ( +// +// "github.com/ovh/pulumi-ovh/sdk/go/ovh/Ip" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := Ip.NewMove(ctx, "moveIpToLoadBalancerXxxxx", &Ip.MoveArgs{ +// Ip: pulumi.String("1.2.3.4"), +// RoutedTo: &ip.MoveRoutedToArgs{ +// ServiceName: pulumi.String("loadbalancer-XXXXX"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// +// ## Park IP/Detach IP `1.2.3.4` from any service +// +// +// ```go +// package main +// +// import ( +// +// "github.com/ovh/pulumi-ovh/sdk/go/ovh/Ip" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := Ip.NewMove(ctx, "parkIp", &Ip.MoveArgs{ +// Ip: pulumi.String("1.2.3.4"), +// RoutedTo: &ip.MoveRoutedToArgs{ +// ServiceName: pulumi.String(""), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +type Move struct { + pulumi.CustomResourceState + + // Whether IP service can be terminated + CanBeTerminated pulumi.BoolOutput `pulumi:"canBeTerminated"` + // Country + Country pulumi.StringOutput `pulumi:"country"` + // Description attached to the IP + Description pulumi.StringOutput `pulumi:"description"` + // IP block that we want to attach to a different service + Ip pulumi.StringOutput `pulumi:"ip"` + // IP block organisation Id + OrganisationId pulumi.StringOutput `pulumi:"organisationId"` + // Service to route the IP to. If null, the IP will be [parked]() + // instead of [moved]() + RoutedTo MoveRoutedToOutput `pulumi:"routedTo"` + // Name of the service to route the IP to. IP will be parked if this value is an empty string + ServiceName pulumi.StringOutput `pulumi:"serviceName"` + // Starting date and time field of the current IP task that is in charge of changing the service the IP is attached to + TaskStartDate pulumi.StringOutput `pulumi:"taskStartDate"` + // Status field of the current IP task that is in charge of changing the service the IP is attached to + TaskStatus pulumi.StringOutput `pulumi:"taskStatus"` + // Possible values for ip type + Type pulumi.StringOutput `pulumi:"type"` +} + +// NewMove registers a new resource with the given unique name, arguments, and options. +func NewMove(ctx *pulumi.Context, + name string, args *MoveArgs, opts ...pulumi.ResourceOption) (*Move, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Ip == nil { + return nil, errors.New("invalid value for required argument 'Ip'") + } + if args.RoutedTo == nil { + return nil, errors.New("invalid value for required argument 'RoutedTo'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource Move + err := ctx.RegisterResource("ovh:Ip/move:Move", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetMove gets an existing Move 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 GetMove(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *MoveState, opts ...pulumi.ResourceOption) (*Move, error) { + var resource Move + err := ctx.ReadResource("ovh:Ip/move:Move", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Move resources. +type moveState struct { + // Whether IP service can be terminated + CanBeTerminated *bool `pulumi:"canBeTerminated"` + // Country + Country *string `pulumi:"country"` + // Description attached to the IP + Description *string `pulumi:"description"` + // IP block that we want to attach to a different service + Ip *string `pulumi:"ip"` + // IP block organisation Id + OrganisationId *string `pulumi:"organisationId"` + // Service to route the IP to. If null, the IP will be [parked]() + // instead of [moved]() + RoutedTo *MoveRoutedTo `pulumi:"routedTo"` + // Name of the service to route the IP to. IP will be parked if this value is an empty string + ServiceName *string `pulumi:"serviceName"` + // Starting date and time field of the current IP task that is in charge of changing the service the IP is attached to + TaskStartDate *string `pulumi:"taskStartDate"` + // Status field of the current IP task that is in charge of changing the service the IP is attached to + TaskStatus *string `pulumi:"taskStatus"` + // Possible values for ip type + Type *string `pulumi:"type"` +} + +type MoveState struct { + // Whether IP service can be terminated + CanBeTerminated pulumi.BoolPtrInput + // Country + Country pulumi.StringPtrInput + // Description attached to the IP + Description pulumi.StringPtrInput + // IP block that we want to attach to a different service + Ip pulumi.StringPtrInput + // IP block organisation Id + OrganisationId pulumi.StringPtrInput + // Service to route the IP to. If null, the IP will be [parked]() + // instead of [moved]() + RoutedTo MoveRoutedToPtrInput + // Name of the service to route the IP to. IP will be parked if this value is an empty string + ServiceName pulumi.StringPtrInput + // Starting date and time field of the current IP task that is in charge of changing the service the IP is attached to + TaskStartDate pulumi.StringPtrInput + // Status field of the current IP task that is in charge of changing the service the IP is attached to + TaskStatus pulumi.StringPtrInput + // Possible values for ip type + Type pulumi.StringPtrInput +} + +func (MoveState) ElementType() reflect.Type { + return reflect.TypeOf((*moveState)(nil)).Elem() +} + +type moveArgs struct { + // Description attached to the IP + Description *string `pulumi:"description"` + // IP block that we want to attach to a different service + Ip string `pulumi:"ip"` + // Service to route the IP to. If null, the IP will be [parked]() + // instead of [moved]() + RoutedTo MoveRoutedTo `pulumi:"routedTo"` +} + +// The set of arguments for constructing a Move resource. +type MoveArgs struct { + // Description attached to the IP + Description pulumi.StringPtrInput + // IP block that we want to attach to a different service + Ip pulumi.StringInput + // Service to route the IP to. If null, the IP will be [parked]() + // instead of [moved]() + RoutedTo MoveRoutedToInput +} + +func (MoveArgs) ElementType() reflect.Type { + return reflect.TypeOf((*moveArgs)(nil)).Elem() +} + +type MoveInput interface { + pulumi.Input + + ToMoveOutput() MoveOutput + ToMoveOutputWithContext(ctx context.Context) MoveOutput +} + +func (*Move) ElementType() reflect.Type { + return reflect.TypeOf((**Move)(nil)).Elem() +} + +func (i *Move) ToMoveOutput() MoveOutput { + return i.ToMoveOutputWithContext(context.Background()) +} + +func (i *Move) ToMoveOutputWithContext(ctx context.Context) MoveOutput { + return pulumi.ToOutputWithContext(ctx, i).(MoveOutput) +} + +// MoveArrayInput is an input type that accepts MoveArray and MoveArrayOutput values. +// You can construct a concrete instance of `MoveArrayInput` via: +// +// MoveArray{ MoveArgs{...} } +type MoveArrayInput interface { + pulumi.Input + + ToMoveArrayOutput() MoveArrayOutput + ToMoveArrayOutputWithContext(context.Context) MoveArrayOutput +} + +type MoveArray []MoveInput + +func (MoveArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Move)(nil)).Elem() +} + +func (i MoveArray) ToMoveArrayOutput() MoveArrayOutput { + return i.ToMoveArrayOutputWithContext(context.Background()) +} + +func (i MoveArray) ToMoveArrayOutputWithContext(ctx context.Context) MoveArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MoveArrayOutput) +} + +// MoveMapInput is an input type that accepts MoveMap and MoveMapOutput values. +// You can construct a concrete instance of `MoveMapInput` via: +// +// MoveMap{ "key": MoveArgs{...} } +type MoveMapInput interface { + pulumi.Input + + ToMoveMapOutput() MoveMapOutput + ToMoveMapOutputWithContext(context.Context) MoveMapOutput +} + +type MoveMap map[string]MoveInput + +func (MoveMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Move)(nil)).Elem() +} + +func (i MoveMap) ToMoveMapOutput() MoveMapOutput { + return i.ToMoveMapOutputWithContext(context.Background()) +} + +func (i MoveMap) ToMoveMapOutputWithContext(ctx context.Context) MoveMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(MoveMapOutput) +} + +type MoveOutput struct{ *pulumi.OutputState } + +func (MoveOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Move)(nil)).Elem() +} + +func (o MoveOutput) ToMoveOutput() MoveOutput { + return o +} + +func (o MoveOutput) ToMoveOutputWithContext(ctx context.Context) MoveOutput { + return o +} + +// Whether IP service can be terminated +func (o MoveOutput) CanBeTerminated() pulumi.BoolOutput { + return o.ApplyT(func(v *Move) pulumi.BoolOutput { return v.CanBeTerminated }).(pulumi.BoolOutput) +} + +// Country +func (o MoveOutput) Country() pulumi.StringOutput { + return o.ApplyT(func(v *Move) pulumi.StringOutput { return v.Country }).(pulumi.StringOutput) +} + +// Description attached to the IP +func (o MoveOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v *Move) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput) +} + +// IP block that we want to attach to a different service +func (o MoveOutput) Ip() pulumi.StringOutput { + return o.ApplyT(func(v *Move) pulumi.StringOutput { return v.Ip }).(pulumi.StringOutput) +} + +// IP block organisation Id +func (o MoveOutput) OrganisationId() pulumi.StringOutput { + return o.ApplyT(func(v *Move) pulumi.StringOutput { return v.OrganisationId }).(pulumi.StringOutput) +} + +// Service to route the IP to. If null, the IP will be [parked]() +// instead of [moved]() +func (o MoveOutput) RoutedTo() MoveRoutedToOutput { + return o.ApplyT(func(v *Move) MoveRoutedToOutput { return v.RoutedTo }).(MoveRoutedToOutput) +} + +// Name of the service to route the IP to. IP will be parked if this value is an empty string +func (o MoveOutput) ServiceName() pulumi.StringOutput { + return o.ApplyT(func(v *Move) pulumi.StringOutput { return v.ServiceName }).(pulumi.StringOutput) +} + +// Starting date and time field of the current IP task that is in charge of changing the service the IP is attached to +func (o MoveOutput) TaskStartDate() pulumi.StringOutput { + return o.ApplyT(func(v *Move) pulumi.StringOutput { return v.TaskStartDate }).(pulumi.StringOutput) +} + +// Status field of the current IP task that is in charge of changing the service the IP is attached to +func (o MoveOutput) TaskStatus() pulumi.StringOutput { + return o.ApplyT(func(v *Move) pulumi.StringOutput { return v.TaskStatus }).(pulumi.StringOutput) +} + +// Possible values for ip type +func (o MoveOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v *Move) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) +} + +type MoveArrayOutput struct{ *pulumi.OutputState } + +func (MoveArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Move)(nil)).Elem() +} + +func (o MoveArrayOutput) ToMoveArrayOutput() MoveArrayOutput { + return o +} + +func (o MoveArrayOutput) ToMoveArrayOutputWithContext(ctx context.Context) MoveArrayOutput { + return o +} + +func (o MoveArrayOutput) Index(i pulumi.IntInput) MoveOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Move { + return vs[0].([]*Move)[vs[1].(int)] + }).(MoveOutput) +} + +type MoveMapOutput struct{ *pulumi.OutputState } + +func (MoveMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Move)(nil)).Elem() +} + +func (o MoveMapOutput) ToMoveMapOutput() MoveMapOutput { + return o +} + +func (o MoveMapOutput) ToMoveMapOutputWithContext(ctx context.Context) MoveMapOutput { + return o +} + +func (o MoveMapOutput) MapIndex(k pulumi.StringInput) MoveOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Move { + return vs[0].(map[string]*Move)[vs[1].(string)] + }).(MoveOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*MoveInput)(nil)).Elem(), &Move{}) + pulumi.RegisterInputType(reflect.TypeOf((*MoveArrayInput)(nil)).Elem(), MoveArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MoveMapInput)(nil)).Elem(), MoveMap{}) + pulumi.RegisterOutputType(MoveOutput{}) + pulumi.RegisterOutputType(MoveArrayOutput{}) + pulumi.RegisterOutputType(MoveMapOutput{}) +} diff --git a/sdk/go/ovh/ip/pulumiTypes.go b/sdk/go/ovh/ip/pulumiTypes.go index cc97c517..f0e3d151 100644 --- a/sdk/go/ovh/ip/pulumiTypes.go +++ b/sdk/go/ovh/ip/pulumiTypes.go @@ -916,6 +916,143 @@ func (o IpServiceRoutedToArrayOutput) Index(i pulumi.IntInput) IpServiceRoutedTo }).(IpServiceRoutedToOutput) } +type MoveRoutedTo struct { + // Name of the service to route the IP to. IP will be parked if this value is an empty string + ServiceName string `pulumi:"serviceName"` +} + +// MoveRoutedToInput is an input type that accepts MoveRoutedToArgs and MoveRoutedToOutput values. +// You can construct a concrete instance of `MoveRoutedToInput` via: +// +// MoveRoutedToArgs{...} +type MoveRoutedToInput interface { + pulumi.Input + + ToMoveRoutedToOutput() MoveRoutedToOutput + ToMoveRoutedToOutputWithContext(context.Context) MoveRoutedToOutput +} + +type MoveRoutedToArgs struct { + // Name of the service to route the IP to. IP will be parked if this value is an empty string + ServiceName pulumi.StringInput `pulumi:"serviceName"` +} + +func (MoveRoutedToArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MoveRoutedTo)(nil)).Elem() +} + +func (i MoveRoutedToArgs) ToMoveRoutedToOutput() MoveRoutedToOutput { + return i.ToMoveRoutedToOutputWithContext(context.Background()) +} + +func (i MoveRoutedToArgs) ToMoveRoutedToOutputWithContext(ctx context.Context) MoveRoutedToOutput { + return pulumi.ToOutputWithContext(ctx, i).(MoveRoutedToOutput) +} + +func (i MoveRoutedToArgs) ToMoveRoutedToPtrOutput() MoveRoutedToPtrOutput { + return i.ToMoveRoutedToPtrOutputWithContext(context.Background()) +} + +func (i MoveRoutedToArgs) ToMoveRoutedToPtrOutputWithContext(ctx context.Context) MoveRoutedToPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MoveRoutedToOutput).ToMoveRoutedToPtrOutputWithContext(ctx) +} + +// MoveRoutedToPtrInput is an input type that accepts MoveRoutedToArgs, MoveRoutedToPtr and MoveRoutedToPtrOutput values. +// You can construct a concrete instance of `MoveRoutedToPtrInput` via: +// +// MoveRoutedToArgs{...} +// +// or: +// +// nil +type MoveRoutedToPtrInput interface { + pulumi.Input + + ToMoveRoutedToPtrOutput() MoveRoutedToPtrOutput + ToMoveRoutedToPtrOutputWithContext(context.Context) MoveRoutedToPtrOutput +} + +type moveRoutedToPtrType MoveRoutedToArgs + +func MoveRoutedToPtr(v *MoveRoutedToArgs) MoveRoutedToPtrInput { + return (*moveRoutedToPtrType)(v) +} + +func (*moveRoutedToPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MoveRoutedTo)(nil)).Elem() +} + +func (i *moveRoutedToPtrType) ToMoveRoutedToPtrOutput() MoveRoutedToPtrOutput { + return i.ToMoveRoutedToPtrOutputWithContext(context.Background()) +} + +func (i *moveRoutedToPtrType) ToMoveRoutedToPtrOutputWithContext(ctx context.Context) MoveRoutedToPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MoveRoutedToPtrOutput) +} + +type MoveRoutedToOutput struct{ *pulumi.OutputState } + +func (MoveRoutedToOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MoveRoutedTo)(nil)).Elem() +} + +func (o MoveRoutedToOutput) ToMoveRoutedToOutput() MoveRoutedToOutput { + return o +} + +func (o MoveRoutedToOutput) ToMoveRoutedToOutputWithContext(ctx context.Context) MoveRoutedToOutput { + return o +} + +func (o MoveRoutedToOutput) ToMoveRoutedToPtrOutput() MoveRoutedToPtrOutput { + return o.ToMoveRoutedToPtrOutputWithContext(context.Background()) +} + +func (o MoveRoutedToOutput) ToMoveRoutedToPtrOutputWithContext(ctx context.Context) MoveRoutedToPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MoveRoutedTo) *MoveRoutedTo { + return &v + }).(MoveRoutedToPtrOutput) +} + +// Name of the service to route the IP to. IP will be parked if this value is an empty string +func (o MoveRoutedToOutput) ServiceName() pulumi.StringOutput { + return o.ApplyT(func(v MoveRoutedTo) string { return v.ServiceName }).(pulumi.StringOutput) +} + +type MoveRoutedToPtrOutput struct{ *pulumi.OutputState } + +func (MoveRoutedToPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MoveRoutedTo)(nil)).Elem() +} + +func (o MoveRoutedToPtrOutput) ToMoveRoutedToPtrOutput() MoveRoutedToPtrOutput { + return o +} + +func (o MoveRoutedToPtrOutput) ToMoveRoutedToPtrOutputWithContext(ctx context.Context) MoveRoutedToPtrOutput { + return o +} + +func (o MoveRoutedToPtrOutput) Elem() MoveRoutedToOutput { + return o.ApplyT(func(v *MoveRoutedTo) MoveRoutedTo { + if v != nil { + return *v + } + var ret MoveRoutedTo + return ret + }).(MoveRoutedToOutput) +} + +// Name of the service to route the IP to. IP will be parked if this value is an empty string +func (o MoveRoutedToPtrOutput) ServiceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MoveRoutedTo) *string { + if v == nil { + return nil + } + return &v.ServiceName + }).(pulumi.StringPtrOutput) +} + type GetServiceRoutedTo struct { // The service name ServiceName string `pulumi:"serviceName"` @@ -1028,6 +1165,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*IpServicePlanOptionConfigurationArrayInput)(nil)).Elem(), IpServicePlanOptionConfigurationArray{}) pulumi.RegisterInputType(reflect.TypeOf((*IpServiceRoutedToInput)(nil)).Elem(), IpServiceRoutedToArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*IpServiceRoutedToArrayInput)(nil)).Elem(), IpServiceRoutedToArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MoveRoutedToInput)(nil)).Elem(), MoveRoutedToArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MoveRoutedToPtrInput)(nil)).Elem(), MoveRoutedToArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetServiceRoutedToInput)(nil)).Elem(), GetServiceRoutedToArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetServiceRoutedToArrayInput)(nil)).Elem(), GetServiceRoutedToArray{}) pulumi.RegisterOutputType(IpServiceOrderOutput{}) @@ -1044,6 +1183,8 @@ func init() { pulumi.RegisterOutputType(IpServicePlanOptionConfigurationArrayOutput{}) pulumi.RegisterOutputType(IpServiceRoutedToOutput{}) pulumi.RegisterOutputType(IpServiceRoutedToArrayOutput{}) + pulumi.RegisterOutputType(MoveRoutedToOutput{}) + pulumi.RegisterOutputType(MoveRoutedToPtrOutput{}) pulumi.RegisterOutputType(GetServiceRoutedToOutput{}) pulumi.RegisterOutputType(GetServiceRoutedToArrayOutput{}) } diff --git a/sdk/go/ovh/iploadbalancing/httpFarm.go b/sdk/go/ovh/iploadbalancing/httpFarm.go index 7be1df28..d0c1f6dc 100644 --- a/sdk/go/ovh/iploadbalancing/httpFarm.go +++ b/sdk/go/ovh/iploadbalancing/httpFarm.go @@ -38,7 +38,7 @@ import ( // } // _, err = IpLoadBalancing.NewHttpFarm(ctx, "farmname", &IpLoadBalancing.HttpFarmArgs{ // DisplayName: pulumi.String("ingress-8080-gra"), -// ServiceName: *pulumi.String(lb.ServiceName), +// ServiceName: pulumi.String(lb.ServiceName), // Zone: pulumi.String("GRA"), // }) // if err != nil { diff --git a/sdk/go/ovh/iploadbalancing/httpFarmServer.go b/sdk/go/ovh/iploadbalancing/httpFarmServer.go index 52737226..7354158b 100644 --- a/sdk/go/ovh/iploadbalancing/httpFarmServer.go +++ b/sdk/go/ovh/iploadbalancing/httpFarmServer.go @@ -38,7 +38,7 @@ import ( // } // farmname, err := IpLoadBalancing.NewHttpFarm(ctx, "farmname", &IpLoadBalancing.HttpFarmArgs{ // Port: pulumi.Int(8080), -// ServiceName: *pulumi.String(lb.ServiceName), +// ServiceName: pulumi.String(lb.ServiceName), // Zone: pulumi.String("all"), // }) // if err != nil { @@ -52,7 +52,7 @@ import ( // Port: pulumi.Int(80), // Probe: pulumi.Bool(true), // ProxyProtocolVersion: pulumi.String("v2"), -// ServiceName: *pulumi.String(lb.ServiceName), +// ServiceName: pulumi.String(lb.ServiceName), // Ssl: pulumi.Bool(false), // Status: pulumi.String("active"), // Weight: pulumi.Int(2), diff --git a/sdk/go/ovh/iploadbalancing/httpFrontend.go b/sdk/go/ovh/iploadbalancing/httpFrontend.go index 33d6b637..b6b0738b 100644 --- a/sdk/go/ovh/iploadbalancing/httpFrontend.go +++ b/sdk/go/ovh/iploadbalancing/httpFrontend.go @@ -39,7 +39,7 @@ import ( // farm80, err := IpLoadBalancing.NewHttpFarm(ctx, "farm80", &IpLoadBalancing.HttpFarmArgs{ // DisplayName: pulumi.String("ingress-8080-gra"), // Port: pulumi.Int(80), -// ServiceName: *pulumi.String(lb.ServiceName), +// ServiceName: pulumi.String(lb.ServiceName), // Zone: pulumi.String("all"), // }) // if err != nil { @@ -49,7 +49,7 @@ import ( // DefaultFarmId: farm80.ID(), // DisplayName: pulumi.String("ingress-8080-gra"), // Port: pulumi.String("80,443"), -// ServiceName: *pulumi.String(lb.ServiceName), +// ServiceName: pulumi.String(lb.ServiceName), // Zone: pulumi.String("all"), // }) // if err != nil { @@ -87,7 +87,7 @@ import ( // farm80, err := IpLoadBalancing.NewHttpFarm(ctx, "farm80", &IpLoadBalancing.HttpFarmArgs{ // DisplayName: pulumi.String("ingress-8080-gra"), // Port: pulumi.Int(80), -// ServiceName: *pulumi.String(lb.ServiceName), +// ServiceName: pulumi.String(lb.ServiceName), // Zone: pulumi.String("all"), // }) // if err != nil { @@ -101,7 +101,7 @@ import ( // pulumi.String("X-Port-Header %%cp"), // }, // Port: pulumi.String("80,443"), -// ServiceName: *pulumi.String(lb.ServiceName), +// ServiceName: pulumi.String(lb.ServiceName), // Zone: pulumi.String("all"), // }) // if err != nil { diff --git a/sdk/go/ovh/iploadbalancing/loadBalancer.go b/sdk/go/ovh/iploadbalancing/loadBalancer.go index fbea9cb5..f9b9a41b 100644 --- a/sdk/go/ovh/iploadbalancing/loadBalancer.go +++ b/sdk/go/ovh/iploadbalancing/loadBalancer.go @@ -59,18 +59,18 @@ import ( // return err // } // _, err = IpLoadBalancing.NewLoadBalancer(ctx, "iplb-lb1", &IpLoadBalancing.LoadBalancerArgs{ -// OvhSubsidiary: *pulumi.String(mycart.OvhSubsidiary), +// OvhSubsidiary: pulumi.String(mycart.OvhSubsidiary), // DisplayName: pulumi.String("my ip loadbalancing"), // Plan: &iploadbalancing.LoadBalancerPlanArgs{ -// Duration: *pulumi.String(iplb.SelectedPrices[0].Duration), -// PlanCode: *pulumi.String(iplb.PlanCode), -// PricingMode: *pulumi.String(iplb.SelectedPrices[0].PricingMode), +// Duration: pulumi.String(iplb.SelectedPrices[0].Duration), +// PlanCode: pulumi.String(iplb.PlanCode), +// PricingMode: pulumi.String(iplb.SelectedPrices[0].PricingMode), // }, // PlanOptions: iploadbalancing.LoadBalancerPlanOptionArray{ // &iploadbalancing.LoadBalancerPlanOptionArgs{ -// Duration: *pulumi.String(bhs.SelectedPrices[0].Duration), -// PlanCode: *pulumi.String(bhs.PlanCode), -// PricingMode: *pulumi.String(bhs.SelectedPrices[0].PricingMode), +// Duration: pulumi.String(bhs.SelectedPrices[0].Duration), +// PlanCode: pulumi.String(bhs.PlanCode), +// PricingMode: pulumi.String(bhs.SelectedPrices[0].PricingMode), // }, // }, // }) diff --git a/sdk/go/ovh/iploadbalancing/refresh.go b/sdk/go/ovh/iploadbalancing/refresh.go index 915470b8..7d9f05d0 100644 --- a/sdk/go/ovh/iploadbalancing/refresh.go +++ b/sdk/go/ovh/iploadbalancing/refresh.go @@ -37,7 +37,7 @@ import ( // } // farmname, err := IpLoadBalancing.NewTcpFarm(ctx, "farmname", &IpLoadBalancing.TcpFarmArgs{ // Port: pulumi.Int(8080), -// ServiceName: *pulumi.String(lb.ServiceName), +// ServiceName: pulumi.String(lb.ServiceName), // Zone: pulumi.String("all"), // }) // if err != nil { @@ -51,7 +51,7 @@ import ( // Port: pulumi.Int(80), // Probe: pulumi.Bool(true), // ProxyProtocolVersion: pulumi.String("v2"), -// ServiceName: *pulumi.String(lb.ServiceName), +// ServiceName: pulumi.String(lb.ServiceName), // Ssl: pulumi.Bool(false), // Status: pulumi.String("active"), // Weight: pulumi.Int(2), @@ -63,7 +63,7 @@ import ( // Keepers: pulumi.StringArray{ // %!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ #-resources-ovh:IpLoadBalancing-refresh:Refresh.pp:23,16-35), // }, -// ServiceName: *pulumi.String(lb.ServiceName), +// ServiceName: pulumi.String(lb.ServiceName), // }) // if err != nil { // return err diff --git a/sdk/go/ovh/iploadbalancing/tcpFarm.go b/sdk/go/ovh/iploadbalancing/tcpFarm.go index c305149d..b66a45ff 100644 --- a/sdk/go/ovh/iploadbalancing/tcpFarm.go +++ b/sdk/go/ovh/iploadbalancing/tcpFarm.go @@ -38,7 +38,7 @@ import ( // } // _, err = IpLoadBalancing.NewTcpFarm(ctx, "farmname", &IpLoadBalancing.TcpFarmArgs{ // DisplayName: pulumi.String("ingress-8080-gra"), -// ServiceName: *pulumi.String(lb.ServiceName), +// ServiceName: pulumi.String(lb.ServiceName), // Zone: pulumi.String("GRA"), // }) // if err != nil { diff --git a/sdk/go/ovh/iploadbalancing/tcpFarmServer.go b/sdk/go/ovh/iploadbalancing/tcpFarmServer.go index 8df46f66..66d4a11c 100644 --- a/sdk/go/ovh/iploadbalancing/tcpFarmServer.go +++ b/sdk/go/ovh/iploadbalancing/tcpFarmServer.go @@ -38,7 +38,7 @@ import ( // } // farmname, err := IpLoadBalancing.NewTcpFarm(ctx, "farmname", &IpLoadBalancing.TcpFarmArgs{ // Port: pulumi.Int(8080), -// ServiceName: *pulumi.String(lb.ServiceName), +// ServiceName: pulumi.String(lb.ServiceName), // Zone: pulumi.String("all"), // }) // if err != nil { @@ -52,7 +52,7 @@ import ( // Port: pulumi.Int(80), // Probe: pulumi.Bool(true), // ProxyProtocolVersion: pulumi.String("v2"), -// ServiceName: *pulumi.String(lb.ServiceName), +// ServiceName: pulumi.String(lb.ServiceName), // Ssl: pulumi.Bool(false), // Status: pulumi.String("active"), // Weight: pulumi.Int(2), diff --git a/sdk/go/ovh/iploadbalancing/tcpFrontend.go b/sdk/go/ovh/iploadbalancing/tcpFrontend.go index f4c39e08..8530c30b 100644 --- a/sdk/go/ovh/iploadbalancing/tcpFrontend.go +++ b/sdk/go/ovh/iploadbalancing/tcpFrontend.go @@ -39,7 +39,7 @@ import ( // farm80, err := IpLoadBalancing.NewTcpFarm(ctx, "farm80", &IpLoadBalancing.TcpFarmArgs{ // DisplayName: pulumi.String("ingress-8080-gra"), // Port: pulumi.Int(80), -// ServiceName: *pulumi.String(lb.ServiceName), +// ServiceName: pulumi.String(lb.ServiceName), // Zone: pulumi.String("all"), // }) // if err != nil { @@ -49,7 +49,7 @@ import ( // DefaultFarmId: farm80.ID(), // DisplayName: pulumi.String("ingress-8080-gra"), // Port: pulumi.String("80,443"), -// ServiceName: *pulumi.String(lb.ServiceName), +// ServiceName: pulumi.String(lb.ServiceName), // Zone: pulumi.String("all"), // }) // if err != nil { diff --git a/sdk/go/ovh/vrack/dedicatedServerInterface.go b/sdk/go/ovh/vrack/dedicatedServerInterface.go index d0f77dfd..4d297bdc 100644 --- a/sdk/go/ovh/vrack/dedicatedServerInterface.go +++ b/sdk/go/ovh/vrack/dedicatedServerInterface.go @@ -38,7 +38,7 @@ import ( // } // _, err = Vrack.NewDedicatedServerInterface(ctx, "vdsi", &Vrack.DedicatedServerInterfaceArgs{ // ServiceName: pulumi.String("pn-xxxxxxx"), -// InterfaceId: *pulumi.String(server.EnabledVrackVnis[0]), +// InterfaceId: pulumi.String(server.EnabledVrackVnis[0]), // }) // if err != nil { // return err diff --git a/sdk/go/ovh/vrack/ipAddress.go b/sdk/go/ovh/vrack/ipAddress.go index 0683d7a2..77fe9fee 100644 --- a/sdk/go/ovh/vrack/ipAddress.go +++ b/sdk/go/ovh/vrack/ipAddress.go @@ -52,12 +52,12 @@ import ( // return err // } // vrackVrack, err := Vrack.NewVrack(ctx, "vrackVrack", &Vrack.VrackArgs{ -// Description: *pulumi.String(mycart.Description), -// OvhSubsidiary: *pulumi.String(mycart.OvhSubsidiary), +// Description: pulumi.String(mycart.Description), +// OvhSubsidiary: pulumi.String(mycart.OvhSubsidiary), // Plan: &vrack.VrackPlanArgs{ -// Duration: *pulumi.String(vrackCartProductPlan.SelectedPrices[0].Duration), -// PlanCode: *pulumi.String(vrackCartProductPlan.PlanCode), -// PricingMode: *pulumi.String(vrackCartProductPlan.SelectedPrices[0].PricingMode), +// Duration: pulumi.String(vrackCartProductPlan.SelectedPrices[0].Duration), +// PlanCode: pulumi.String(vrackCartProductPlan.PlanCode), +// PricingMode: pulumi.String(vrackCartProductPlan.SelectedPrices[0].PricingMode), // }, // }) // if err != nil { @@ -73,12 +73,12 @@ import ( // return err // } // ipblockIpService, err := Ip.NewIpService(ctx, "ipblockIpService", &Ip.IpServiceArgs{ -// OvhSubsidiary: *pulumi.String(mycart.OvhSubsidiary), -// Description: *pulumi.String(mycart.Description), +// OvhSubsidiary: pulumi.String(mycart.OvhSubsidiary), +// Description: pulumi.String(mycart.Description), // Plan: &ip.IpServicePlanArgs{ -// Duration: *pulumi.String(ipblockCartProductPlan.SelectedPrices[0].Duration), -// PlanCode: *pulumi.String(ipblockCartProductPlan.PlanCode), -// PricingMode: *pulumi.String(ipblockCartProductPlan.SelectedPrices[0].PricingMode), +// Duration: pulumi.String(ipblockCartProductPlan.SelectedPrices[0].Duration), +// PlanCode: pulumi.String(ipblockCartProductPlan.PlanCode), +// PricingMode: pulumi.String(ipblockCartProductPlan.SelectedPrices[0].PricingMode), // Configurations: ip.IpServicePlanConfigurationArray{ // &ip.IpServicePlanConfigurationArgs{ // Label: pulumi.String("country"), diff --git a/sdk/go/ovh/vrack/vrack.go b/sdk/go/ovh/vrack/vrack.go index d9cd7e7c..db4fa1a9 100644 --- a/sdk/go/ovh/vrack/vrack.go +++ b/sdk/go/ovh/vrack/vrack.go @@ -49,12 +49,12 @@ import ( // return err // } // _, err = Vrack.NewVrack(ctx, "vrackVrack", &Vrack.VrackArgs{ -// OvhSubsidiary: *pulumi.String(mycart.OvhSubsidiary), +// OvhSubsidiary: pulumi.String(mycart.OvhSubsidiary), // Description: pulumi.String("my vrack"), // Plan: &vrack.VrackPlanArgs{ -// Duration: *pulumi.String(vrackCartProductPlan.SelectedPrices[0].Duration), -// PlanCode: *pulumi.String(vrackCartProductPlan.PlanCode), -// PricingMode: *pulumi.String(vrackCartProductPlan.SelectedPrices[0].PricingMode), +// Duration: pulumi.String(vrackCartProductPlan.SelectedPrices[0].Duration), +// PlanCode: pulumi.String(vrackCartProductPlan.PlanCode), +// PricingMode: pulumi.String(vrackCartProductPlan.SelectedPrices[0].PricingMode), // }, // }) // if err != nil { diff --git a/sdk/nodejs/cloudproject/gateway.ts b/sdk/nodejs/cloudproject/gateway.ts new file mode 100644 index 00000000..9931bf65 --- /dev/null +++ b/sdk/nodejs/cloudproject/gateway.ts @@ -0,0 +1,179 @@ +// *** 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"; + +/** + * Create a new Gateway for existing subnet in the specified public cloud project. + */ +export class Gateway extends pulumi.CustomResource { + /** + * Get an existing Gateway 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?: GatewayState, opts?: pulumi.CustomResourceOptions): Gateway { + return new Gateway(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'ovh:CloudProject/gateway:Gateway'; + + /** + * Returns true if the given object is an instance of Gateway. 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 Gateway { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Gateway.__pulumiType; + } + + /** + * The model of the gateway. + */ + public readonly model!: pulumi.Output; + /** + * The name of the gateway. + */ + public readonly name!: pulumi.Output; + /** + * The ID of the private network. + */ + public readonly networkId!: pulumi.Output; + /** + * The region of the gateway. + */ + public readonly region!: pulumi.Output; + /** + * The ID of the private network. + */ + public readonly serviceName!: pulumi.Output; + /** + * The status of the gateway. + */ + public /*out*/ readonly status!: pulumi.Output; + /** + * The ID of the subnet. + */ + public readonly subnetId!: pulumi.Output; + + /** + * Create a Gateway 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: GatewayArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: GatewayArgs | GatewayState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as GatewayState | undefined; + resourceInputs["model"] = state ? state.model : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["networkId"] = state ? state.networkId : undefined; + resourceInputs["region"] = state ? state.region : undefined; + resourceInputs["serviceName"] = state ? state.serviceName : undefined; + resourceInputs["status"] = state ? state.status : undefined; + resourceInputs["subnetId"] = state ? state.subnetId : undefined; + } else { + const args = argsOrState as GatewayArgs | undefined; + if ((!args || args.model === undefined) && !opts.urn) { + throw new Error("Missing required property 'model'"); + } + if ((!args || args.networkId === undefined) && !opts.urn) { + throw new Error("Missing required property 'networkId'"); + } + if ((!args || args.region === undefined) && !opts.urn) { + throw new Error("Missing required property 'region'"); + } + if ((!args || args.serviceName === undefined) && !opts.urn) { + throw new Error("Missing required property 'serviceName'"); + } + if ((!args || args.subnetId === undefined) && !opts.urn) { + throw new Error("Missing required property 'subnetId'"); + } + resourceInputs["model"] = args ? args.model : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["networkId"] = args ? args.networkId : undefined; + resourceInputs["region"] = args ? args.region : undefined; + resourceInputs["serviceName"] = args ? args.serviceName : undefined; + resourceInputs["subnetId"] = args ? args.subnetId : undefined; + resourceInputs["status"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Gateway.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering Gateway resources. + */ +export interface GatewayState { + /** + * The model of the gateway. + */ + model?: pulumi.Input; + /** + * The name of the gateway. + */ + name?: pulumi.Input; + /** + * The ID of the private network. + */ + networkId?: pulumi.Input; + /** + * The region of the gateway. + */ + region?: pulumi.Input; + /** + * The ID of the private network. + */ + serviceName?: pulumi.Input; + /** + * The status of the gateway. + */ + status?: pulumi.Input; + /** + * The ID of the subnet. + */ + subnetId?: pulumi.Input; +} + +/** + * The set of arguments for constructing a Gateway resource. + */ +export interface GatewayArgs { + /** + * The model of the gateway. + */ + model: pulumi.Input; + /** + * The name of the gateway. + */ + name?: pulumi.Input; + /** + * The ID of the private network. + */ + networkId: pulumi.Input; + /** + * The region of the gateway. + */ + region: pulumi.Input; + /** + * The ID of the private network. + */ + serviceName: pulumi.Input; + /** + * The ID of the subnet. + */ + subnetId: pulumi.Input; +} diff --git a/sdk/nodejs/cloudproject/getKube.ts b/sdk/nodejs/cloudproject/getKube.ts index 892c19b7..19a77b50 100644 --- a/sdk/nodejs/cloudproject/getKube.ts +++ b/sdk/nodejs/cloudproject/getKube.ts @@ -56,7 +56,7 @@ export interface GetKubeArgs { /** * **Deprecated** (Optional) Use `customizationApiserver` and `customizationKubeProxy` instead. Kubernetes cluster customization * - * @deprecated Use customization_apiserver instead + * @deprecated Use customizationApiserver instead */ customizations?: inputs.CloudProject.GetKubeCustomization[]; /** @@ -108,7 +108,7 @@ export interface GetKubeResult { /** * **Deprecated** (Optional) Use `customizationApiserver` and `customizationKubeProxy` instead. Kubernetes cluster customization * - * @deprecated Use customization_apiserver instead + * @deprecated Use customizationApiserver instead */ readonly customizations: outputs.CloudProject.GetKubeCustomization[]; /** @@ -205,7 +205,7 @@ export interface GetKubeOutputArgs { /** * **Deprecated** (Optional) Use `customizationApiserver` and `customizationKubeProxy` instead. Kubernetes cluster customization * - * @deprecated Use customization_apiserver instead + * @deprecated Use customizationApiserver instead */ customizations?: pulumi.Input[]>; /** diff --git a/sdk/nodejs/cloudproject/index.ts b/sdk/nodejs/cloudproject/index.ts index 47c47297..8bb602ad 100644 --- a/sdk/nodejs/cloudproject/index.ts +++ b/sdk/nodejs/cloudproject/index.ts @@ -45,6 +45,11 @@ export type FailoverIpAttach = import("./failoverIpAttach").FailoverIpAttach; export const FailoverIpAttach: typeof import("./failoverIpAttach").FailoverIpAttach = null as any; utilities.lazyLoad(exports, ["FailoverIpAttach"], () => require("./failoverIpAttach")); +export { GatewayArgs, GatewayState } from "./gateway"; +export type Gateway = import("./gateway").Gateway; +export const Gateway: typeof import("./gateway").Gateway = null as any; +utilities.lazyLoad(exports, ["Gateway"], () => require("./gateway")); + export { GetCapabilitiesContainerFilterArgs, GetCapabilitiesContainerFilterResult, GetCapabilitiesContainerFilterOutputArgs } from "./getCapabilitiesContainerFilter"; export const getCapabilitiesContainerFilter: typeof import("./getCapabilitiesContainerFilter").getCapabilitiesContainerFilter = null as any; export const getCapabilitiesContainerFilterOutput: typeof import("./getCapabilitiesContainerFilter").getCapabilitiesContainerFilterOutput = null as any; @@ -281,6 +286,8 @@ const _module = { return new Database(name, undefined, { urn }) case "ovh:CloudProject/failoverIpAttach:FailoverIpAttach": return new FailoverIpAttach(name, undefined, { urn }) + case "ovh:CloudProject/gateway:Gateway": + return new Gateway(name, undefined, { urn }) case "ovh:CloudProject/kube:Kube": return new Kube(name, undefined, { urn }) case "ovh:CloudProject/kubeIpRestrictions:KubeIpRestrictions": @@ -318,6 +325,7 @@ pulumi.runtime.registerResourceModule("ovh", "CloudProject/containerRegistryOIDC pulumi.runtime.registerResourceModule("ovh", "CloudProject/containerRegistryUser", _module) pulumi.runtime.registerResourceModule("ovh", "CloudProject/database", _module) pulumi.runtime.registerResourceModule("ovh", "CloudProject/failoverIpAttach", _module) +pulumi.runtime.registerResourceModule("ovh", "CloudProject/gateway", _module) pulumi.runtime.registerResourceModule("ovh", "CloudProject/kube", _module) pulumi.runtime.registerResourceModule("ovh", "CloudProject/kubeIpRestrictions", _module) pulumi.runtime.registerResourceModule("ovh", "CloudProject/kubeNodePool", _module) diff --git a/sdk/nodejs/cloudproject/kube.ts b/sdk/nodejs/cloudproject/kube.ts index 21361ed7..45661b53 100644 --- a/sdk/nodejs/cloudproject/kube.ts +++ b/sdk/nodejs/cloudproject/kube.ts @@ -60,7 +60,7 @@ export class Kube extends pulumi.CustomResource { /** * **Deprecated** (Optional) Use `customizationApiserver` and `customizationKubeProxy` instead. Kubernetes cluster customization * - * @deprecated Use customization_apiserver instead + * @deprecated Use customizationApiserver instead */ public readonly customizations!: pulumi.Output; /** @@ -92,7 +92,7 @@ export class Kube extends pulumi.CustomResource { */ public /*out*/ readonly nodesUrl!: pulumi.Output; /** - * The private network configuration + * The private network configuration. If this is set then the 2 parameters below shall be defined. */ public readonly privateNetworkConfiguration!: pulumi.Output; /** @@ -212,7 +212,7 @@ export interface KubeState { /** * **Deprecated** (Optional) Use `customizationApiserver` and `customizationKubeProxy` instead. Kubernetes cluster customization * - * @deprecated Use customization_apiserver instead + * @deprecated Use customizationApiserver instead */ customizations?: pulumi.Input[]>; /** @@ -244,7 +244,7 @@ export interface KubeState { */ nodesUrl?: pulumi.Input; /** - * The private network configuration + * The private network configuration. If this is set then the 2 parameters below shall be defined. */ privateNetworkConfiguration?: pulumi.Input; /** @@ -294,7 +294,7 @@ export interface KubeArgs { /** * **Deprecated** (Optional) Use `customizationApiserver` and `customizationKubeProxy` instead. Kubernetes cluster customization * - * @deprecated Use customization_apiserver instead + * @deprecated Use customizationApiserver instead */ customizations?: pulumi.Input[]>; /** @@ -306,7 +306,7 @@ export interface KubeArgs { */ name?: pulumi.Input; /** - * The private network configuration + * The private network configuration. If this is set then the 2 parameters below shall be defined. */ privateNetworkConfiguration?: pulumi.Input; /** diff --git a/sdk/nodejs/cloudproject/networkPrivate.ts b/sdk/nodejs/cloudproject/networkPrivate.ts index 917249ba..fc830ff6 100644 --- a/sdk/nodejs/cloudproject/networkPrivate.ts +++ b/sdk/nodejs/cloudproject/networkPrivate.ts @@ -85,7 +85,7 @@ export class NetworkPrivate extends pulumi.CustomResource { * * `regions_status/region` - (Deprecated) The id of the region. * * `regions_status/status` - (Deprecated) The status of the network in the region. * - * @deprecated use the regions_attributes field instead + * @deprecated use the regionsAttributes field instead */ public /*out*/ readonly regionsStatuses!: pulumi.Output; /** @@ -172,7 +172,7 @@ export interface NetworkPrivateState { * * `regions_status/region` - (Deprecated) The id of the region. * * `regions_status/status` - (Deprecated) The status of the network in the region. * - * @deprecated use the regions_attributes field instead + * @deprecated use the regionsAttributes field instead */ regionsStatuses?: pulumi.Input[]>; /** diff --git a/sdk/nodejs/dedicated/getServerSpecificationsHardware.ts b/sdk/nodejs/dedicated/getServerSpecificationsHardware.ts new file mode 100644 index 00000000..edae2c57 --- /dev/null +++ b/sdk/nodejs/dedicated/getServerSpecificationsHardware.ts @@ -0,0 +1,141 @@ +// *** 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"; + +/** + * Use this data source to get the hardward information about a dedicated server associated with your OVHcloud Account. + * + * ## Example Usage + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as ovh from "@pulumi/ovh"; + * + * const spec = ovh.Dedicated.getServerSpecificationsHardware({ + * serviceName: "myserver", + * }); + * ``` + * + */ +export function getServerSpecificationsHardware(args: GetServerSpecificationsHardwareArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("ovh:Dedicated/getServerSpecificationsHardware:getServerSpecificationsHardware", { + "serviceName": args.serviceName, + }, opts); +} + +/** + * A collection of arguments for invoking getServerSpecificationsHardware. + */ +export interface GetServerSpecificationsHardwareArgs { + /** + * The internal name of your dedicated server. + */ + serviceName: string; +} + +/** + * A collection of values returned by getServerSpecificationsHardware. + */ +export interface GetServerSpecificationsHardwareResult { + /** + * Server boot mode + */ + readonly bootMode: string; + /** + * Number of cores per processor + */ + readonly coresPerProcessor: number; + /** + * Default hardware raid size for this disk group + */ + readonly defaultHardwareRaidSize: outputs.Dedicated.GetServerSpecificationsHardwareDefaultHardwareRaidSize; + /** + * Default hardware raid type for this disk group + */ + readonly defaultHardwareRaidType: string; + /** + * Expansion card description + */ + readonly description: string; + /** + * Details about the groups of disks in the server + */ + readonly diskGroups: outputs.Dedicated.GetServerSpecificationsHardwareDiskGroup[]; + /** + * Details about the server's expansion cards + */ + readonly expansionCards: outputs.Dedicated.GetServerSpecificationsHardwareExpansionCard[]; + /** + * Server form factor + */ + readonly formFactor: string; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + /** + * RAM capacity + */ + readonly memorySize: outputs.Dedicated.GetServerSpecificationsHardwareMemorySize; + /** + * Server motherboard + */ + readonly motherboard: string; + /** + * Number of processors in this dedicated server + */ + readonly numberOfProcessors: number; + /** + * Processor architecture bit + */ + readonly processorArchitecture: string; + /** + * Processor name + */ + readonly processorName: string; + readonly serviceName: string; + /** + * Number of threads per processor + */ + readonly threadsPerProcessor: number; + /** + * Capacity of the USB keys installed on your server, if any + */ + readonly usbKeys: outputs.Dedicated.GetServerSpecificationsHardwareUsbKey[]; +} +/** + * Use this data source to get the hardward information about a dedicated server associated with your OVHcloud Account. + * + * ## Example Usage + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as ovh from "@pulumi/ovh"; + * + * const spec = ovh.Dedicated.getServerSpecificationsHardware({ + * serviceName: "myserver", + * }); + * ``` + * + */ +export function getServerSpecificationsHardwareOutput(args: GetServerSpecificationsHardwareOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getServerSpecificationsHardware(a, opts)) +} + +/** + * A collection of arguments for invoking getServerSpecificationsHardware. + */ +export interface GetServerSpecificationsHardwareOutputArgs { + /** + * The internal name of your dedicated server. + */ + serviceName: pulumi.Input; +} diff --git a/sdk/nodejs/dedicated/index.ts b/sdk/nodejs/dedicated/index.ts index a37be8a9..824c391d 100644 --- a/sdk/nodejs/dedicated/index.ts +++ b/sdk/nodejs/dedicated/index.ts @@ -25,6 +25,11 @@ export const getServerBoots: typeof import("./getServerBoots").getServerBoots = export const getServerBootsOutput: typeof import("./getServerBoots").getServerBootsOutput = null as any; utilities.lazyLoad(exports, ["getServerBoots","getServerBootsOutput"], () => require("./getServerBoots")); +export { GetServerSpecificationsHardwareArgs, GetServerSpecificationsHardwareResult, GetServerSpecificationsHardwareOutputArgs } from "./getServerSpecificationsHardware"; +export const getServerSpecificationsHardware: typeof import("./getServerSpecificationsHardware").getServerSpecificationsHardware = null as any; +export const getServerSpecificationsHardwareOutput: typeof import("./getServerSpecificationsHardware").getServerSpecificationsHardwareOutput = null as any; +utilities.lazyLoad(exports, ["getServerSpecificationsHardware","getServerSpecificationsHardwareOutput"], () => require("./getServerSpecificationsHardware")); + export { NasHAPartitionArgs, NasHAPartitionState } from "./nasHAPartition"; export type NasHAPartition = import("./nasHAPartition").NasHAPartition; export const NasHAPartition: typeof import("./nasHAPartition").NasHAPartition = null as any; diff --git a/sdk/nodejs/getServer.ts b/sdk/nodejs/getServer.ts index 157b3f40..0e4c5087 100644 --- a/sdk/nodejs/getServer.ts +++ b/sdk/nodejs/getServer.ts @@ -49,21 +49,25 @@ export interface GetServerResult { */ readonly ServerURN: string; /** - * boot id of the server + * Boot id of the server */ readonly bootId: number; /** - * boot script of the server + * Boot script of the server */ readonly bootScript: string; /** - * dedicated server commercial range + * Dedicated server commercial range */ readonly commercialRange: string; /** - * dedicated datacenter localisation (bhs1,bhs2,...) + * Dedicated datacenter localisation (bhs1,bhs2,...) */ readonly datacenter: string; + /** + * Dedicated server display name + */ + readonly displayName: string; /** * List of enabled public VNI uuids */ @@ -81,15 +85,15 @@ export interface GetServerResult { */ readonly id: string; /** - * dedicated server ip (IPv4) + * Dedicated server ip (IPv4) */ readonly ip: string; /** - * dedicated server ip blocks + * Dedicated server ip blocks */ readonly ips: string[]; /** - * link speed of the server + * Link speed of the server */ readonly linkSpeed: number; /** @@ -109,28 +113,28 @@ export interface GetServerResult { */ readonly professionalUse: boolean; /** - * rack id of the server + * Rack id of the server */ readonly rack: string; /** - * rescue mail of the server + * Rescue mail of the server */ readonly rescueMail: string; /** - * dedicated server reverse + * Dedicated server reverse */ readonly reverse: string; /** - * root device of the server + * Root device of the server */ readonly rootDevice: string; /** - * your server id + * Server id */ readonly serverId: number; readonly serviceName: string; /** - * error, hacked, hackedBlocked, ok + * Error, hacked, hackedBlocked, ok */ readonly state: string; /** @@ -138,7 +142,7 @@ export interface GetServerResult { */ readonly supportLevel: string; /** - * the list of Virtualnetworkinterface assiociated with this server + * The list of Virtualnetworkinterface associated with this server */ readonly vnis: outputs.GetServerVni[]; } diff --git a/sdk/nodejs/ip/index.ts b/sdk/nodejs/ip/index.ts index 10fced73..78185b49 100644 --- a/sdk/nodejs/ip/index.ts +++ b/sdk/nodejs/ip/index.ts @@ -15,6 +15,11 @@ export type IpService = import("./ipService").IpService; export const IpService: typeof import("./ipService").IpService = null as any; utilities.lazyLoad(exports, ["IpService"], () => require("./ipService")); +export { MoveArgs, MoveState } from "./move"; +export type Move = import("./move").Move; +export const Move: typeof import("./move").Move = null as any; +utilities.lazyLoad(exports, ["Move"], () => require("./move")); + export { ReverseArgs, ReverseState } from "./reverse"; export type Reverse = import("./reverse").Reverse; export const Reverse: typeof import("./reverse").Reverse = null as any; @@ -27,6 +32,8 @@ const _module = { switch (type) { case "ovh:Ip/ipService:IpService": return new IpService(name, undefined, { urn }) + case "ovh:Ip/move:Move": + return new Move(name, undefined, { urn }) case "ovh:Ip/reverse:Reverse": return new Reverse(name, undefined, { urn }) default: @@ -35,4 +42,5 @@ const _module = { }, }; pulumi.runtime.registerResourceModule("ovh", "Ip/ipService", _module) +pulumi.runtime.registerResourceModule("ovh", "Ip/move", _module) pulumi.runtime.registerResourceModule("ovh", "Ip/reverse", _module) diff --git a/sdk/nodejs/ip/move.ts b/sdk/nodejs/ip/move.ts new file mode 100644 index 00000000..3f632362 --- /dev/null +++ b/sdk/nodejs/ip/move.ts @@ -0,0 +1,225 @@ +// *** 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"; + +/** + * Moves a given IP to a different service, or inversely, parks it if empty service is given + * + * ## Move IP `1.2.3.4` to service loadbalancer-XXXXX + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as ovh from "@ovhcloud/pulumi-ovh"; + * + * const moveIpToLoadBalancerXxxxx = new ovh.ip.Move("moveIpToLoadBalancerXxxxx", { + * ip: "1.2.3.4", + * routedTo: { + * serviceName: "loadbalancer-XXXXX", + * }, + * }); + * ``` + * + * + * ## Park IP/Detach IP `1.2.3.4` from any service + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as ovh from "@ovhcloud/pulumi-ovh"; + * + * const parkIp = new ovh.ip.Move("parkIp", { + * ip: "1.2.3.4", + * routedTo: { + * serviceName: "", + * }, + * }); + * ``` + * + */ +export class Move extends pulumi.CustomResource { + /** + * Get an existing Move 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?: MoveState, opts?: pulumi.CustomResourceOptions): Move { + return new Move(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'ovh:Ip/move:Move'; + + /** + * Returns true if the given object is an instance of Move. 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 Move { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Move.__pulumiType; + } + + /** + * Whether IP service can be terminated + */ + public /*out*/ readonly canBeTerminated!: pulumi.Output; + /** + * Country + */ + public /*out*/ readonly country!: pulumi.Output; + /** + * Description attached to the IP + */ + public readonly description!: pulumi.Output; + /** + * IP block that we want to attach to a different service + */ + public readonly ip!: pulumi.Output; + /** + * IP block organisation Id + */ + public /*out*/ readonly organisationId!: pulumi.Output; + /** + * Service to route the IP to. If null, the IP will be [parked](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/park~POST) + * instead of [moved](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/move~POST) + */ + public readonly routedTo!: pulumi.Output; + /** + * Name of the service to route the IP to. IP will be parked if this value is an empty string + */ + public /*out*/ readonly serviceName!: pulumi.Output; + /** + * Starting date and time field of the current IP task that is in charge of changing the service the IP is attached to + */ + public /*out*/ readonly taskStartDate!: pulumi.Output; + /** + * Status field of the current IP task that is in charge of changing the service the IP is attached to + */ + public /*out*/ readonly taskStatus!: pulumi.Output; + /** + * Possible values for ip type + */ + public /*out*/ readonly type!: pulumi.Output; + + /** + * Create a Move 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: MoveArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: MoveArgs | MoveState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as MoveState | undefined; + resourceInputs["canBeTerminated"] = state ? state.canBeTerminated : undefined; + resourceInputs["country"] = state ? state.country : undefined; + resourceInputs["description"] = state ? state.description : undefined; + resourceInputs["ip"] = state ? state.ip : undefined; + resourceInputs["organisationId"] = state ? state.organisationId : undefined; + resourceInputs["routedTo"] = state ? state.routedTo : undefined; + resourceInputs["serviceName"] = state ? state.serviceName : undefined; + resourceInputs["taskStartDate"] = state ? state.taskStartDate : undefined; + resourceInputs["taskStatus"] = state ? state.taskStatus : undefined; + resourceInputs["type"] = state ? state.type : undefined; + } else { + const args = argsOrState as MoveArgs | undefined; + if ((!args || args.ip === undefined) && !opts.urn) { + throw new Error("Missing required property 'ip'"); + } + if ((!args || args.routedTo === undefined) && !opts.urn) { + throw new Error("Missing required property 'routedTo'"); + } + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["ip"] = args ? args.ip : undefined; + resourceInputs["routedTo"] = args ? args.routedTo : undefined; + resourceInputs["canBeTerminated"] = undefined /*out*/; + resourceInputs["country"] = undefined /*out*/; + resourceInputs["organisationId"] = undefined /*out*/; + resourceInputs["serviceName"] = undefined /*out*/; + resourceInputs["taskStartDate"] = undefined /*out*/; + resourceInputs["taskStatus"] = undefined /*out*/; + resourceInputs["type"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Move.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering Move resources. + */ +export interface MoveState { + /** + * Whether IP service can be terminated + */ + canBeTerminated?: pulumi.Input; + /** + * Country + */ + country?: pulumi.Input; + /** + * Description attached to the IP + */ + description?: pulumi.Input; + /** + * IP block that we want to attach to a different service + */ + ip?: pulumi.Input; + /** + * IP block organisation Id + */ + organisationId?: pulumi.Input; + /** + * Service to route the IP to. If null, the IP will be [parked](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/park~POST) + * instead of [moved](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/move~POST) + */ + routedTo?: pulumi.Input; + /** + * Name of the service to route the IP to. IP will be parked if this value is an empty string + */ + serviceName?: pulumi.Input; + /** + * Starting date and time field of the current IP task that is in charge of changing the service the IP is attached to + */ + taskStartDate?: pulumi.Input; + /** + * Status field of the current IP task that is in charge of changing the service the IP is attached to + */ + taskStatus?: pulumi.Input; + /** + * Possible values for ip type + */ + type?: pulumi.Input; +} + +/** + * The set of arguments for constructing a Move resource. + */ +export interface MoveArgs { + /** + * Description attached to the IP + */ + description?: pulumi.Input; + /** + * IP block that we want to attach to a different service + */ + ip: pulumi.Input; + /** + * Service to route the IP to. If null, the IP will be [parked](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/park~POST) + * instead of [moved](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/move~POST) + */ + routedTo: pulumi.Input; +} diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 7b898a7b..9637162b 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -21,6 +21,7 @@ "cloudproject/containerRegistryUser.ts", "cloudproject/database.ts", "cloudproject/failoverIpAttach.ts", + "cloudproject/gateway.ts", "cloudproject/getCapabilitiesContainerFilter.ts", "cloudproject/getCapabilitiesContainerRegistry.ts", "cloudproject/getContainerRegistries.ts", @@ -115,6 +116,7 @@ "dedicated/getCeph.ts", "dedicated/getNasHA.ts", "dedicated/getServerBoots.ts", + "dedicated/getServerSpecificationsHardware.ts", "dedicated/index.ts", "dedicated/nasHAPartition.ts", "dedicated/nasHAPartitionAccess.ts", @@ -159,6 +161,7 @@ "ip/getService.ts", "ip/index.ts", "ip/ipService.ts", + "ip/move.ts", "ip/reverse.ts", "iploadbalancing/getIpLoadBalancing.ts", "iploadbalancing/getVrackNetwork.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index c16b3407..45d50c1c 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -125,7 +125,7 @@ export namespace CloudProject { /** * Kubernetes API server customization * - * @deprecated Use customization_apiserver instead + * @deprecated Use customizationApiserver instead */ apiservers?: inputs.CloudProject.GetKubeCustomizationApiserver[]; } @@ -134,7 +134,7 @@ export namespace CloudProject { /** * Kubernetes API server customization * - * @deprecated Use customization_apiserver instead + * @deprecated Use customizationApiserver instead */ apiservers?: pulumi.Input[]>; } @@ -351,7 +351,7 @@ export namespace CloudProject { /** * Kubernetes API server customization * - * @deprecated Use customization_apiserver instead + * @deprecated Use customizationApiserver instead */ apiservers?: pulumi.Input[]>; } @@ -486,6 +486,13 @@ export namespace CloudProject { defaultVrackGateway: pulumi.Input; /** * Defines whether routing should default to using the nodes' private interface, instead of their public interface. Default is false. + * + * In order to use the gateway IP advertised by the private network subnet DHCP, the following configuration shall be used. + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * ``` + * */ privateNetworkRoutingAsDefault: pulumi.Input; } @@ -1125,6 +1132,13 @@ export namespace Ip { */ serviceName?: pulumi.Input; } + + export interface MoveRoutedTo { + /** + * Name of the service to route the IP to. IP will be parked if this value is an empty string + */ + serviceName: pulumi.Input; + } } export namespace IpLoadBalancing { diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index fdf9574d..fbcd4b3c 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -292,7 +292,7 @@ export namespace CloudProject { /** * Kubernetes API server customization * - * @deprecated Use customization_apiserver instead + * @deprecated Use customizationApiserver instead */ apiservers: outputs.CloudProject.GetKubeCustomizationApiserver[]; } @@ -596,7 +596,7 @@ export namespace CloudProject { /** * Kubernetes API server customization * - * @deprecated Use customization_apiserver instead + * @deprecated Use customizationApiserver instead */ apiservers: outputs.CloudProject.KubeCustomizationApiserver[]; } @@ -731,6 +731,13 @@ export namespace CloudProject { defaultVrackGateway: string; /** * Defines whether routing should default to using the nodes' private interface, instead of their public interface. Default is false. + * + * In order to use the gateway IP advertised by the private network subnet DHCP, the following configuration shall be used. + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * ``` + * */ privateNetworkRoutingAsDefault: boolean; } @@ -1082,6 +1089,77 @@ export namespace Dbaas { } export namespace Dedicated { + export interface GetServerSpecificationsHardwareDefaultHardwareRaidSize { + unit: string; + value: number; + } + + export interface GetServerSpecificationsHardwareDiskGroup { + /** + * Default hardware raid size for this disk group + */ + defaultHardwareRaidSize: outputs.Dedicated.GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSize; + /** + * Default hardware raid type for this disk group + */ + defaultHardwareRaidType: string; + /** + * Expansion card description + */ + description: string; + /** + * Identifier of this disk group + */ + diskGroupId: number; + /** + * Disk capacity + */ + diskSize: outputs.Dedicated.GetServerSpecificationsHardwareDiskGroupDiskSize; + /** + * Type of the disk (SSD, SATA, SAS, ...) + */ + diskType: string; + /** + * Number of disks in this group + */ + numberOfDisks: number; + /** + * Raid controller, if any, managing this group of disks + */ + raidController: string; + } + + export interface GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSize { + unit: string; + value: number; + } + + export interface GetServerSpecificationsHardwareDiskGroupDiskSize { + unit: string; + value: number; + } + + export interface GetServerSpecificationsHardwareExpansionCard { + /** + * Expansion card description + */ + description: string; + /** + * Expansion card type enum + */ + type: string; + } + + export interface GetServerSpecificationsHardwareMemorySize { + unit: string; + value: number; + } + + export interface GetServerSpecificationsHardwareUsbKey { + unit: string; + value: number; + } + export interface ServerInstallTaskDetails { /** * Template change log details. @@ -1543,6 +1621,13 @@ export namespace Ip { serviceName: string; } + export interface MoveRoutedTo { + /** + * Name of the service to route the IP to. IP will be parked if this value is an empty string + */ + serviceName: string; + } + } export namespace IpLoadBalancing { diff --git a/sdk/python/pulumi_ovh/__init__.py b/sdk/python/pulumi_ovh/__init__.py index 9d2be876..f6cf2162 100644 --- a/sdk/python/pulumi_ovh/__init__.py +++ b/sdk/python/pulumi_ovh/__init__.py @@ -125,6 +125,14 @@ "ovh:CloudProject/failoverIpAttach:FailoverIpAttach": "FailoverIpAttach" } }, + { + "pkg": "ovh", + "mod": "CloudProject/gateway", + "fqn": "pulumi_ovh.cloudproject", + "classes": { + "ovh:CloudProject/gateway:Gateway": "Gateway" + } + }, { "pkg": "ovh", "mod": "CloudProject/kube", @@ -525,6 +533,14 @@ "ovh:Ip/ipService:IpService": "IpService" } }, + { + "pkg": "ovh", + "mod": "Ip/move", + "fqn": "pulumi_ovh.ip", + "classes": { + "ovh:Ip/move:Move": "Move" + } + }, { "pkg": "ovh", "mod": "Ip/reverse", diff --git a/sdk/python/pulumi_ovh/cloudproject/__init__.py b/sdk/python/pulumi_ovh/cloudproject/__init__.py index 63798e6f..b7e9b931 100644 --- a/sdk/python/pulumi_ovh/cloudproject/__init__.py +++ b/sdk/python/pulumi_ovh/cloudproject/__init__.py @@ -13,6 +13,7 @@ from .container_registry_user import * from .database import * from .failover_ip_attach import * +from .gateway import * from .get_capabilities_container_filter import * from .get_capabilities_container_registry import * from .get_container_registries import * diff --git a/sdk/python/pulumi_ovh/cloudproject/_inputs.py b/sdk/python/pulumi_ovh/cloudproject/_inputs.py index 3bda204a..7b65b136 100644 --- a/sdk/python/pulumi_ovh/cloudproject/_inputs.py +++ b/sdk/python/pulumi_ovh/cloudproject/_inputs.py @@ -952,6 +952,13 @@ def __init__(__self__, *, """ :param pulumi.Input[str] default_vrack_gateway: If defined, all egress traffic will be routed towards this IP address, which should belong to the private network. Empty string means disabled. :param pulumi.Input[bool] private_network_routing_as_default: Defines whether routing should default to using the nodes' private interface, instead of their public interface. Default is false. + + In order to use the gateway IP advertised by the private network subnet DHCP, the following configuration shall be used. + + ```python + import pulumi + ``` + """ pulumi.set(__self__, "default_vrack_gateway", default_vrack_gateway) pulumi.set(__self__, "private_network_routing_as_default", private_network_routing_as_default) @@ -973,6 +980,13 @@ def default_vrack_gateway(self, value: pulumi.Input[str]): def private_network_routing_as_default(self) -> pulumi.Input[bool]: """ Defines whether routing should default to using the nodes' private interface, instead of their public interface. Default is false. + + In order to use the gateway IP advertised by the private network subnet DHCP, the following configuration shall be used. + + ```python + import pulumi + ``` + """ return pulumi.get(self, "private_network_routing_as_default") diff --git a/sdk/python/pulumi_ovh/cloudproject/gateway.py b/sdk/python/pulumi_ovh/cloudproject/gateway.py new file mode 100644 index 00000000..c4889d21 --- /dev/null +++ b/sdk/python/pulumi_ovh/cloudproject/gateway.py @@ -0,0 +1,413 @@ +# 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__ = ['GatewayArgs', 'Gateway'] + +@pulumi.input_type +class GatewayArgs: + def __init__(__self__, *, + model: pulumi.Input[str], + network_id: pulumi.Input[str], + region: pulumi.Input[str], + service_name: pulumi.Input[str], + subnet_id: pulumi.Input[str], + name: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a Gateway resource. + :param pulumi.Input[str] model: The model of the gateway. + :param pulumi.Input[str] network_id: The ID of the private network. + :param pulumi.Input[str] region: The region of the gateway. + :param pulumi.Input[str] service_name: The ID of the private network. + :param pulumi.Input[str] subnet_id: The ID of the subnet. + :param pulumi.Input[str] name: The name of the gateway. + """ + pulumi.set(__self__, "model", model) + pulumi.set(__self__, "network_id", network_id) + pulumi.set(__self__, "region", region) + pulumi.set(__self__, "service_name", service_name) + pulumi.set(__self__, "subnet_id", subnet_id) + if name is not None: + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter + def model(self) -> pulumi.Input[str]: + """ + The model of the gateway. + """ + return pulumi.get(self, "model") + + @model.setter + def model(self, value: pulumi.Input[str]): + pulumi.set(self, "model", value) + + @property + @pulumi.getter(name="networkId") + def network_id(self) -> pulumi.Input[str]: + """ + The ID of the private network. + """ + return pulumi.get(self, "network_id") + + @network_id.setter + def network_id(self, value: pulumi.Input[str]): + pulumi.set(self, "network_id", value) + + @property + @pulumi.getter + def region(self) -> pulumi.Input[str]: + """ + The region of the gateway. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: pulumi.Input[str]): + pulumi.set(self, "region", value) + + @property + @pulumi.getter(name="serviceName") + def service_name(self) -> pulumi.Input[str]: + """ + The ID of the private network. + """ + return pulumi.get(self, "service_name") + + @service_name.setter + def service_name(self, value: pulumi.Input[str]): + pulumi.set(self, "service_name", value) + + @property + @pulumi.getter(name="subnetId") + def subnet_id(self) -> pulumi.Input[str]: + """ + The ID of the subnet. + """ + return pulumi.get(self, "subnet_id") + + @subnet_id.setter + def subnet_id(self, value: pulumi.Input[str]): + pulumi.set(self, "subnet_id", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the gateway. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + +@pulumi.input_type +class _GatewayState: + def __init__(__self__, *, + model: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + network_id: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering Gateway resources. + :param pulumi.Input[str] model: The model of the gateway. + :param pulumi.Input[str] name: The name of the gateway. + :param pulumi.Input[str] network_id: The ID of the private network. + :param pulumi.Input[str] region: The region of the gateway. + :param pulumi.Input[str] service_name: The ID of the private network. + :param pulumi.Input[str] status: The status of the gateway. + :param pulumi.Input[str] subnet_id: The ID of the subnet. + """ + if model is not None: + pulumi.set(__self__, "model", model) + if name is not None: + pulumi.set(__self__, "name", name) + if network_id is not None: + pulumi.set(__self__, "network_id", network_id) + if region is not None: + pulumi.set(__self__, "region", region) + if service_name is not None: + pulumi.set(__self__, "service_name", service_name) + if status is not None: + pulumi.set(__self__, "status", status) + if subnet_id is not None: + pulumi.set(__self__, "subnet_id", subnet_id) + + @property + @pulumi.getter + def model(self) -> Optional[pulumi.Input[str]]: + """ + The model of the gateway. + """ + return pulumi.get(self, "model") + + @model.setter + def model(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "model", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the gateway. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="networkId") + def network_id(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the private network. + """ + return pulumi.get(self, "network_id") + + @network_id.setter + def network_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "network_id", value) + + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[str]]: + """ + The region of the gateway. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "region", value) + + @property + @pulumi.getter(name="serviceName") + def service_name(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the private network. + """ + 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 status(self) -> Optional[pulumi.Input[str]]: + """ + The status of the gateway. + """ + return pulumi.get(self, "status") + + @status.setter + def status(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "status", value) + + @property + @pulumi.getter(name="subnetId") + def subnet_id(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the subnet. + """ + return pulumi.get(self, "subnet_id") + + @subnet_id.setter + def subnet_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "subnet_id", value) + + +class Gateway(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + model: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + network_id: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Create a new Gateway for existing subnet in the specified public cloud project. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] model: The model of the gateway. + :param pulumi.Input[str] name: The name of the gateway. + :param pulumi.Input[str] network_id: The ID of the private network. + :param pulumi.Input[str] region: The region of the gateway. + :param pulumi.Input[str] service_name: The ID of the private network. + :param pulumi.Input[str] subnet_id: The ID of the subnet. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: GatewayArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Create a new Gateway for existing subnet in the specified public cloud project. + + :param str resource_name: The name of the resource. + :param GatewayArgs 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(GatewayArgs, 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, + model: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + network_id: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None, + subnet_id: 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__ = GatewayArgs.__new__(GatewayArgs) + + if model is None and not opts.urn: + raise TypeError("Missing required property 'model'") + __props__.__dict__["model"] = model + __props__.__dict__["name"] = name + if network_id is None and not opts.urn: + raise TypeError("Missing required property 'network_id'") + __props__.__dict__["network_id"] = network_id + if region is None and not opts.urn: + raise TypeError("Missing required property 'region'") + __props__.__dict__["region"] = region + if service_name is None and not opts.urn: + raise TypeError("Missing required property 'service_name'") + __props__.__dict__["service_name"] = service_name + if subnet_id is None and not opts.urn: + raise TypeError("Missing required property 'subnet_id'") + __props__.__dict__["subnet_id"] = subnet_id + __props__.__dict__["status"] = None + super(Gateway, __self__).__init__( + 'ovh:CloudProject/gateway:Gateway', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + model: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + network_id: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None) -> 'Gateway': + """ + Get an existing Gateway 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] model: The model of the gateway. + :param pulumi.Input[str] name: The name of the gateway. + :param pulumi.Input[str] network_id: The ID of the private network. + :param pulumi.Input[str] region: The region of the gateway. + :param pulumi.Input[str] service_name: The ID of the private network. + :param pulumi.Input[str] status: The status of the gateway. + :param pulumi.Input[str] subnet_id: The ID of the subnet. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _GatewayState.__new__(_GatewayState) + + __props__.__dict__["model"] = model + __props__.__dict__["name"] = name + __props__.__dict__["network_id"] = network_id + __props__.__dict__["region"] = region + __props__.__dict__["service_name"] = service_name + __props__.__dict__["status"] = status + __props__.__dict__["subnet_id"] = subnet_id + return Gateway(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def model(self) -> pulumi.Output[str]: + """ + The model of the gateway. + """ + return pulumi.get(self, "model") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The name of the gateway. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="networkId") + def network_id(self) -> pulumi.Output[str]: + """ + The ID of the private network. + """ + return pulumi.get(self, "network_id") + + @property + @pulumi.getter + def region(self) -> pulumi.Output[str]: + """ + The region of the gateway. + """ + return pulumi.get(self, "region") + + @property + @pulumi.getter(name="serviceName") + def service_name(self) -> pulumi.Output[str]: + """ + The ID of the private network. + """ + return pulumi.get(self, "service_name") + + @property + @pulumi.getter + def status(self) -> pulumi.Output[str]: + """ + The status of the gateway. + """ + return pulumi.get(self, "status") + + @property + @pulumi.getter(name="subnetId") + def subnet_id(self) -> pulumi.Output[str]: + """ + The ID of the subnet. + """ + return pulumi.get(self, "subnet_id") + diff --git a/sdk/python/pulumi_ovh/cloudproject/kube.py b/sdk/python/pulumi_ovh/cloudproject/kube.py index bb506f9c..d3ddc281 100644 --- a/sdk/python/pulumi_ovh/cloudproject/kube.py +++ b/sdk/python/pulumi_ovh/cloudproject/kube.py @@ -36,7 +36,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['KubeCustomizationArgs']]] 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] name: The name of the kubernetes cluster. - :param pulumi.Input['KubePrivateNetworkConfigurationArgs'] private_network_configuration: The private network configuration + :param pulumi.Input['KubePrivateNetworkConfigurationArgs'] 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. @@ -158,7 +158,7 @@ def name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="privateNetworkConfiguration") def private_network_configuration(self) -> Optional[pulumi.Input['KubePrivateNetworkConfigurationArgs']]: """ - The private network configuration + The private network configuration. If this is set then the 2 parameters below shall be defined. """ return pulumi.get(self, "private_network_configuration") @@ -240,7 +240,7 @@ def __init__(__self__, *, :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_url: Cluster nodes URL. - :param pulumi.Input['KubePrivateNetworkConfigurationArgs'] private_network_configuration: The private network configuration + :param pulumi.Input['KubePrivateNetworkConfigurationArgs'] 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. @@ -432,7 +432,7 @@ def nodes_url(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="privateNetworkConfiguration") def private_network_configuration(self) -> Optional[pulumi.Input['KubePrivateNetworkConfigurationArgs']]: """ - The private network configuration + The private network configuration. If this is set then the 2 parameters below shall be defined. """ return pulumi.get(self, "private_network_configuration") @@ -562,7 +562,7 @@ def __init__(__self__, :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[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] name: The name of the kubernetes cluster. - :param pulumi.Input[pulumi.InputType['KubePrivateNetworkConfigurationArgs']] private_network_configuration: The private network configuration + :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[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. @@ -695,7 +695,7 @@ def get(resource_name: str, :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_url: Cluster nodes URL. - :param pulumi.Input[pulumi.InputType['KubePrivateNetworkConfigurationArgs']] private_network_configuration: The private network configuration + :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[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. @@ -826,7 +826,7 @@ def nodes_url(self) -> pulumi.Output[str]: @pulumi.getter(name="privateNetworkConfiguration") def private_network_configuration(self) -> pulumi.Output[Optional['outputs.KubePrivateNetworkConfiguration']]: """ - The private network configuration + The private network configuration. If this is set then the 2 parameters below shall be defined. """ return pulumi.get(self, "private_network_configuration") diff --git a/sdk/python/pulumi_ovh/cloudproject/outputs.py b/sdk/python/pulumi_ovh/cloudproject/outputs.py index 2d5d0c1c..2869f77e 100644 --- a/sdk/python/pulumi_ovh/cloudproject/outputs.py +++ b/sdk/python/pulumi_ovh/cloudproject/outputs.py @@ -946,6 +946,13 @@ def __init__(__self__, *, """ :param str default_vrack_gateway: If defined, all egress traffic will be routed towards this IP address, which should belong to the private network. Empty string means disabled. :param bool private_network_routing_as_default: Defines whether routing should default to using the nodes' private interface, instead of their public interface. Default is false. + + In order to use the gateway IP advertised by the private network subnet DHCP, the following configuration shall be used. + + ```python + import pulumi + ``` + """ pulumi.set(__self__, "default_vrack_gateway", default_vrack_gateway) pulumi.set(__self__, "private_network_routing_as_default", private_network_routing_as_default) @@ -963,6 +970,13 @@ def default_vrack_gateway(self) -> str: def private_network_routing_as_default(self) -> bool: """ Defines whether routing should default to using the nodes' private interface, instead of their public interface. Default is false. + + In order to use the gateway IP advertised by the private network subnet DHCP, the following configuration shall be used. + + ```python + import pulumi + ``` + """ return pulumi.get(self, "private_network_routing_as_default") diff --git a/sdk/python/pulumi_ovh/dedicated/__init__.py b/sdk/python/pulumi_ovh/dedicated/__init__.py index 22a5fe8c..daa0f167 100644 --- a/sdk/python/pulumi_ovh/dedicated/__init__.py +++ b/sdk/python/pulumi_ovh/dedicated/__init__.py @@ -9,6 +9,7 @@ from .get_ceph import * from .get_nas_ha import * from .get_server_boots import * +from .get_server_specifications_hardware import * from .nas_ha_partition import * from .nas_ha_partition_access import * from .nas_ha_partition_snapshot import * diff --git a/sdk/python/pulumi_ovh/dedicated/get_server_specifications_hardware.py b/sdk/python/pulumi_ovh/dedicated/get_server_specifications_hardware.py new file mode 100644 index 00000000..90137e6d --- /dev/null +++ b/sdk/python/pulumi_ovh/dedicated/get_server_specifications_hardware.py @@ -0,0 +1,301 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs + +__all__ = [ + 'GetServerSpecificationsHardwareResult', + 'AwaitableGetServerSpecificationsHardwareResult', + 'get_server_specifications_hardware', + 'get_server_specifications_hardware_output', +] + +@pulumi.output_type +class GetServerSpecificationsHardwareResult: + """ + A collection of values returned by getServerSpecificationsHardware. + """ + def __init__(__self__, boot_mode=None, cores_per_processor=None, default_hardware_raid_size=None, default_hardware_raid_type=None, description=None, disk_groups=None, expansion_cards=None, form_factor=None, id=None, memory_size=None, motherboard=None, number_of_processors=None, processor_architecture=None, processor_name=None, service_name=None, threads_per_processor=None, usb_keys=None): + if boot_mode and not isinstance(boot_mode, str): + raise TypeError("Expected argument 'boot_mode' to be a str") + pulumi.set(__self__, "boot_mode", boot_mode) + if cores_per_processor and not isinstance(cores_per_processor, float): + raise TypeError("Expected argument 'cores_per_processor' to be a float") + pulumi.set(__self__, "cores_per_processor", cores_per_processor) + if default_hardware_raid_size and not isinstance(default_hardware_raid_size, dict): + raise TypeError("Expected argument 'default_hardware_raid_size' to be a dict") + pulumi.set(__self__, "default_hardware_raid_size", default_hardware_raid_size) + if default_hardware_raid_type and not isinstance(default_hardware_raid_type, str): + raise TypeError("Expected argument 'default_hardware_raid_type' to be a str") + pulumi.set(__self__, "default_hardware_raid_type", default_hardware_raid_type) + if description and not isinstance(description, str): + raise TypeError("Expected argument 'description' to be a str") + pulumi.set(__self__, "description", description) + if disk_groups and not isinstance(disk_groups, list): + raise TypeError("Expected argument 'disk_groups' to be a list") + pulumi.set(__self__, "disk_groups", disk_groups) + if expansion_cards and not isinstance(expansion_cards, list): + raise TypeError("Expected argument 'expansion_cards' to be a list") + pulumi.set(__self__, "expansion_cards", expansion_cards) + if form_factor and not isinstance(form_factor, str): + raise TypeError("Expected argument 'form_factor' to be a str") + pulumi.set(__self__, "form_factor", form_factor) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if memory_size and not isinstance(memory_size, dict): + raise TypeError("Expected argument 'memory_size' to be a dict") + pulumi.set(__self__, "memory_size", memory_size) + if motherboard and not isinstance(motherboard, str): + raise TypeError("Expected argument 'motherboard' to be a str") + pulumi.set(__self__, "motherboard", motherboard) + if number_of_processors and not isinstance(number_of_processors, float): + raise TypeError("Expected argument 'number_of_processors' to be a float") + pulumi.set(__self__, "number_of_processors", number_of_processors) + if processor_architecture and not isinstance(processor_architecture, str): + raise TypeError("Expected argument 'processor_architecture' to be a str") + pulumi.set(__self__, "processor_architecture", processor_architecture) + if processor_name and not isinstance(processor_name, str): + raise TypeError("Expected argument 'processor_name' to be a str") + pulumi.set(__self__, "processor_name", processor_name) + if service_name and not isinstance(service_name, str): + raise TypeError("Expected argument 'service_name' to be a str") + pulumi.set(__self__, "service_name", service_name) + if threads_per_processor and not isinstance(threads_per_processor, float): + raise TypeError("Expected argument 'threads_per_processor' to be a float") + pulumi.set(__self__, "threads_per_processor", threads_per_processor) + if usb_keys and not isinstance(usb_keys, list): + raise TypeError("Expected argument 'usb_keys' to be a list") + pulumi.set(__self__, "usb_keys", usb_keys) + + @property + @pulumi.getter(name="bootMode") + def boot_mode(self) -> str: + """ + Server boot mode + """ + return pulumi.get(self, "boot_mode") + + @property + @pulumi.getter(name="coresPerProcessor") + def cores_per_processor(self) -> float: + """ + Number of cores per processor + """ + return pulumi.get(self, "cores_per_processor") + + @property + @pulumi.getter(name="defaultHardwareRaidSize") + def default_hardware_raid_size(self) -> 'outputs.GetServerSpecificationsHardwareDefaultHardwareRaidSizeResult': + """ + Default hardware raid size for this disk group + """ + return pulumi.get(self, "default_hardware_raid_size") + + @property + @pulumi.getter(name="defaultHardwareRaidType") + def default_hardware_raid_type(self) -> str: + """ + Default hardware raid type for this disk group + """ + return pulumi.get(self, "default_hardware_raid_type") + + @property + @pulumi.getter + def description(self) -> str: + """ + Expansion card description + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="diskGroups") + def disk_groups(self) -> Sequence['outputs.GetServerSpecificationsHardwareDiskGroupResult']: + """ + Details about the groups of disks in the server + """ + return pulumi.get(self, "disk_groups") + + @property + @pulumi.getter(name="expansionCards") + def expansion_cards(self) -> Sequence['outputs.GetServerSpecificationsHardwareExpansionCardResult']: + """ + Details about the server's expansion cards + """ + return pulumi.get(self, "expansion_cards") + + @property + @pulumi.getter(name="formFactor") + def form_factor(self) -> str: + """ + Server form factor + """ + return pulumi.get(self, "form_factor") + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="memorySize") + def memory_size(self) -> 'outputs.GetServerSpecificationsHardwareMemorySizeResult': + """ + RAM capacity + """ + return pulumi.get(self, "memory_size") + + @property + @pulumi.getter + def motherboard(self) -> str: + """ + Server motherboard + """ + return pulumi.get(self, "motherboard") + + @property + @pulumi.getter(name="numberOfProcessors") + def number_of_processors(self) -> float: + """ + Number of processors in this dedicated server + """ + return pulumi.get(self, "number_of_processors") + + @property + @pulumi.getter(name="processorArchitecture") + def processor_architecture(self) -> str: + """ + Processor architecture bit + """ + return pulumi.get(self, "processor_architecture") + + @property + @pulumi.getter(name="processorName") + def processor_name(self) -> str: + """ + Processor name + """ + return pulumi.get(self, "processor_name") + + @property + @pulumi.getter(name="serviceName") + def service_name(self) -> str: + return pulumi.get(self, "service_name") + + @property + @pulumi.getter(name="threadsPerProcessor") + def threads_per_processor(self) -> float: + """ + Number of threads per processor + """ + return pulumi.get(self, "threads_per_processor") + + @property + @pulumi.getter(name="usbKeys") + def usb_keys(self) -> Sequence['outputs.GetServerSpecificationsHardwareUsbKeyResult']: + """ + Capacity of the USB keys installed on your server, if any + """ + return pulumi.get(self, "usb_keys") + + +class AwaitableGetServerSpecificationsHardwareResult(GetServerSpecificationsHardwareResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetServerSpecificationsHardwareResult( + boot_mode=self.boot_mode, + cores_per_processor=self.cores_per_processor, + default_hardware_raid_size=self.default_hardware_raid_size, + default_hardware_raid_type=self.default_hardware_raid_type, + description=self.description, + disk_groups=self.disk_groups, + expansion_cards=self.expansion_cards, + form_factor=self.form_factor, + id=self.id, + memory_size=self.memory_size, + motherboard=self.motherboard, + number_of_processors=self.number_of_processors, + processor_architecture=self.processor_architecture, + processor_name=self.processor_name, + service_name=self.service_name, + threads_per_processor=self.threads_per_processor, + usb_keys=self.usb_keys) + + +def get_server_specifications_hardware(service_name: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetServerSpecificationsHardwareResult: + """ + Use this data source to get the hardward information about a dedicated server associated with your OVHcloud Account. + + ## Example Usage + + + ```python + import pulumi + import pulumi_ovh as ovh + + spec = ovh.Dedicated.get_server_specifications_hardware(service_name="myserver") + ``` + + + + :param str service_name: The internal name of your dedicated server. + """ + __args__ = dict() + __args__['serviceName'] = service_name + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('ovh:Dedicated/getServerSpecificationsHardware:getServerSpecificationsHardware', __args__, opts=opts, typ=GetServerSpecificationsHardwareResult).value + + return AwaitableGetServerSpecificationsHardwareResult( + boot_mode=pulumi.get(__ret__, 'boot_mode'), + cores_per_processor=pulumi.get(__ret__, 'cores_per_processor'), + default_hardware_raid_size=pulumi.get(__ret__, 'default_hardware_raid_size'), + default_hardware_raid_type=pulumi.get(__ret__, 'default_hardware_raid_type'), + description=pulumi.get(__ret__, 'description'), + disk_groups=pulumi.get(__ret__, 'disk_groups'), + expansion_cards=pulumi.get(__ret__, 'expansion_cards'), + form_factor=pulumi.get(__ret__, 'form_factor'), + id=pulumi.get(__ret__, 'id'), + memory_size=pulumi.get(__ret__, 'memory_size'), + motherboard=pulumi.get(__ret__, 'motherboard'), + number_of_processors=pulumi.get(__ret__, 'number_of_processors'), + processor_architecture=pulumi.get(__ret__, 'processor_architecture'), + processor_name=pulumi.get(__ret__, 'processor_name'), + service_name=pulumi.get(__ret__, 'service_name'), + threads_per_processor=pulumi.get(__ret__, 'threads_per_processor'), + usb_keys=pulumi.get(__ret__, 'usb_keys')) + + +@_utilities.lift_output_func(get_server_specifications_hardware) +def get_server_specifications_hardware_output(service_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetServerSpecificationsHardwareResult]: + """ + Use this data source to get the hardward information about a dedicated server associated with your OVHcloud Account. + + ## Example Usage + + + ```python + import pulumi + import pulumi_ovh as ovh + + spec = ovh.Dedicated.get_server_specifications_hardware(service_name="myserver") + ``` + + + + :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 a7968ea7..9580da8f 100644 --- a/sdk/python/pulumi_ovh/dedicated/outputs.py +++ b/sdk/python/pulumi_ovh/dedicated/outputs.py @@ -8,10 +8,18 @@ import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities +from . import outputs __all__ = [ 'ServerInstallTaskDetails', 'ServerNetworkingInterface', + 'GetServerSpecificationsHardwareDefaultHardwareRaidSizeResult', + 'GetServerSpecificationsHardwareDiskGroupResult', + 'GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeResult', + 'GetServerSpecificationsHardwareDiskGroupDiskSizeResult', + 'GetServerSpecificationsHardwareExpansionCardResult', + 'GetServerSpecificationsHardwareMemorySizeResult', + 'GetServerSpecificationsHardwareUsbKeyResult', ] @pulumi.output_type @@ -262,3 +270,222 @@ def type(self) -> str: return pulumi.get(self, "type") +@pulumi.output_type +class GetServerSpecificationsHardwareDefaultHardwareRaidSizeResult(dict): + def __init__(__self__, *, + unit: str, + value: float): + pulumi.set(__self__, "unit", unit) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def unit(self) -> str: + return pulumi.get(self, "unit") + + @property + @pulumi.getter + def value(self) -> float: + return pulumi.get(self, "value") + + +@pulumi.output_type +class GetServerSpecificationsHardwareDiskGroupResult(dict): + def __init__(__self__, *, + default_hardware_raid_size: 'outputs.GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeResult', + default_hardware_raid_type: str, + description: str, + disk_group_id: float, + disk_size: 'outputs.GetServerSpecificationsHardwareDiskGroupDiskSizeResult', + disk_type: str, + number_of_disks: float, + raid_controller: str): + """ + :param 'GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeArgs' default_hardware_raid_size: Default hardware raid size for this disk group + :param str default_hardware_raid_type: Default hardware raid type for this disk group + :param str description: Expansion card description + :param float disk_group_id: Identifier of this disk group + :param 'GetServerSpecificationsHardwareDiskGroupDiskSizeArgs' disk_size: Disk capacity + :param str disk_type: Type of the disk (SSD, SATA, SAS, ...) + :param float number_of_disks: Number of disks in this group + :param str raid_controller: Raid controller, if any, managing this group of disks + """ + pulumi.set(__self__, "default_hardware_raid_size", default_hardware_raid_size) + pulumi.set(__self__, "default_hardware_raid_type", default_hardware_raid_type) + pulumi.set(__self__, "description", description) + pulumi.set(__self__, "disk_group_id", disk_group_id) + pulumi.set(__self__, "disk_size", disk_size) + pulumi.set(__self__, "disk_type", disk_type) + pulumi.set(__self__, "number_of_disks", number_of_disks) + pulumi.set(__self__, "raid_controller", raid_controller) + + @property + @pulumi.getter(name="defaultHardwareRaidSize") + def default_hardware_raid_size(self) -> 'outputs.GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeResult': + """ + Default hardware raid size for this disk group + """ + return pulumi.get(self, "default_hardware_raid_size") + + @property + @pulumi.getter(name="defaultHardwareRaidType") + def default_hardware_raid_type(self) -> str: + """ + Default hardware raid type for this disk group + """ + return pulumi.get(self, "default_hardware_raid_type") + + @property + @pulumi.getter + def description(self) -> str: + """ + Expansion card description + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="diskGroupId") + def disk_group_id(self) -> float: + """ + Identifier of this disk group + """ + return pulumi.get(self, "disk_group_id") + + @property + @pulumi.getter(name="diskSize") + def disk_size(self) -> 'outputs.GetServerSpecificationsHardwareDiskGroupDiskSizeResult': + """ + Disk capacity + """ + return pulumi.get(self, "disk_size") + + @property + @pulumi.getter(name="diskType") + def disk_type(self) -> str: + """ + Type of the disk (SSD, SATA, SAS, ...) + """ + return pulumi.get(self, "disk_type") + + @property + @pulumi.getter(name="numberOfDisks") + def number_of_disks(self) -> float: + """ + Number of disks in this group + """ + return pulumi.get(self, "number_of_disks") + + @property + @pulumi.getter(name="raidController") + def raid_controller(self) -> str: + """ + Raid controller, if any, managing this group of disks + """ + return pulumi.get(self, "raid_controller") + + +@pulumi.output_type +class GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeResult(dict): + def __init__(__self__, *, + unit: str, + value: float): + pulumi.set(__self__, "unit", unit) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def unit(self) -> str: + return pulumi.get(self, "unit") + + @property + @pulumi.getter + def value(self) -> float: + return pulumi.get(self, "value") + + +@pulumi.output_type +class GetServerSpecificationsHardwareDiskGroupDiskSizeResult(dict): + def __init__(__self__, *, + unit: str, + value: float): + pulumi.set(__self__, "unit", unit) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def unit(self) -> str: + return pulumi.get(self, "unit") + + @property + @pulumi.getter + def value(self) -> float: + return pulumi.get(self, "value") + + +@pulumi.output_type +class GetServerSpecificationsHardwareExpansionCardResult(dict): + def __init__(__self__, *, + description: str, + type: str): + """ + :param str description: Expansion card description + :param str type: Expansion card type enum + """ + pulumi.set(__self__, "description", description) + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter + def description(self) -> str: + """ + Expansion card description + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter + def type(self) -> str: + """ + Expansion card type enum + """ + return pulumi.get(self, "type") + + +@pulumi.output_type +class GetServerSpecificationsHardwareMemorySizeResult(dict): + def __init__(__self__, *, + unit: str, + value: float): + pulumi.set(__self__, "unit", unit) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def unit(self) -> str: + return pulumi.get(self, "unit") + + @property + @pulumi.getter + def value(self) -> float: + return pulumi.get(self, "value") + + +@pulumi.output_type +class GetServerSpecificationsHardwareUsbKeyResult(dict): + def __init__(__self__, *, + unit: str, + value: float): + pulumi.set(__self__, "unit", unit) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def unit(self) -> str: + return pulumi.get(self, "unit") + + @property + @pulumi.getter + def value(self) -> float: + return pulumi.get(self, "value") + + diff --git a/sdk/python/pulumi_ovh/get_server.py b/sdk/python/pulumi_ovh/get_server.py index 1d2fc3d0..2a48e760 100644 --- a/sdk/python/pulumi_ovh/get_server.py +++ b/sdk/python/pulumi_ovh/get_server.py @@ -22,7 +22,7 @@ class GetServerResult: """ A collection of values returned by getServer. """ - def __init__(__self__, server_urn=None, boot_id=None, boot_script=None, commercial_range=None, datacenter=None, enabled_public_vnis=None, enabled_vrack_aggregation_vnis=None, enabled_vrack_vnis=None, id=None, ip=None, ips=None, link_speed=None, monitoring=None, name=None, os=None, professional_use=None, rack=None, rescue_mail=None, reverse=None, root_device=None, server_id=None, service_name=None, state=None, support_level=None, vnis=None): + def __init__(__self__, server_urn=None, boot_id=None, boot_script=None, commercial_range=None, datacenter=None, display_name=None, enabled_public_vnis=None, enabled_vrack_aggregation_vnis=None, enabled_vrack_vnis=None, id=None, ip=None, ips=None, link_speed=None, monitoring=None, name=None, os=None, professional_use=None, rack=None, rescue_mail=None, reverse=None, root_device=None, server_id=None, service_name=None, state=None, support_level=None, vnis=None): if server_urn and not isinstance(server_urn, str): raise TypeError("Expected argument 'server_urn' to be a str") pulumi.set(__self__, "server_urn", server_urn) @@ -38,6 +38,9 @@ def __init__(__self__, server_urn=None, boot_id=None, boot_script=None, commerci if datacenter and not isinstance(datacenter, str): raise TypeError("Expected argument 'datacenter' to be a str") pulumi.set(__self__, "datacenter", datacenter) + if display_name and not isinstance(display_name, str): + raise TypeError("Expected argument 'display_name' to be a str") + pulumi.set(__self__, "display_name", display_name) if enabled_public_vnis and not isinstance(enabled_public_vnis, list): raise TypeError("Expected argument 'enabled_public_vnis' to be a list") pulumi.set(__self__, "enabled_public_vnis", enabled_public_vnis) @@ -111,7 +114,7 @@ def server_urn(self) -> str: @pulumi.getter(name="bootId") def boot_id(self) -> int: """ - boot id of the server + Boot id of the server """ return pulumi.get(self, "boot_id") @@ -119,7 +122,7 @@ def boot_id(self) -> int: @pulumi.getter(name="bootScript") def boot_script(self) -> str: """ - boot script of the server + Boot script of the server """ return pulumi.get(self, "boot_script") @@ -127,7 +130,7 @@ def boot_script(self) -> str: @pulumi.getter(name="commercialRange") def commercial_range(self) -> str: """ - dedicated server commercial range + Dedicated server commercial range """ return pulumi.get(self, "commercial_range") @@ -135,10 +138,18 @@ def commercial_range(self) -> str: @pulumi.getter def datacenter(self) -> str: """ - dedicated datacenter localisation (bhs1,bhs2,...) + Dedicated datacenter localisation (bhs1,bhs2,...) """ return pulumi.get(self, "datacenter") + @property + @pulumi.getter(name="displayName") + def display_name(self) -> str: + """ + Dedicated server display name + """ + return pulumi.get(self, "display_name") + @property @pulumi.getter(name="enabledPublicVnis") def enabled_public_vnis(self) -> Sequence[str]: @@ -175,7 +186,7 @@ def id(self) -> str: @pulumi.getter def ip(self) -> str: """ - dedicated server ip (IPv4) + Dedicated server ip (IPv4) """ return pulumi.get(self, "ip") @@ -183,7 +194,7 @@ def ip(self) -> str: @pulumi.getter def ips(self) -> Sequence[str]: """ - dedicated server ip blocks + Dedicated server ip blocks """ return pulumi.get(self, "ips") @@ -191,7 +202,7 @@ def ips(self) -> Sequence[str]: @pulumi.getter(name="linkSpeed") def link_speed(self) -> int: """ - link speed of the server + Link speed of the server """ return pulumi.get(self, "link_speed") @@ -231,7 +242,7 @@ def professional_use(self) -> bool: @pulumi.getter def rack(self) -> str: """ - rack id of the server + Rack id of the server """ return pulumi.get(self, "rack") @@ -239,7 +250,7 @@ def rack(self) -> str: @pulumi.getter(name="rescueMail") def rescue_mail(self) -> str: """ - rescue mail of the server + Rescue mail of the server """ return pulumi.get(self, "rescue_mail") @@ -247,7 +258,7 @@ def rescue_mail(self) -> str: @pulumi.getter def reverse(self) -> str: """ - dedicated server reverse + Dedicated server reverse """ return pulumi.get(self, "reverse") @@ -255,7 +266,7 @@ def reverse(self) -> str: @pulumi.getter(name="rootDevice") def root_device(self) -> str: """ - root device of the server + Root device of the server """ return pulumi.get(self, "root_device") @@ -263,7 +274,7 @@ def root_device(self) -> str: @pulumi.getter(name="serverId") def server_id(self) -> int: """ - your server id + Server id """ return pulumi.get(self, "server_id") @@ -276,7 +287,7 @@ def service_name(self) -> str: @pulumi.getter def state(self) -> str: """ - error, hacked, hackedBlocked, ok + Error, hacked, hackedBlocked, ok """ return pulumi.get(self, "state") @@ -292,7 +303,7 @@ def support_level(self) -> str: @pulumi.getter def vnis(self) -> Sequence['outputs.GetServerVniResult']: """ - the list of Virtualnetworkinterface assiociated with this server + The list of Virtualnetworkinterface associated with this server """ return pulumi.get(self, "vnis") @@ -308,6 +319,7 @@ def __await__(self): boot_script=self.boot_script, commercial_range=self.commercial_range, datacenter=self.datacenter, + display_name=self.display_name, enabled_public_vnis=self.enabled_public_vnis, enabled_vrack_aggregation_vnis=self.enabled_vrack_aggregation_vnis, enabled_vrack_vnis=self.enabled_vrack_vnis, @@ -360,6 +372,7 @@ def get_server(service_name: Optional[str] = None, boot_script=pulumi.get(__ret__, 'boot_script'), commercial_range=pulumi.get(__ret__, 'commercial_range'), datacenter=pulumi.get(__ret__, 'datacenter'), + display_name=pulumi.get(__ret__, 'display_name'), enabled_public_vnis=pulumi.get(__ret__, 'enabled_public_vnis'), enabled_vrack_aggregation_vnis=pulumi.get(__ret__, 'enabled_vrack_aggregation_vnis'), enabled_vrack_vnis=pulumi.get(__ret__, 'enabled_vrack_vnis'), diff --git a/sdk/python/pulumi_ovh/ip/__init__.py b/sdk/python/pulumi_ovh/ip/__init__.py index 983dcb3a..d0177056 100644 --- a/sdk/python/pulumi_ovh/ip/__init__.py +++ b/sdk/python/pulumi_ovh/ip/__init__.py @@ -7,6 +7,7 @@ # Export this package's modules as members: from .get_service import * from .ip_service import * +from .move import * from .reverse import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_ovh/ip/_inputs.py b/sdk/python/pulumi_ovh/ip/_inputs.py index 7e55a615..7b67d304 100644 --- a/sdk/python/pulumi_ovh/ip/_inputs.py +++ b/sdk/python/pulumi_ovh/ip/_inputs.py @@ -17,6 +17,7 @@ 'IpServicePlanOptionArgs', 'IpServicePlanOptionConfigurationArgs', 'IpServiceRoutedToArgs', + 'MoveRoutedToArgs', ] @pulumi.input_type @@ -426,3 +427,25 @@ def service_name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "service_name", value) +@pulumi.input_type +class MoveRoutedToArgs: + def __init__(__self__, *, + service_name: pulumi.Input[str]): + """ + :param pulumi.Input[str] service_name: Name of the service to route the IP to. IP will be parked if this value is an empty string + """ + pulumi.set(__self__, "service_name", service_name) + + @property + @pulumi.getter(name="serviceName") + def service_name(self) -> pulumi.Input[str]: + """ + Name of the service to route the IP to. IP will be parked if this value is an empty string + """ + return pulumi.get(self, "service_name") + + @service_name.setter + def service_name(self, value: pulumi.Input[str]): + pulumi.set(self, "service_name", value) + + diff --git a/sdk/python/pulumi_ovh/ip/move.py b/sdk/python/pulumi_ovh/ip/move.py new file mode 100644 index 00000000..e0c3f2e0 --- /dev/null +++ b/sdk/python/pulumi_ovh/ip/move.py @@ -0,0 +1,506 @@ +# 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__ = ['MoveArgs', 'Move'] + +@pulumi.input_type +class MoveArgs: + def __init__(__self__, *, + ip: pulumi.Input[str], + routed_to: pulumi.Input['MoveRoutedToArgs'], + description: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a Move resource. + :param pulumi.Input[str] ip: IP block that we want to attach to a different service + :param pulumi.Input['MoveRoutedToArgs'] routed_to: Service to route the IP to. If null, the IP will be [parked](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/park~POST) + instead of [moved](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/move~POST) + :param pulumi.Input[str] description: Description attached to the IP + """ + pulumi.set(__self__, "ip", ip) + pulumi.set(__self__, "routed_to", routed_to) + if description is not None: + pulumi.set(__self__, "description", description) + + @property + @pulumi.getter + def ip(self) -> pulumi.Input[str]: + """ + IP block that we want to attach to a different service + """ + return pulumi.get(self, "ip") + + @ip.setter + def ip(self, value: pulumi.Input[str]): + pulumi.set(self, "ip", value) + + @property + @pulumi.getter(name="routedTo") + def routed_to(self) -> pulumi.Input['MoveRoutedToArgs']: + """ + Service to route the IP to. If null, the IP will be [parked](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/park~POST) + instead of [moved](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/move~POST) + """ + return pulumi.get(self, "routed_to") + + @routed_to.setter + def routed_to(self, value: pulumi.Input['MoveRoutedToArgs']): + pulumi.set(self, "routed_to", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Description attached to the IP + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + +@pulumi.input_type +class _MoveState: + def __init__(__self__, *, + can_be_terminated: Optional[pulumi.Input[bool]] = None, + country: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + ip: Optional[pulumi.Input[str]] = None, + organisation_id: Optional[pulumi.Input[str]] = None, + routed_to: Optional[pulumi.Input['MoveRoutedToArgs']] = None, + service_name: Optional[pulumi.Input[str]] = None, + task_start_date: Optional[pulumi.Input[str]] = None, + task_status: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering Move resources. + :param pulumi.Input[bool] can_be_terminated: Whether IP service can be terminated + :param pulumi.Input[str] country: Country + :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['MoveRoutedToArgs'] routed_to: Service to route the IP to. If null, the IP will be [parked](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/park~POST) + instead of [moved](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/move~POST) + :param pulumi.Input[str] service_name: Name of the service to route the IP to. IP will be parked if this value is an empty string + :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 + :param pulumi.Input[str] task_status: Status field of the current IP task that is in charge of changing the service the IP is attached to + :param pulumi.Input[str] type: Possible values for ip type + """ + if can_be_terminated is not None: + pulumi.set(__self__, "can_be_terminated", can_be_terminated) + if country is not None: + pulumi.set(__self__, "country", country) + if description is not None: + pulumi.set(__self__, "description", description) + if ip is not None: + pulumi.set(__self__, "ip", ip) + if organisation_id is not None: + pulumi.set(__self__, "organisation_id", organisation_id) + if routed_to is not None: + pulumi.set(__self__, "routed_to", routed_to) + if service_name is not None: + pulumi.set(__self__, "service_name", service_name) + if task_start_date is not None: + pulumi.set(__self__, "task_start_date", task_start_date) + if task_status is not None: + pulumi.set(__self__, "task_status", task_status) + if type is not None: + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter(name="canBeTerminated") + def can_be_terminated(self) -> Optional[pulumi.Input[bool]]: + """ + Whether IP service can be terminated + """ + return pulumi.get(self, "can_be_terminated") + + @can_be_terminated.setter + def can_be_terminated(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "can_be_terminated", value) + + @property + @pulumi.getter + def country(self) -> Optional[pulumi.Input[str]]: + """ + Country + """ + return pulumi.get(self, "country") + + @country.setter + def country(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "country", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Description attached to the IP + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def ip(self) -> Optional[pulumi.Input[str]]: + """ + IP block that we want to attach to a different service + """ + return pulumi.get(self, "ip") + + @ip.setter + def ip(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ip", value) + + @property + @pulumi.getter(name="organisationId") + def organisation_id(self) -> Optional[pulumi.Input[str]]: + """ + IP block organisation Id + """ + return pulumi.get(self, "organisation_id") + + @organisation_id.setter + def organisation_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "organisation_id", value) + + @property + @pulumi.getter(name="routedTo") + def routed_to(self) -> Optional[pulumi.Input['MoveRoutedToArgs']]: + """ + Service to route the IP to. If null, the IP will be [parked](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/park~POST) + instead of [moved](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/move~POST) + """ + return pulumi.get(self, "routed_to") + + @routed_to.setter + def routed_to(self, value: Optional[pulumi.Input['MoveRoutedToArgs']]): + pulumi.set(self, "routed_to", value) + + @property + @pulumi.getter(name="serviceName") + def service_name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the service to route the IP to. IP will be parked if this value is an empty string + """ + 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(name="taskStartDate") + def task_start_date(self) -> Optional[pulumi.Input[str]]: + """ + Starting date and time field of the current IP task that is in charge of changing the service the IP is attached to + """ + return pulumi.get(self, "task_start_date") + + @task_start_date.setter + def task_start_date(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "task_start_date", value) + + @property + @pulumi.getter(name="taskStatus") + def task_status(self) -> Optional[pulumi.Input[str]]: + """ + Status field of the current IP task that is in charge of changing the service the IP is attached to + """ + return pulumi.get(self, "task_status") + + @task_status.setter + def task_status(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "task_status", value) + + @property + @pulumi.getter + def type(self) -> Optional[pulumi.Input[str]]: + """ + Possible values for ip type + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "type", value) + + +class Move(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + 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, + __props__=None): + """ + Moves a given IP to a different service, or inversely, parks it if empty service is given + + ## Move IP `1.2.3.4` to service loadbalancer-XXXXX + + + ```python + import pulumi + import pulumi_ovh as ovh + + move_ip_to_load_balancer_xxxxx = ovh.ip.Move("moveIpToLoadBalancerXxxxx", + ip="1.2.3.4", + routed_to=ovh.ip.MoveRoutedToArgs( + service_name="loadbalancer-XXXXX", + )) + ``` + + + ## Park IP/Detach IP `1.2.3.4` from any service + + + ```python + import pulumi + import pulumi_ovh as ovh + + park_ip = ovh.ip.Move("parkIp", + ip="1.2.3.4", + routed_to=ovh.ip.MoveRoutedToArgs( + 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/%!B(MISSING)ip%!D(MISSING)/park~POST) + instead of [moved](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/move~POST) + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: MoveArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Moves a given IP to a different service, or inversely, parks it if empty service is given + + ## Move IP `1.2.3.4` to service loadbalancer-XXXXX + + + ```python + import pulumi + import pulumi_ovh as ovh + + move_ip_to_load_balancer_xxxxx = ovh.ip.Move("moveIpToLoadBalancerXxxxx", + ip="1.2.3.4", + routed_to=ovh.ip.MoveRoutedToArgs( + service_name="loadbalancer-XXXXX", + )) + ``` + + + ## Park IP/Detach IP `1.2.3.4` from any service + + + ```python + import pulumi + import pulumi_ovh as ovh + + park_ip = ovh.ip.Move("parkIp", + ip="1.2.3.4", + routed_to=ovh.ip.MoveRoutedToArgs( + service_name="", + )) + ``` + + + :param str resource_name: The name of the resource. + :param MoveArgs 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(MoveArgs, 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, + description: Optional[pulumi.Input[str]] = None, + ip: Optional[pulumi.Input[str]] = None, + routed_to: Optional[pulumi.Input[pulumi.InputType['MoveRoutedToArgs']]] = 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__ = MoveArgs.__new__(MoveArgs) + + __props__.__dict__["description"] = description + if ip is None and not opts.urn: + raise TypeError("Missing required property 'ip'") + __props__.__dict__["ip"] = ip + if routed_to is None and not opts.urn: + raise TypeError("Missing required property 'routed_to'") + __props__.__dict__["routed_to"] = routed_to + __props__.__dict__["can_be_terminated"] = None + __props__.__dict__["country"] = None + __props__.__dict__["organisation_id"] = None + __props__.__dict__["service_name"] = None + __props__.__dict__["task_start_date"] = None + __props__.__dict__["task_status"] = None + __props__.__dict__["type"] = None + super(Move, __self__).__init__( + 'ovh:Ip/move:Move', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + can_be_terminated: Optional[pulumi.Input[bool]] = None, + country: Optional[pulumi.Input[str]] = None, + 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, + service_name: Optional[pulumi.Input[str]] = None, + task_start_date: Optional[pulumi.Input[str]] = None, + task_status: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None) -> 'Move': + """ + Get an existing Move resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[bool] can_be_terminated: Whether IP service can be terminated + :param pulumi.Input[str] country: Country + :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/%!B(MISSING)ip%!D(MISSING)/park~POST) + instead of [moved](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/move~POST) + :param pulumi.Input[str] service_name: Name of the service to route the IP to. IP will be parked if this value is an empty string + :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 + :param pulumi.Input[str] task_status: Status field of the current IP task that is in charge of changing the service the IP is attached to + :param pulumi.Input[str] type: Possible values for ip type + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _MoveState.__new__(_MoveState) + + __props__.__dict__["can_be_terminated"] = can_be_terminated + __props__.__dict__["country"] = country + __props__.__dict__["description"] = description + __props__.__dict__["ip"] = ip + __props__.__dict__["organisation_id"] = organisation_id + __props__.__dict__["routed_to"] = routed_to + __props__.__dict__["service_name"] = service_name + __props__.__dict__["task_start_date"] = task_start_date + __props__.__dict__["task_status"] = task_status + __props__.__dict__["type"] = type + return Move(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="canBeTerminated") + def can_be_terminated(self) -> pulumi.Output[bool]: + """ + Whether IP service can be terminated + """ + return pulumi.get(self, "can_be_terminated") + + @property + @pulumi.getter + def country(self) -> pulumi.Output[str]: + """ + Country + """ + return pulumi.get(self, "country") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[str]: + """ + Description attached to the IP + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter + def ip(self) -> pulumi.Output[str]: + """ + IP block that we want to attach to a different service + """ + return pulumi.get(self, "ip") + + @property + @pulumi.getter(name="organisationId") + def organisation_id(self) -> pulumi.Output[str]: + """ + IP block organisation Id + """ + return pulumi.get(self, "organisation_id") + + @property + @pulumi.getter(name="routedTo") + def routed_to(self) -> pulumi.Output['outputs.MoveRoutedTo']: + """ + Service to route the IP to. If null, the IP will be [parked](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/park~POST) + instead of [moved](https://api.ovh.com/console/#/ip/%!B(MISSING)ip%!D(MISSING)/move~POST) + """ + return pulumi.get(self, "routed_to") + + @property + @pulumi.getter(name="serviceName") + def service_name(self) -> pulumi.Output[str]: + """ + Name of the service to route the IP to. IP will be parked if this value is an empty string + """ + return pulumi.get(self, "service_name") + + @property + @pulumi.getter(name="taskStartDate") + def task_start_date(self) -> pulumi.Output[str]: + """ + Starting date and time field of the current IP task that is in charge of changing the service the IP is attached to + """ + return pulumi.get(self, "task_start_date") + + @property + @pulumi.getter(name="taskStatus") + def task_status(self) -> pulumi.Output[str]: + """ + Status field of the current IP task that is in charge of changing the service the IP is attached to + """ + return pulumi.get(self, "task_status") + + @property + @pulumi.getter + def type(self) -> pulumi.Output[str]: + """ + Possible values for ip type + """ + return pulumi.get(self, "type") + diff --git a/sdk/python/pulumi_ovh/ip/outputs.py b/sdk/python/pulumi_ovh/ip/outputs.py index e54b486a..9b14d7c1 100644 --- a/sdk/python/pulumi_ovh/ip/outputs.py +++ b/sdk/python/pulumi_ovh/ip/outputs.py @@ -18,6 +18,7 @@ 'IpServicePlanOption', 'IpServicePlanOptionConfiguration', 'IpServiceRoutedTo', + 'MoveRoutedTo', 'GetServiceRoutedToResult', ] @@ -431,6 +432,41 @@ def service_name(self) -> Optional[str]: return pulumi.get(self, "service_name") +@pulumi.output_type +class MoveRoutedTo(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "serviceName": + suggest = "service_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in MoveRoutedTo. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + MoveRoutedTo.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + MoveRoutedTo.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + service_name: str): + """ + :param str service_name: Name of the service to route the IP to. IP will be parked if this value is an empty string + """ + pulumi.set(__self__, "service_name", service_name) + + @property + @pulumi.getter(name="serviceName") + def service_name(self) -> str: + """ + Name of the service to route the IP to. IP will be parked if this value is an empty string + """ + return pulumi.get(self, "service_name") + + @pulumi.output_type class GetServiceRoutedToResult(dict): def __init__(__self__, *,