From b2a0f836741bf9d60efaae189dbebe0dde4300f7 Mon Sep 17 00:00:00 2001 From: Aurelie Vache Date: Tue, 23 Apr 2024 10:25:12 +0200 Subject: [PATCH] Upgrade terraform-provider-ovh to v0.43.0 (#144) * make tfgen * make build_sdks --- .../pulumi-resource-ovh/bridge-metadata.json | 1 + provider/cmd/pulumi-resource-ovh/schema.json | 1081 ++++++++--- provider/go.mod | 8 +- provider/go.sum | 16 +- provider/resources.go | 3 + sdk/dotnet/CloudProject/Database.cs | 19 + sdk/dotnet/CloudProject/GetKubeOidc.cs | 69 + sdk/dotnet/CloudProject/KubeOidc.cs | 69 + .../CloudProjectDatabase/GetDatabase.cs | 7 + sdk/dotnet/CloudProjectDatabase/M3DbUser.cs | 6 +- .../CloudProjectDatabase/MongoDbUser.cs | 6 +- .../CloudProjectDatabase/OpensearchUser.cs | 6 +- .../CloudProjectDatabase/PostgresSqlUser.cs | 6 +- sdk/dotnet/CloudProjectDatabase/RedisUser.cs | 6 +- sdk/dotnet/CloudProjectDatabase/User.cs | 6 +- sdk/dotnet/Config/Config.cs | 28 +- .../GetServerSpecificationsNetwork.cs | 172 ++ .../Inputs/ServerInstallTaskDetailsArgs.cs | 26 +- .../Inputs/ServerInstallTaskDetailsGetArgs.cs | 26 +- .../ServerInstallTaskUserMetadataArgs.cs | 32 + .../ServerInstallTaskUserMetadataGetArgs.cs | 32 + ...ionsNetworkBandwidthInternetToOvhResult.cs | 29 + ...ionsNetworkBandwidthOvhToInternetResult.cs | 29 + ...ficationsNetworkBandwidthOvhToOvhResult.cs | 29 + ...verSpecificationsNetworkBandwidthResult.cs | 49 + ...pecificationsNetworkConnectionValResult.cs | 29 + ...sNetworkOlaAvailableModeInterfaceResult.cs | 42 + ...ificationsNetworkOlaAvailableModeResult.cs | 42 + ...GetServerSpecificationsNetworkOlaResult.cs | 42 + ...rSpecificationsNetworkRoutingIpv4Result.cs | 42 + ...rSpecificationsNetworkRoutingIpv6Result.cs | 42 + ...erverSpecificationsNetworkRoutingResult.cs | 35 + ...verSpecificationsNetworkSwitchingResult.cs | 27 + ...tionsNetworkTrafficInputQuotaSizeResult.cs | 29 + ...tionsNetworkTrafficInputQuotaUsedResult.cs | 29 + ...ionsNetworkTrafficOutputQuotaSizeResult.cs | 29 + ...ionsNetworkTrafficOutputQuotaUsedResult.cs | 29 + ...erverSpecificationsNetworkTrafficResult.cs | 63 + ...etServerSpecificationsNetworkVmacResult.cs | 27 + ...ecificationsNetworkVrackBandwidthResult.cs | 29 + ...tServerSpecificationsNetworkVrackResult.cs | 35 + .../Outputs/ServerInstallTaskDetails.cs | 28 +- .../Outputs/ServerInstallTaskUserMetadata.cs | 35 + sdk/dotnet/Dedicated/ServerInstallTask.cs | 190 +- sdk/dotnet/Me/GetInstallationTemplate.cs | 32 +- sdk/dotnet/Me/GetSshKey.cs | 4 + .../InstallationTemplateCustomizationArgs.cs | 8 +- ...nstallationTemplateCustomizationGetArgs.cs | 8 +- sdk/dotnet/Me/InstallationTemplate.cs | 86 +- .../Me/InstallationTemplatePartitionScheme.cs | 3 +- ...tionTemplatePartitionSchemeHardwareRaid.cs | 3 +- ...llationTemplatePartitionSchemePartition.cs | 3 +- ...InstallationTemplateCustomizationResult.cs | 9 +- .../InstallationTemplateCustomization.cs | 9 +- sdk/dotnet/Me/SshKey.cs | 2 + sdk/dotnet/Provider.cs | 40 +- sdk/dotnet/Vrack/DedicatedServer.cs | 6 +- sdk/dotnet/Vrack/DedicatedServerInterface.cs | 5 +- sdk/go/ovh/cloudproject/database.go | 28 +- sdk/go/ovh/cloudproject/getKubeOidc.go | 70 +- sdk/go/ovh/cloudproject/kubeOidc.go | 108 +- .../ovh/cloudprojectdatabase/getDatabase.go | 7 + sdk/go/ovh/cloudprojectdatabase/m3dbUser.go | 12 +- .../ovh/cloudprojectdatabase/mongoDbUser.go | 12 +- .../cloudprojectdatabase/opensearchUser.go | 12 +- .../cloudprojectdatabase/postgresSqlUser.go | 12 +- sdk/go/ovh/cloudprojectdatabase/redisUser.go | 12 +- sdk/go/ovh/cloudprojectdatabase/user.go | 12 +- sdk/go/ovh/config/config.go | 18 +- .../getServerSpecificationsNetwork.go | 177 ++ sdk/go/ovh/dedicated/pulumiTypes.go | 1621 ++++++++++++++++- sdk/go/ovh/dedicated/serverInstallTask.go | 190 +- sdk/go/ovh/me/getInstallationTemplate.go | 44 +- sdk/go/ovh/me/getSshKey.go | 2 + sdk/go/ovh/me/installationTemplate.go | 127 +- .../me/installationTemplatePartitionScheme.go | 3 +- ...tionTemplatePartitionSchemeHardwareRaid.go | 3 +- ...llationTemplatePartitionSchemePartition.go | 3 +- sdk/go/ovh/me/pulumiTypes.go | 56 +- sdk/go/ovh/me/sshKey.go | 38 + sdk/go/ovh/provider.go | 54 +- sdk/go/ovh/vrack/dedicatedServer.go | 6 +- sdk/go/ovh/vrack/dedicatedServerInterface.go | 5 +- sdk/nodejs/cloudproject/database.ts | 15 + sdk/nodejs/cloudproject/getKubeOidc.ts | 63 + sdk/nodejs/cloudproject/kubeOidc.ts | 63 + .../cloudprojectdatabase/getDatabase.ts | 4 + sdk/nodejs/cloudprojectdatabase/m3dbUser.ts | 6 +- .../cloudprojectdatabase/mongoDbUser.ts | 6 +- .../cloudprojectdatabase/opensearchUser.ts | 6 +- .../cloudprojectdatabase/postgresSqlUser.ts | 6 +- sdk/nodejs/cloudprojectdatabase/redisUser.ts | 6 +- sdk/nodejs/cloudprojectdatabase/user.ts | 6 +- sdk/nodejs/config/vars.ts | 30 +- .../getServerSpecificationsNetwork.ts | 113 ++ sdk/nodejs/dedicated/index.ts | 5 + sdk/nodejs/dedicated/serverInstallTask.ts | 134 +- sdk/nodejs/me/getInstallationTemplate.ts | 22 +- sdk/nodejs/me/getSshKey.ts | 4 + sdk/nodejs/me/installationTemplate.ts | 82 +- .../me/installationTemplatePartitionScheme.ts | 3 +- ...tionTemplatePartitionSchemeHardwareRaid.ts | 3 +- ...llationTemplatePartitionSchemePartition.ts | 3 +- sdk/nodejs/me/sshKey.ts | 20 + sdk/nodejs/provider.ts | 34 +- sdk/nodejs/tsconfig.json | 1 + sdk/nodejs/types/input.ts | 43 +- sdk/nodejs/types/output.ts | 253 ++- sdk/nodejs/vrack/dedicatedServer.ts | 6 +- sdk/nodejs/vrack/dedicatedServerInterface.ts | 5 +- .../pulumi_ovh/cloudproject/database.py | 49 + .../pulumi_ovh/cloudproject/get_kube_oidc.py | 35 + .../pulumi_ovh/cloudproject/kube_oidc.py | 91 + .../cloudprojectdatabase/get_database.py | 15 +- .../cloudprojectdatabase/m3_db_user.py | 14 +- .../cloudprojectdatabase/mongo_db_user.py | 14 +- .../cloudprojectdatabase/opensearch_user.py | 14 +- .../cloudprojectdatabase/postgres_sql_user.py | 14 +- .../cloudprojectdatabase/redis_user.py | 14 +- .../pulumi_ovh/cloudprojectdatabase/user.py | 14 +- sdk/python/pulumi_ovh/config/__init__.pyi | 18 +- sdk/python/pulumi_ovh/config/vars.py | 22 +- sdk/python/pulumi_ovh/dedicated/__init__.py | 1 + sdk/python/pulumi_ovh/dedicated/_inputs.py | 110 +- .../get_server_specifications_network.py | 210 +++ sdk/python/pulumi_ovh/dedicated/outputs.py | 699 ++++++- .../dedicated/server_install_task.py | 271 ++- sdk/python/pulumi_ovh/me/_inputs.py | 32 +- .../me/get_installation_template.py | 61 +- sdk/python/pulumi_ovh/me/get_ssh_key.py | 4 + .../pulumi_ovh/me/installation_template.py | 217 +-- .../installation_template_partition_scheme.py | 10 +- ...template_partition_scheme_hardware_raid.py | 10 +- ...ion_template_partition_scheme_partition.py | 10 +- sdk/python/pulumi_ovh/me/outputs.py | 43 +- sdk/python/pulumi_ovh/me/ssh_key.py | 49 + sdk/python/pulumi_ovh/provider.py | 88 +- .../pulumi_ovh/vrack/dedicated_server.py | 12 +- .../vrack/dedicated_server_interface.py | 10 +- 139 files changed, 7057 insertions(+), 1471 deletions(-) create mode 100644 sdk/dotnet/Dedicated/GetServerSpecificationsNetwork.cs create mode 100644 sdk/dotnet/Dedicated/Inputs/ServerInstallTaskUserMetadataArgs.cs create mode 100644 sdk/dotnet/Dedicated/Inputs/ServerInstallTaskUserMetadataGetArgs.cs create mode 100644 sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkBandwidthInternetToOvhResult.cs create mode 100644 sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkBandwidthOvhToInternetResult.cs create mode 100644 sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkBandwidthOvhToOvhResult.cs create mode 100644 sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkBandwidthResult.cs create mode 100644 sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkConnectionValResult.cs create mode 100644 sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkOlaAvailableModeInterfaceResult.cs create mode 100644 sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkOlaAvailableModeResult.cs create mode 100644 sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkOlaResult.cs create mode 100644 sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkRoutingIpv4Result.cs create mode 100644 sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkRoutingIpv6Result.cs create mode 100644 sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkRoutingResult.cs create mode 100644 sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkSwitchingResult.cs create mode 100644 sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkTrafficInputQuotaSizeResult.cs create mode 100644 sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkTrafficInputQuotaUsedResult.cs create mode 100644 sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkTrafficOutputQuotaSizeResult.cs create mode 100644 sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkTrafficOutputQuotaUsedResult.cs create mode 100644 sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkTrafficResult.cs create mode 100644 sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkVmacResult.cs create mode 100644 sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkVrackBandwidthResult.cs create mode 100644 sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkVrackResult.cs create mode 100644 sdk/dotnet/Dedicated/Outputs/ServerInstallTaskUserMetadata.cs create mode 100644 sdk/go/ovh/dedicated/getServerSpecificationsNetwork.go create mode 100644 sdk/nodejs/dedicated/getServerSpecificationsNetwork.ts create mode 100644 sdk/python/pulumi_ovh/dedicated/get_server_specifications_network.py diff --git a/provider/cmd/pulumi-resource-ovh/bridge-metadata.json b/provider/cmd/pulumi-resource-ovh/bridge-metadata.json index 8ee118af..c06e7a24 100644 --- a/provider/cmd/pulumi-resource-ovh/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-ovh/bridge-metadata.json @@ -162,6 +162,7 @@ "ovh:Dedicated/getNasHA:getNasHA": 0, "ovh:Dedicated/getServerBoots:getServerBoots": 0, "ovh:Dedicated/getServerSpecificationsHardware:getServerSpecificationsHardware": 1, + "ovh:Dedicated/getServerSpecificationsNetwork:getServerSpecificationsNetwork": 1, "ovh:Domain/getZone:getZone": 0, "ovh:Domain/getZoneDNSSec:getZoneDNSSec": 1, "ovh:Hosting/getPrivateDatabase:getPrivateDatabase": 0, diff --git a/provider/cmd/pulumi-resource-ovh/schema.json b/provider/cmd/pulumi-resource-ovh/schema.json index a0480b1a..d42ebcd4 100644 --- a/provider/cmd/pulumi-resource-ovh/schema.json +++ b/provider/cmd/pulumi-resource-ovh/schema.json @@ -63,7 +63,7 @@ "variables": { "applicationKey": { "type": "string", - "description": "The OVH API Application Key.\n", + "description": "The OVH API Application Key\n", "defaultInfo": { "environment": [ "OVH_APPLICATION_KEY" @@ -72,7 +72,7 @@ }, "applicationSecret": { "type": "string", - "description": "The OVH API Application Secret.\n", + "description": "The OVH API Application Secret\n", "defaultInfo": { "environment": [ "OVH_APPLICATION_SECRET" @@ -80,9 +80,17 @@ }, "secret": true }, + "clientId": { + "type": "string", + "description": "OAuth 2.0 application's ID\n" + }, + "clientSecret": { + "type": "string", + "description": "OAuth 2.0 application's secret\n" + }, "consumerKey": { "type": "string", - "description": "The OVH API Consumer key.\n", + "description": "The OVH API Consumer Key\n", "defaultInfo": { "environment": [ "OVH_CONSUMER_KEY" @@ -91,7 +99,7 @@ }, "endpoint": { "type": "string", - "description": "The OVH API endpoint to target (ex: \"ovh-eu\").\n", + "description": "The OVH API endpoint to target (ex: \"ovh-eu\")\n", "defaultInfo": { "environment": [ "OVH_ENDPOINT" @@ -2027,19 +2035,15 @@ "description": "Disk group id.\n", "willReplaceOnChanges": true }, - "installSqlServer": { - "type": "boolean", - "description": "set to true to install sql server (Windows template only).\n", - "willReplaceOnChanges": true - }, "language": { "type": "string", - "description": "language.\n", + "description": "Deprecated, will be removed in next release.\n", + "deprecationMessage": "This field is deprecated and will be removed in a future release", "willReplaceOnChanges": true }, "noRaid": { "type": "boolean", - "description": "set to true to disable RAID.\n", + "description": "Set to true to disable RAID.\n", "willReplaceOnChanges": true }, "postInstallationScriptLink": { @@ -2057,19 +2061,32 @@ "description": "soft raid devices.\n", "willReplaceOnChanges": true }, - "sshKeyName": { - "type": "string", - "description": "Name of the ssh key that should be installed. Password login will be disabled.\n", - "willReplaceOnChanges": true - }, "useSpla": { "type": "boolean", - "description": "set to true to use SPLA.\n", + "description": "Deprecated, will be removed in next release.\n\nThe `user_metadata` block supports many arguments, here is a non-exhaustive list depending on the OS:\n\n-[see OS questions](https://help.ovhcloud.com/csm/en-dedicated-servers-api-os-installation?id=kb_article_view\u0026sysparm_article=KB0061951#os-questions)\n\n-[see api](https://eu.api.ovh.com/console-preview/?section=%2Fdedicated%2FinstallationTemplate\u0026branch=v1#get-/dedicated/installationTemplate/-templateName-)\n\n-[see documentation](https://help.ovhcloud.com/csm/en-ie-dedicated-servers-api-os-installation?id=kb_article_view\u0026sysparm_article=KB0061950#create-an-os-installation-task) to get more information\n", + "deprecationMessage": "This field is deprecated and will be removed in a future release", "willReplaceOnChanges": true } }, "type": "object" }, + "ovh:Dedicated/ServerInstallTaskUserMetadata:ServerInstallTaskUserMetadata": { + "properties": { + "key": { + "type": "string", + "description": "The key for the user_metadata\n" + }, + "value": { + "type": "string", + "description": "The value for the user_metadata\n" + } + }, + "type": "object", + "required": [ + "key", + "value" + ] + }, "ovh:Dedicated/ServerNetworkingInterface:ServerNetworkingInterface": { "properties": { "macs": { @@ -2082,17 +2099,528 @@ }, "type": { "type": "string", - "description": "Interface type\n", - "willReplaceOnChanges": true + "description": "Interface type\n", + "willReplaceOnChanges": true + } + }, + "type": "object", + "required": [ + "macs", + "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:Dedicated/getServerSpecificationsNetworkBandwidth:getServerSpecificationsNetworkBandwidth": { + "properties": { + "internetToOvh": { + "$ref": "#/types/ovh:Dedicated/getServerSpecificationsNetworkBandwidthInternetToOvh:getServerSpecificationsNetworkBandwidthInternetToOvh", + "description": "Bandwidth limitation Internet to OVH\n" + }, + "ovhToInternet": { + "$ref": "#/types/ovh:Dedicated/getServerSpecificationsNetworkBandwidthOvhToInternet:getServerSpecificationsNetworkBandwidthOvhToInternet", + "description": "Bandwidth limitation OVH to Internet\n" + }, + "ovhToOvh": { + "$ref": "#/types/ovh:Dedicated/getServerSpecificationsNetworkBandwidthOvhToOvh:getServerSpecificationsNetworkBandwidthOvhToOvh", + "description": "Bandwidth limitation OVH to OVH\n" + }, + "type": { + "type": "string", + "description": "Bandwidth offer type (included┃standard)\n" + } + }, + "type": "object", + "required": [ + "internetToOvh", + "ovhToInternet", + "ovhToOvh", + "type" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "ovh:Dedicated/getServerSpecificationsNetworkBandwidthInternetToOvh:getServerSpecificationsNetworkBandwidthInternetToOvh": { + "properties": { + "unit": { + "type": "string" + }, + "value": { + "type": "number" + } + }, + "type": "object", + "required": [ + "unit", + "value" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "ovh:Dedicated/getServerSpecificationsNetworkBandwidthOvhToInternet:getServerSpecificationsNetworkBandwidthOvhToInternet": { + "properties": { + "unit": { + "type": "string" + }, + "value": { + "type": "number" + } + }, + "type": "object", + "required": [ + "unit", + "value" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "ovh:Dedicated/getServerSpecificationsNetworkBandwidthOvhToOvh:getServerSpecificationsNetworkBandwidthOvhToOvh": { + "properties": { + "unit": { + "type": "string" + }, + "value": { + "type": "number" + } + }, + "type": "object", + "required": [ + "unit", + "value" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "ovh:Dedicated/getServerSpecificationsNetworkConnectionVal:getServerSpecificationsNetworkConnectionVal": { + "properties": { + "unit": { + "type": "string" + }, + "value": { + "type": "number" + } + }, + "type": "object", + "required": [ + "unit", + "value" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "ovh:Dedicated/getServerSpecificationsNetworkOla:getServerSpecificationsNetworkOla": { + "properties": { + "available": { + "type": "boolean", + "description": "Is the OLA feature available\n" + }, + "availableModes": { + "type": "array", + "items": { + "$ref": "#/types/ovh:Dedicated/getServerSpecificationsNetworkOlaAvailableMode:getServerSpecificationsNetworkOlaAvailableMode" + }, + "description": "Supported modes\n" + }, + "supportedModes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Supported modes (DEPRECATED)\n" + } + }, + "type": "object", + "required": [ + "available", + "availableModes", + "supportedModes" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "ovh:Dedicated/getServerSpecificationsNetworkOlaAvailableMode:getServerSpecificationsNetworkOlaAvailableMode": { + "properties": { + "default": { + "type": "boolean", + "description": "Whether it is the default configuration of the server\n" + }, + "interfaces": { + "type": "array", + "items": { + "$ref": "#/types/ovh:Dedicated/getServerSpecificationsNetworkOlaAvailableModeInterface:getServerSpecificationsNetworkOlaAvailableModeInterface" + }, + "description": "Interface layout\n" + }, + "name": { + "type": "string", + "description": "Switch name\n" + } + }, + "type": "object", + "required": [ + "default", + "interfaces", + "name" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "ovh:Dedicated/getServerSpecificationsNetworkOlaAvailableModeInterface:getServerSpecificationsNetworkOlaAvailableModeInterface": { + "properties": { + "aggregation": { + "type": "boolean", + "description": "Interface aggregation status\n" + }, + "count": { + "type": "number", + "description": "Interface count\n" + }, + "type": { + "type": "string", + "description": "Bandwidth offer type (included┃standard)\n" + } + }, + "type": "object", + "required": [ + "aggregation", + "count", + "type" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "ovh:Dedicated/getServerSpecificationsNetworkRouting:getServerSpecificationsNetworkRouting": { + "properties": { + "ipv4": { + "$ref": "#/types/ovh:Dedicated/getServerSpecificationsNetworkRoutingIpv4:getServerSpecificationsNetworkRoutingIpv4", + "description": "Ipv4 routing details\n" + }, + "ipv6": { + "$ref": "#/types/ovh:Dedicated/getServerSpecificationsNetworkRoutingIpv6:getServerSpecificationsNetworkRoutingIpv6", + "description": "Ipv6 routing details\n" + } + }, + "type": "object", + "required": [ + "ipv4", + "ipv6" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "ovh:Dedicated/getServerSpecificationsNetworkRoutingIpv4:getServerSpecificationsNetworkRoutingIpv4": { + "properties": { + "gateway": { + "type": "string", + "description": "Server gateway\n" + }, + "ip": { + "type": "string", + "description": "Server main IP\n" + }, + "network": { + "type": "string", + "description": "Server network\n" + } + }, + "type": "object", + "required": [ + "gateway", + "ip", + "network" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "ovh:Dedicated/getServerSpecificationsNetworkRoutingIpv6:getServerSpecificationsNetworkRoutingIpv6": { + "properties": { + "gateway": { + "type": "string", + "description": "Server gateway\n" + }, + "ip": { + "type": "string", + "description": "Server main IP\n" + }, + "network": { + "type": "string", + "description": "Server network\n" + } + }, + "type": "object", + "required": [ + "gateway", + "ip", + "network" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "ovh:Dedicated/getServerSpecificationsNetworkSwitching:getServerSpecificationsNetworkSwitching": { + "properties": { + "name": { + "type": "string", + "description": "Switch name\n" + } + }, + "type": "object", + "required": [ + "name" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "ovh:Dedicated/getServerSpecificationsNetworkTraffic:getServerSpecificationsNetworkTraffic": { + "properties": { + "inputQuotaSize": { + "$ref": "#/types/ovh:Dedicated/getServerSpecificationsNetworkTrafficInputQuotaSize:getServerSpecificationsNetworkTrafficInputQuotaSize", + "description": "Monthly input traffic quota allowed\n" + }, + "inputQuotaUsed": { + "$ref": "#/types/ovh:Dedicated/getServerSpecificationsNetworkTrafficInputQuotaUsed:getServerSpecificationsNetworkTrafficInputQuotaUsed", + "description": "Monthly input traffic consumed this month\n" + }, + "isThrottled": { + "type": "boolean", + "description": "Whether bandwidth is throttleted for being over quota\n" + }, + "outputQuotaSize": { + "$ref": "#/types/ovh:Dedicated/getServerSpecificationsNetworkTrafficOutputQuotaSize:getServerSpecificationsNetworkTrafficOutputQuotaSize", + "description": "Monthly output traffic quota allowed\n" + }, + "outputQuotaUsed": { + "$ref": "#/types/ovh:Dedicated/getServerSpecificationsNetworkTrafficOutputQuotaUsed:getServerSpecificationsNetworkTrafficOutputQuotaUsed", + "description": "Monthly output traffic consumed this month\n" + }, + "resetQuotaDate": { + "type": "string", + "description": "Next reset quota date for traffic counter\n" } }, "type": "object", "required": [ - "macs", - "type" - ] + "inputQuotaSize", + "inputQuotaUsed", + "isThrottled", + "outputQuotaSize", + "outputQuotaUsed", + "resetQuotaDate" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } }, - "ovh:Dedicated/getServerSpecificationsHardwareDefaultHardwareRaidSize:getServerSpecificationsHardwareDefaultHardwareRaidSize": { + "ovh:Dedicated/getServerSpecificationsNetworkTrafficInputQuotaSize:getServerSpecificationsNetworkTrafficInputQuotaSize": { "properties": { "unit": { "type": "string" @@ -2112,51 +2640,19 @@ } } }, - "ovh:Dedicated/getServerSpecificationsHardwareDiskGroup:getServerSpecificationsHardwareDiskGroup": { + "ovh:Dedicated/getServerSpecificationsNetworkTrafficInputQuotaUsed:getServerSpecificationsNetworkTrafficInputQuotaUsed": { "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" + "unit": { + "type": "string" }, - "raidController": { - "type": "string", - "description": "Raid controller, if any, managing this group of disks\n" + "value": { + "type": "number" } }, "type": "object", "required": [ - "defaultHardwareRaidSize", - "defaultHardwareRaidType", - "description", - "diskGroupId", - "diskSize", - "diskType", - "numberOfDisks", - "raidController" + "unit", + "value" ], "language": { "nodejs": { @@ -2164,7 +2660,7 @@ } } }, - "ovh:Dedicated/getServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSize:getServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSize": { + "ovh:Dedicated/getServerSpecificationsNetworkTrafficOutputQuotaSize:getServerSpecificationsNetworkTrafficOutputQuotaSize": { "properties": { "unit": { "type": "string" @@ -2184,7 +2680,7 @@ } } }, - "ovh:Dedicated/getServerSpecificationsHardwareDiskGroupDiskSize:getServerSpecificationsHardwareDiskGroupDiskSize": { + "ovh:Dedicated/getServerSpecificationsNetworkTrafficOutputQuotaUsed:getServerSpecificationsNetworkTrafficOutputQuotaUsed": { "properties": { "unit": { "type": "string" @@ -2204,21 +2700,16 @@ } } }, - "ovh:Dedicated/getServerSpecificationsHardwareExpansionCard:getServerSpecificationsHardwareExpansionCard": { + "ovh:Dedicated/getServerSpecificationsNetworkVmac:getServerSpecificationsNetworkVmac": { "properties": { - "description": { - "type": "string", - "description": "Expansion card description\n" - }, - "type": { - "type": "string", - "description": "Expansion card type enum\n" + "supported": { + "type": "boolean", + "description": "Whether server is compatible vmac\n" } }, "type": "object", "required": [ - "description", - "type" + "supported" ], "language": { "nodejs": { @@ -2226,19 +2717,21 @@ } } }, - "ovh:Dedicated/getServerSpecificationsHardwareMemorySize:getServerSpecificationsHardwareMemorySize": { + "ovh:Dedicated/getServerSpecificationsNetworkVrack:getServerSpecificationsNetworkVrack": { "properties": { - "unit": { - "type": "string" + "bandwidth": { + "$ref": "#/types/ovh:Dedicated/getServerSpecificationsNetworkVrackBandwidth:getServerSpecificationsNetworkVrackBandwidth", + "description": "vrack bandwidth limitation\n" }, - "value": { - "type": "number" + "type": { + "type": "string", + "description": "Bandwidth offer type (included┃standard)\n" } }, "type": "object", "required": [ - "unit", - "value" + "bandwidth", + "type" ], "language": { "nodejs": { @@ -2246,7 +2739,7 @@ } } }, - "ovh:Dedicated/getServerSpecificationsHardwareUsbKey:getServerSpecificationsHardwareUsbKey": { + "ovh:Dedicated/getServerSpecificationsNetworkVrackBandwidth:getServerSpecificationsNetworkVrackBandwidth": { "properties": { "unit": { "type": "string" @@ -3333,14 +3826,10 @@ "type": "string", "description": "indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'.\n" }, - "rating": { - "type": "integer", - "description": "Rating.\n", - "deprecationMessage": "field is not used anymore" - }, "sshKeyName": { "type": "string", - "description": "Name of the ssh key that should be installed. Password login will be disabled.\n" + "description": "Deprecated.\n", + "deprecationMessage": "This field is deprecated and will be removed in a future release." } }, "type": "object" @@ -3359,14 +3848,10 @@ "type": "string", "description": "indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'.\n" }, - "rating": { - "type": "integer", - "description": "(DEPRECATED) Rating.\n", - "deprecationMessage": "field is not used anymore" - }, "sshKeyName": { "type": "string", - "description": "Name of the ssh key that should be installed. Password login will be disabled.\n" + "description": "Name of the ssh key that should be installed. Password login will be disabled. Deprecated, will be removed in next release, use userMetada instead.\n", + "deprecationMessage": "This field will be removed from the API, please use `userMetadata` instead." } }, "type": "object", @@ -3374,7 +3859,6 @@ "customHostname", "postInstallationScriptLink", "postInstallationScriptReturn", - "rating", "sshKeyName" ], "language": { @@ -4749,26 +5233,34 @@ "properties": { "applicationKey": { "type": "string", - "description": "The OVH API Application Key.\n" + "description": "The OVH API Application Key\n" }, "applicationSecret": { "type": "string", - "description": "The OVH API Application Secret.\n", + "description": "The OVH API Application Secret\n", "secret": true }, + "clientId": { + "type": "string", + "description": "OAuth 2.0 application's ID\n" + }, + "clientSecret": { + "type": "string", + "description": "OAuth 2.0 application's secret\n" + }, "consumerKey": { "type": "string", - "description": "The OVH API Consumer key.\n" + "description": "The OVH API Consumer Key\n" }, "endpoint": { "type": "string", - "description": "The OVH API endpoint to target (ex: \"ovh-eu\").\n" + "description": "The OVH API endpoint to target (ex: \"ovh-eu\")\n" } }, "inputProperties": { "applicationKey": { "type": "string", - "description": "The OVH API Application Key.\n", + "description": "The OVH API Application Key\n", "defaultInfo": { "environment": [ "OVH_APPLICATION_KEY" @@ -4777,7 +5269,7 @@ }, "applicationSecret": { "type": "string", - "description": "The OVH API Application Secret.\n", + "description": "The OVH API Application Secret\n", "defaultInfo": { "environment": [ "OVH_APPLICATION_SECRET" @@ -4785,9 +5277,17 @@ }, "secret": true }, + "clientId": { + "type": "string", + "description": "OAuth 2.0 application's ID\n" + }, + "clientSecret": { + "type": "string", + "description": "OAuth 2.0 application's secret\n" + }, "consumerKey": { "type": "string", - "description": "The OVH API Consumer key.\n", + "description": "The OVH API Consumer Key\n", "defaultInfo": { "environment": [ "OVH_CONSUMER_KEY" @@ -4796,7 +5296,7 @@ }, "endpoint": { "type": "string", - "description": "The OVH API endpoint to target (ex: \"ovh-eu\").\n", + "description": "The OVH API endpoint to target (ex: \"ovh-eu\")\n", "defaultInfo": { "environment": [ "OVH_ENDPOINT" @@ -5506,7 +6006,7 @@ } }, "ovh:CloudProject/database:Database": { - "description": "## Example Usage\n\nMinimum settings for each engine (region choice is up to the user):\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst cassandradb = new ovh.cloudproject.Database(\"cassandradb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-cassandra\",\n engine: \"cassandra\",\n version: \"4.0\",\n plan: \"essential\",\n nodes: [\n {\n region: \"BHS\",\n },\n {\n region: \"BHS\",\n },\n {\n region: \"BHS\",\n },\n ],\n flavor: \"db1-4\",\n});\nconst kafkadb = new ovh.cloudproject.Database(\"kafkadb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-kafka\",\n engine: \"kafka\",\n version: \"3.4\",\n plan: \"business\",\n kafkaRestApi: true,\n nodes: [\n {\n region: \"DE\",\n },\n {\n region: \"DE\",\n },\n {\n region: \"DE\",\n },\n ],\n flavor: \"db1-4\",\n});\nconst m3db = new ovh.cloudproject.Database(\"m3db\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-m3db\",\n engine: \"m3db\",\n version: \"1.2\",\n plan: \"essential\",\n nodes: [{\n region: \"BHS\",\n }],\n flavor: \"db1-7\",\n});\nconst mongodb = new ovh.cloudproject.Database(\"mongodb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-mongodb\",\n engine: \"mongodb\",\n version: \"5.0\",\n plan: \"discovery\",\n nodes: [{\n region: \"GRA\",\n }],\n flavor: \"db1-2\",\n});\nconst mysqldb = new ovh.cloudproject.Database(\"mysqldb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-mysql\",\n engine: \"mysql\",\n version: \"8\",\n plan: \"essential\",\n nodes: [{\n region: \"SBG\",\n }],\n flavor: \"db1-4\",\n advancedConfiguration: {\n \"mysql.sql_mode\": \"ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES\",\n \"mysql.sql_require_primary_key\": \"true\",\n },\n});\nconst opensearchdb = new ovh.cloudproject.Database(\"opensearchdb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-opensearch\",\n engine: \"opensearch\",\n version: \"1\",\n plan: \"essential\",\n opensearchAclsEnabled: true,\n nodes: [{\n region: \"UK\",\n }],\n flavor: \"db1-4\",\n});\nconst pgsqldb = new ovh.cloudproject.Database(\"pgsqldb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-postgresql\",\n engine: \"postgresql\",\n version: \"14\",\n plan: \"essential\",\n nodes: [{\n region: \"WAW\",\n }],\n flavor: \"db1-4\",\n ipRestrictions: [\n {\n description: \"ip 1\",\n ip: \"178.97.6.0/24\",\n },\n {\n description: \"ip 2\",\n ip: \"178.97.7.0/24\",\n },\n ],\n});\nconst redisdb = new ovh.cloudproject.Database(\"redisdb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-redis\",\n engine: \"redis\",\n version: \"6.2\",\n plan: \"essential\",\n nodes: [{\n region: \"BHS\",\n }],\n flavor: \"db1-4\",\n});\nconst grafana = new ovh.cloudproject.Database(\"grafana\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-grafana\",\n engine: \"grafana\",\n version: \"9.1\",\n plan: \"essential\",\n nodes: [{\n region: \"GRA\",\n }],\n flavor: \"db1-4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ncassandradb = ovh.cloud_project.Database(\"cassandradb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-cassandra\",\n engine=\"cassandra\",\n version=\"4.0\",\n plan=\"essential\",\n nodes=[\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"BHS\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"BHS\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"BHS\",\n ),\n ],\n flavor=\"db1-4\")\nkafkadb = ovh.cloud_project.Database(\"kafkadb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-kafka\",\n engine=\"kafka\",\n version=\"3.4\",\n plan=\"business\",\n kafka_rest_api=True,\n nodes=[\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"DE\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"DE\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"DE\",\n ),\n ],\n flavor=\"db1-4\")\nm3db = ovh.cloud_project.Database(\"m3db\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-m3db\",\n engine=\"m3db\",\n version=\"1.2\",\n plan=\"essential\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"BHS\",\n )],\n flavor=\"db1-7\")\nmongodb = ovh.cloud_project.Database(\"mongodb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-mongodb\",\n engine=\"mongodb\",\n version=\"5.0\",\n plan=\"discovery\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"GRA\",\n )],\n flavor=\"db1-2\")\nmysqldb = ovh.cloud_project.Database(\"mysqldb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-mysql\",\n engine=\"mysql\",\n version=\"8\",\n plan=\"essential\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"SBG\",\n )],\n flavor=\"db1-4\",\n advanced_configuration={\n \"mysql.sql_mode\": \"ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES\",\n \"mysql.sql_require_primary_key\": \"true\",\n })\nopensearchdb = ovh.cloud_project.Database(\"opensearchdb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-opensearch\",\n engine=\"opensearch\",\n version=\"1\",\n plan=\"essential\",\n opensearch_acls_enabled=True,\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"UK\",\n )],\n flavor=\"db1-4\")\npgsqldb = ovh.cloud_project.Database(\"pgsqldb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-postgresql\",\n engine=\"postgresql\",\n version=\"14\",\n plan=\"essential\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"WAW\",\n )],\n flavor=\"db1-4\",\n ip_restrictions=[\n ovh.cloud_project.DatabaseIpRestrictionArgs(\n description=\"ip 1\",\n ip=\"178.97.6.0/24\",\n ),\n ovh.cloud_project.DatabaseIpRestrictionArgs(\n description=\"ip 2\",\n ip=\"178.97.7.0/24\",\n ),\n ])\nredisdb = ovh.cloud_project.Database(\"redisdb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-redis\",\n engine=\"redis\",\n version=\"6.2\",\n plan=\"essential\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"BHS\",\n )],\n flavor=\"db1-4\")\ngrafana = ovh.cloud_project.Database(\"grafana\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-grafana\",\n engine=\"grafana\",\n version=\"9.1\",\n plan=\"essential\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"GRA\",\n )],\n flavor=\"db1-4\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var cassandradb = new Ovh.CloudProject.Database(\"cassandradb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-cassandra\",\n Engine = \"cassandra\",\n Version = \"4.0\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n },\n Flavor = \"db1-4\",\n });\n\n var kafkadb = new Ovh.CloudProject.Database(\"kafkadb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-kafka\",\n Engine = \"kafka\",\n Version = \"3.4\",\n Plan = \"business\",\n KafkaRestApi = true,\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"DE\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"DE\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"DE\",\n },\n },\n Flavor = \"db1-4\",\n });\n\n var m3db = new Ovh.CloudProject.Database(\"m3db\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-m3db\",\n Engine = \"m3db\",\n Version = \"1.2\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n },\n Flavor = \"db1-7\",\n });\n\n var mongodb = new Ovh.CloudProject.Database(\"mongodb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-mongodb\",\n Engine = \"mongodb\",\n Version = \"5.0\",\n Plan = \"discovery\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"GRA\",\n },\n },\n Flavor = \"db1-2\",\n });\n\n var mysqldb = new Ovh.CloudProject.Database(\"mysqldb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-mysql\",\n Engine = \"mysql\",\n Version = \"8\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"SBG\",\n },\n },\n Flavor = \"db1-4\",\n AdvancedConfiguration = \n {\n { \"mysql.sql_mode\", \"ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES\" },\n { \"mysql.sql_require_primary_key\", \"true\" },\n },\n });\n\n var opensearchdb = new Ovh.CloudProject.Database(\"opensearchdb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-opensearch\",\n Engine = \"opensearch\",\n Version = \"1\",\n Plan = \"essential\",\n OpensearchAclsEnabled = true,\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"UK\",\n },\n },\n Flavor = \"db1-4\",\n });\n\n var pgsqldb = new Ovh.CloudProject.Database(\"pgsqldb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-postgresql\",\n Engine = \"postgresql\",\n Version = \"14\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"WAW\",\n },\n },\n Flavor = \"db1-4\",\n IpRestrictions = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseIpRestrictionArgs\n {\n Description = \"ip 1\",\n Ip = \"178.97.6.0/24\",\n },\n new Ovh.CloudProject.Inputs.DatabaseIpRestrictionArgs\n {\n Description = \"ip 2\",\n Ip = \"178.97.7.0/24\",\n },\n },\n });\n\n var redisdb = new Ovh.CloudProject.Database(\"redisdb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-redis\",\n Engine = \"redis\",\n Version = \"6.2\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n },\n Flavor = \"db1-4\",\n });\n\n var grafana = new Ovh.CloudProject.Database(\"grafana\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-grafana\",\n Engine = \"grafana\",\n Version = \"9.1\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"GRA\",\n },\n },\n Flavor = \"db1-4\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewDatabase(ctx, \"cassandradb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-cassandra\"),\n\t\t\tEngine: pulumi.String(\"cassandra\"),\n\t\t\tVersion: pulumi.String(\"4.0\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"kafkadb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-kafka\"),\n\t\t\tEngine: pulumi.String(\"kafka\"),\n\t\t\tVersion: pulumi.String(\"3.4\"),\n\t\t\tPlan: pulumi.String(\"business\"),\n\t\t\tKafkaRestApi: pulumi.Bool(true),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"DE\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"DE\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"DE\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"m3db\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-m3db\"),\n\t\t\tEngine: pulumi.String(\"m3db\"),\n\t\t\tVersion: pulumi.String(\"1.2\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-7\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"mongodb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-mongodb\"),\n\t\t\tEngine: pulumi.String(\"mongodb\"),\n\t\t\tVersion: pulumi.String(\"5.0\"),\n\t\t\tPlan: pulumi.String(\"discovery\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"GRA\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"mysqldb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-mysql\"),\n\t\t\tEngine: pulumi.String(\"mysql\"),\n\t\t\tVersion: pulumi.String(\"8\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"SBG\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t\tAdvancedConfiguration: pulumi.StringMap{\n\t\t\t\t\"mysql.sql_mode\": pulumi.String(\"ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES\"),\n\t\t\t\t\"mysql.sql_require_primary_key\": pulumi.String(\"true\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"opensearchdb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-opensearch\"),\n\t\t\tEngine: pulumi.String(\"opensearch\"),\n\t\t\tVersion: pulumi.String(\"1\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tOpensearchAclsEnabled: pulumi.Bool(true),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"UK\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"pgsqldb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-postgresql\"),\n\t\t\tEngine: pulumi.String(\"postgresql\"),\n\t\t\tVersion: pulumi.String(\"14\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"WAW\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t\tIpRestrictions: cloudproject.DatabaseIpRestrictionArray{\n\t\t\t\t\u0026cloudproject.DatabaseIpRestrictionArgs{\n\t\t\t\t\tDescription: pulumi.String(\"ip 1\"),\n\t\t\t\t\tIp: pulumi.String(\"178.97.6.0/24\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseIpRestrictionArgs{\n\t\t\t\t\tDescription: pulumi.String(\"ip 2\"),\n\t\t\t\t\tIp: pulumi.String(\"178.97.7.0/24\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"redisdb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-redis\"),\n\t\t\tEngine: pulumi.String(\"redis\"),\n\t\t\tVersion: pulumi.String(\"6.2\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"grafana\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-grafana\"),\n\t\t\tEngine: pulumi.String(\"grafana\"),\n\t\t\tVersion: pulumi.String(\"9.1\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"GRA\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.Database;\nimport com.pulumi.ovh.CloudProject.DatabaseArgs;\nimport com.pulumi.ovh.CloudProject.inputs.DatabaseNodeArgs;\nimport com.pulumi.ovh.CloudProject.inputs.DatabaseIpRestrictionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var cassandradb = new Database(\"cassandradb\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-cassandra\")\n .engine(\"cassandra\")\n .version(\"4.0\")\n .plan(\"essential\")\n .nodes( \n DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build())\n .flavor(\"db1-4\")\n .build());\n\n var kafkadb = new Database(\"kafkadb\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-kafka\")\n .engine(\"kafka\")\n .version(\"3.4\")\n .plan(\"business\")\n .kafkaRestApi(true)\n .nodes( \n DatabaseNodeArgs.builder()\n .region(\"DE\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"DE\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"DE\")\n .build())\n .flavor(\"db1-4\")\n .build());\n\n var m3db = new Database(\"m3db\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-m3db\")\n .engine(\"m3db\")\n .version(\"1.2\")\n .plan(\"essential\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build())\n .flavor(\"db1-7\")\n .build());\n\n var mongodb = new Database(\"mongodb\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-mongodb\")\n .engine(\"mongodb\")\n .version(\"5.0\")\n .plan(\"discovery\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"GRA\")\n .build())\n .flavor(\"db1-2\")\n .build());\n\n var mysqldb = new Database(\"mysqldb\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-mysql\")\n .engine(\"mysql\")\n .version(\"8\")\n .plan(\"essential\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"SBG\")\n .build())\n .flavor(\"db1-4\")\n .advancedConfiguration(Map.ofEntries(\n Map.entry(\"mysql.sql_mode\", \"ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES\"),\n Map.entry(\"mysql.sql_require_primary_key\", \"true\")\n ))\n .build());\n\n var opensearchdb = new Database(\"opensearchdb\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-opensearch\")\n .engine(\"opensearch\")\n .version(\"1\")\n .plan(\"essential\")\n .opensearchAclsEnabled(true)\n .nodes(DatabaseNodeArgs.builder()\n .region(\"UK\")\n .build())\n .flavor(\"db1-4\")\n .build());\n\n var pgsqldb = new Database(\"pgsqldb\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-postgresql\")\n .engine(\"postgresql\")\n .version(\"14\")\n .plan(\"essential\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"WAW\")\n .build())\n .flavor(\"db1-4\")\n .ipRestrictions( \n DatabaseIpRestrictionArgs.builder()\n .description(\"ip 1\")\n .ip(\"178.97.6.0/24\")\n .build(),\n DatabaseIpRestrictionArgs.builder()\n .description(\"ip 2\")\n .ip(\"178.97.7.0/24\")\n .build())\n .build());\n\n var redisdb = new Database(\"redisdb\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-redis\")\n .engine(\"redis\")\n .version(\"6.2\")\n .plan(\"essential\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build())\n .flavor(\"db1-4\")\n .build());\n\n var grafana = new Database(\"grafana\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-grafana\")\n .engine(\"grafana\")\n .version(\"9.1\")\n .plan(\"essential\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"GRA\")\n .build())\n .flavor(\"db1-4\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n cassandradb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-cassandra\n engine: cassandra\n version: '4.0'\n plan: essential\n nodes:\n - region: BHS\n - region: BHS\n - region: BHS\n flavor: db1-4\n kafkadb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-kafka\n engine: kafka\n version: '3.4'\n plan: business\n kafkaRestApi: true\n nodes:\n - region: DE\n - region: DE\n - region: DE\n flavor: db1-4\n m3db:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-m3db\n engine: m3db\n version: '1.2'\n plan: essential\n nodes:\n - region: BHS\n flavor: db1-7\n mongodb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-mongodb\n engine: mongodb\n version: '5.0'\n plan: discovery\n nodes:\n - region: GRA\n flavor: db1-2\n mysqldb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-mysql\n engine: mysql\n version: '8'\n plan: essential\n nodes:\n - region: SBG\n flavor: db1-4\n advancedConfiguration:\n mysql.sql_mode: ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES\n mysql.sql_require_primary_key: 'true'\n opensearchdb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-opensearch\n engine: opensearch\n version: '1'\n plan: essential\n opensearchAclsEnabled: true\n nodes:\n - region: UK\n flavor: db1-4\n pgsqldb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-postgresql\n engine: postgresql\n version: '14'\n plan: essential\n nodes:\n - region: WAW\n flavor: db1-4\n ipRestrictions:\n - description: ip 1\n ip: 178.97.6.0/24\n - description: ip 2\n ip: 178.97.7.0/24\n redisdb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-redis\n engine: redis\n version: '6.2'\n plan: essential\n nodes:\n - region: BHS\n flavor: db1-4\n grafana:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-grafana\n engine: grafana\n version: '9.1'\n plan: essential\n nodes:\n - region: GRA\n flavor: db1-4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nTo deploy a business PostgreSQL service with two nodes on public network:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst postgresql = new ovh.cloudproject.Database(\"postgresql\", {\n description: \"my-first-postgresql\",\n engine: \"postgresql\",\n flavor: \"db1-15\",\n nodes: [\n {\n region: \"GRA\",\n },\n {\n region: \"GRA\",\n },\n ],\n plan: \"business\",\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n version: \"14\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\npostgresql = ovh.cloud_project.Database(\"postgresql\",\n description=\"my-first-postgresql\",\n engine=\"postgresql\",\n flavor=\"db1-15\",\n nodes=[\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"GRA\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"GRA\",\n ),\n ],\n plan=\"business\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n version=\"14\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var postgresql = new Ovh.CloudProject.Database(\"postgresql\", new()\n {\n Description = \"my-first-postgresql\",\n Engine = \"postgresql\",\n Flavor = \"db1-15\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"GRA\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"GRA\",\n },\n },\n Plan = \"business\",\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Version = \"14\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewDatabase(ctx, \"postgresql\", \u0026CloudProject.DatabaseArgs{\n\t\t\tDescription: pulumi.String(\"my-first-postgresql\"),\n\t\t\tEngine: pulumi.String(\"postgresql\"),\n\t\t\tFlavor: pulumi.String(\"db1-15\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"GRA\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"GRA\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPlan: pulumi.String(\"business\"),\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tVersion: pulumi.String(\"14\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.Database;\nimport com.pulumi.ovh.CloudProject.DatabaseArgs;\nimport com.pulumi.ovh.CloudProject.inputs.DatabaseNodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var postgresql = new Database(\"postgresql\", DatabaseArgs.builder() \n .description(\"my-first-postgresql\")\n .engine(\"postgresql\")\n .flavor(\"db1-15\")\n .nodes( \n DatabaseNodeArgs.builder()\n .region(\"GRA\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"GRA\")\n .build())\n .plan(\"business\")\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .version(\"14\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n postgresql:\n type: ovh:CloudProject:Database\n properties:\n description: my-first-postgresql\n engine: postgresql\n flavor: db1-15\n nodes:\n - region: GRA\n - region: GRA\n plan: business\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n version: '14'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\nTo deploy an enterprise MongoDB service with three nodes on private network:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst mongodb = new ovh.cloudproject.Database(\"mongodb\", {\n description: \"my-first-mongodb\",\n engine: \"mongodb\",\n flavor: \"db1-30\",\n nodes: [\n {\n networkId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region: \"SBG\",\n subnetId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n {\n networkId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region: \"SBG\",\n subnetId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n {\n networkId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region: \"SBG\",\n subnetId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n ],\n plan: \"production\",\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n version: \"5.0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmongodb = ovh.cloud_project.Database(\"mongodb\",\n description=\"my-first-mongodb\",\n engine=\"mongodb\",\n flavor=\"db1-30\",\n nodes=[\n ovh.cloud_project.DatabaseNodeArgs(\n network_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region=\"SBG\",\n subnet_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n network_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region=\"SBG\",\n subnet_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n network_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region=\"SBG\",\n subnet_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n ),\n ],\n plan=\"production\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n version=\"5.0\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var mongodb = new Ovh.CloudProject.Database(\"mongodb\", new()\n {\n Description = \"my-first-mongodb\",\n Engine = \"mongodb\",\n Flavor = \"db1-30\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n NetworkId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n Region = \"SBG\",\n SubnetId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n NetworkId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n Region = \"SBG\",\n SubnetId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n NetworkId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n Region = \"SBG\",\n SubnetId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n },\n Plan = \"production\",\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Version = \"5.0\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewDatabase(ctx, \"mongodb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tDescription: pulumi.String(\"my-first-mongodb\"),\n\t\t\tEngine: pulumi.String(\"mongodb\"),\n\t\t\tFlavor: pulumi.String(\"db1-30\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tNetworkId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t\tRegion: pulumi.String(\"SBG\"),\n\t\t\t\t\tSubnetId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tNetworkId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t\tRegion: pulumi.String(\"SBG\"),\n\t\t\t\t\tSubnetId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tNetworkId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t\tRegion: pulumi.String(\"SBG\"),\n\t\t\t\t\tSubnetId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPlan: pulumi.String(\"production\"),\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tVersion: pulumi.String(\"5.0\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.Database;\nimport com.pulumi.ovh.CloudProject.DatabaseArgs;\nimport com.pulumi.ovh.CloudProject.inputs.DatabaseNodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var mongodb = new Database(\"mongodb\", DatabaseArgs.builder() \n .description(\"my-first-mongodb\")\n .engine(\"mongodb\")\n .flavor(\"db1-30\")\n .nodes( \n DatabaseNodeArgs.builder()\n .networkId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .region(\"SBG\")\n .subnetId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .build(),\n DatabaseNodeArgs.builder()\n .networkId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .region(\"SBG\")\n .subnetId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .build(),\n DatabaseNodeArgs.builder()\n .networkId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .region(\"SBG\")\n .subnetId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .build())\n .plan(\"production\")\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .version(\"5.0\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mongodb:\n type: ovh:CloudProject:Database\n properties:\n description: my-first-mongodb\n engine: mongodb\n flavor: db1-30\n nodes:\n - networkId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n region: SBG\n subnetId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n - networkId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n region: SBG\n subnetId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n - networkId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n region: SBG\n subnetId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n plan: production\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n version: '5.0'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed database clusters can be imported using the `service_name`, `engine`, `id` of the cluster, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProject/database:Database my_database_cluster service_name/engine/id\n```\n\n", + "description": "## Example Usage\n\nMinimum settings for each engine (region choice is up to the user):\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst cassandradb = new ovh.cloudproject.Database(\"cassandradb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-cassandra\",\n engine: \"cassandra\",\n version: \"4.0\",\n plan: \"essential\",\n nodes: [\n {\n region: \"BHS\",\n },\n {\n region: \"BHS\",\n },\n {\n region: \"BHS\",\n },\n ],\n flavor: \"db1-4\",\n});\nconst kafkadb = new ovh.cloudproject.Database(\"kafkadb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-kafka\",\n engine: \"kafka\",\n version: \"3.4\",\n plan: \"business\",\n kafkaRestApi: true,\n kafkaSchemaRegistry: true,\n nodes: [\n {\n region: \"DE\",\n },\n {\n region: \"DE\",\n },\n {\n region: \"DE\",\n },\n ],\n flavor: \"db1-4\",\n});\nconst m3db = new ovh.cloudproject.Database(\"m3db\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-m3db\",\n engine: \"m3db\",\n version: \"1.2\",\n plan: \"essential\",\n nodes: [{\n region: \"BHS\",\n }],\n flavor: \"db1-7\",\n});\nconst mongodb = new ovh.cloudproject.Database(\"mongodb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-mongodb\",\n engine: \"mongodb\",\n version: \"5.0\",\n plan: \"discovery\",\n nodes: [{\n region: \"GRA\",\n }],\n flavor: \"db1-2\",\n});\nconst mysqldb = new ovh.cloudproject.Database(\"mysqldb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-mysql\",\n engine: \"mysql\",\n version: \"8\",\n plan: \"essential\",\n nodes: [{\n region: \"SBG\",\n }],\n flavor: \"db1-4\",\n advancedConfiguration: {\n \"mysql.sql_mode\": \"ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES\",\n \"mysql.sql_require_primary_key\": \"true\",\n },\n});\nconst opensearchdb = new ovh.cloudproject.Database(\"opensearchdb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-opensearch\",\n engine: \"opensearch\",\n version: \"1\",\n plan: \"essential\",\n opensearchAclsEnabled: true,\n nodes: [{\n region: \"UK\",\n }],\n flavor: \"db1-4\",\n});\nconst pgsqldb = new ovh.cloudproject.Database(\"pgsqldb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-postgresql\",\n engine: \"postgresql\",\n version: \"14\",\n plan: \"essential\",\n nodes: [{\n region: \"WAW\",\n }],\n flavor: \"db1-4\",\n ipRestrictions: [\n {\n description: \"ip 1\",\n ip: \"178.97.6.0/24\",\n },\n {\n description: \"ip 2\",\n ip: \"178.97.7.0/24\",\n },\n ],\n});\nconst redisdb = new ovh.cloudproject.Database(\"redisdb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-redis\",\n engine: \"redis\",\n version: \"6.2\",\n plan: \"essential\",\n nodes: [{\n region: \"BHS\",\n }],\n flavor: \"db1-4\",\n});\nconst grafana = new ovh.cloudproject.Database(\"grafana\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-grafana\",\n engine: \"grafana\",\n version: \"9.1\",\n plan: \"essential\",\n nodes: [{\n region: \"GRA\",\n }],\n flavor: \"db1-4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ncassandradb = ovh.cloud_project.Database(\"cassandradb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-cassandra\",\n engine=\"cassandra\",\n version=\"4.0\",\n plan=\"essential\",\n nodes=[\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"BHS\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"BHS\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"BHS\",\n ),\n ],\n flavor=\"db1-4\")\nkafkadb = ovh.cloud_project.Database(\"kafkadb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-kafka\",\n engine=\"kafka\",\n version=\"3.4\",\n plan=\"business\",\n kafka_rest_api=True,\n kafka_schema_registry=True,\n nodes=[\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"DE\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"DE\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"DE\",\n ),\n ],\n flavor=\"db1-4\")\nm3db = ovh.cloud_project.Database(\"m3db\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-m3db\",\n engine=\"m3db\",\n version=\"1.2\",\n plan=\"essential\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"BHS\",\n )],\n flavor=\"db1-7\")\nmongodb = ovh.cloud_project.Database(\"mongodb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-mongodb\",\n engine=\"mongodb\",\n version=\"5.0\",\n plan=\"discovery\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"GRA\",\n )],\n flavor=\"db1-2\")\nmysqldb = ovh.cloud_project.Database(\"mysqldb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-mysql\",\n engine=\"mysql\",\n version=\"8\",\n plan=\"essential\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"SBG\",\n )],\n flavor=\"db1-4\",\n advanced_configuration={\n \"mysql.sql_mode\": \"ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES\",\n \"mysql.sql_require_primary_key\": \"true\",\n })\nopensearchdb = ovh.cloud_project.Database(\"opensearchdb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-opensearch\",\n engine=\"opensearch\",\n version=\"1\",\n plan=\"essential\",\n opensearch_acls_enabled=True,\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"UK\",\n )],\n flavor=\"db1-4\")\npgsqldb = ovh.cloud_project.Database(\"pgsqldb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-postgresql\",\n engine=\"postgresql\",\n version=\"14\",\n plan=\"essential\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"WAW\",\n )],\n flavor=\"db1-4\",\n ip_restrictions=[\n ovh.cloud_project.DatabaseIpRestrictionArgs(\n description=\"ip 1\",\n ip=\"178.97.6.0/24\",\n ),\n ovh.cloud_project.DatabaseIpRestrictionArgs(\n description=\"ip 2\",\n ip=\"178.97.7.0/24\",\n ),\n ])\nredisdb = ovh.cloud_project.Database(\"redisdb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-redis\",\n engine=\"redis\",\n version=\"6.2\",\n plan=\"essential\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"BHS\",\n )],\n flavor=\"db1-4\")\ngrafana = ovh.cloud_project.Database(\"grafana\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-grafana\",\n engine=\"grafana\",\n version=\"9.1\",\n plan=\"essential\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"GRA\",\n )],\n flavor=\"db1-4\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var cassandradb = new Ovh.CloudProject.Database(\"cassandradb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-cassandra\",\n Engine = \"cassandra\",\n Version = \"4.0\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n },\n Flavor = \"db1-4\",\n });\n\n var kafkadb = new Ovh.CloudProject.Database(\"kafkadb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-kafka\",\n Engine = \"kafka\",\n Version = \"3.4\",\n Plan = \"business\",\n KafkaRestApi = true,\n KafkaSchemaRegistry = true,\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"DE\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"DE\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"DE\",\n },\n },\n Flavor = \"db1-4\",\n });\n\n var m3db = new Ovh.CloudProject.Database(\"m3db\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-m3db\",\n Engine = \"m3db\",\n Version = \"1.2\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n },\n Flavor = \"db1-7\",\n });\n\n var mongodb = new Ovh.CloudProject.Database(\"mongodb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-mongodb\",\n Engine = \"mongodb\",\n Version = \"5.0\",\n Plan = \"discovery\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"GRA\",\n },\n },\n Flavor = \"db1-2\",\n });\n\n var mysqldb = new Ovh.CloudProject.Database(\"mysqldb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-mysql\",\n Engine = \"mysql\",\n Version = \"8\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"SBG\",\n },\n },\n Flavor = \"db1-4\",\n AdvancedConfiguration = \n {\n { \"mysql.sql_mode\", \"ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES\" },\n { \"mysql.sql_require_primary_key\", \"true\" },\n },\n });\n\n var opensearchdb = new Ovh.CloudProject.Database(\"opensearchdb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-opensearch\",\n Engine = \"opensearch\",\n Version = \"1\",\n Plan = \"essential\",\n OpensearchAclsEnabled = true,\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"UK\",\n },\n },\n Flavor = \"db1-4\",\n });\n\n var pgsqldb = new Ovh.CloudProject.Database(\"pgsqldb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-postgresql\",\n Engine = \"postgresql\",\n Version = \"14\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"WAW\",\n },\n },\n Flavor = \"db1-4\",\n IpRestrictions = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseIpRestrictionArgs\n {\n Description = \"ip 1\",\n Ip = \"178.97.6.0/24\",\n },\n new Ovh.CloudProject.Inputs.DatabaseIpRestrictionArgs\n {\n Description = \"ip 2\",\n Ip = \"178.97.7.0/24\",\n },\n },\n });\n\n var redisdb = new Ovh.CloudProject.Database(\"redisdb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-redis\",\n Engine = \"redis\",\n Version = \"6.2\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n },\n Flavor = \"db1-4\",\n });\n\n var grafana = new Ovh.CloudProject.Database(\"grafana\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-grafana\",\n Engine = \"grafana\",\n Version = \"9.1\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"GRA\",\n },\n },\n Flavor = \"db1-4\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewDatabase(ctx, \"cassandradb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-cassandra\"),\n\t\t\tEngine: pulumi.String(\"cassandra\"),\n\t\t\tVersion: pulumi.String(\"4.0\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"kafkadb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-kafka\"),\n\t\t\tEngine: pulumi.String(\"kafka\"),\n\t\t\tVersion: pulumi.String(\"3.4\"),\n\t\t\tPlan: pulumi.String(\"business\"),\n\t\t\tKafkaRestApi: pulumi.Bool(true),\n\t\t\tKafkaSchemaRegistry: pulumi.Bool(true),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"DE\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"DE\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"DE\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"m3db\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-m3db\"),\n\t\t\tEngine: pulumi.String(\"m3db\"),\n\t\t\tVersion: pulumi.String(\"1.2\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-7\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"mongodb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-mongodb\"),\n\t\t\tEngine: pulumi.String(\"mongodb\"),\n\t\t\tVersion: pulumi.String(\"5.0\"),\n\t\t\tPlan: pulumi.String(\"discovery\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"GRA\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"mysqldb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-mysql\"),\n\t\t\tEngine: pulumi.String(\"mysql\"),\n\t\t\tVersion: pulumi.String(\"8\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"SBG\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t\tAdvancedConfiguration: pulumi.StringMap{\n\t\t\t\t\"mysql.sql_mode\": pulumi.String(\"ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES\"),\n\t\t\t\t\"mysql.sql_require_primary_key\": pulumi.String(\"true\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"opensearchdb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-opensearch\"),\n\t\t\tEngine: pulumi.String(\"opensearch\"),\n\t\t\tVersion: pulumi.String(\"1\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tOpensearchAclsEnabled: pulumi.Bool(true),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"UK\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"pgsqldb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-postgresql\"),\n\t\t\tEngine: pulumi.String(\"postgresql\"),\n\t\t\tVersion: pulumi.String(\"14\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"WAW\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t\tIpRestrictions: cloudproject.DatabaseIpRestrictionArray{\n\t\t\t\t\u0026cloudproject.DatabaseIpRestrictionArgs{\n\t\t\t\t\tDescription: pulumi.String(\"ip 1\"),\n\t\t\t\t\tIp: pulumi.String(\"178.97.6.0/24\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseIpRestrictionArgs{\n\t\t\t\t\tDescription: pulumi.String(\"ip 2\"),\n\t\t\t\t\tIp: pulumi.String(\"178.97.7.0/24\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"redisdb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-redis\"),\n\t\t\tEngine: pulumi.String(\"redis\"),\n\t\t\tVersion: pulumi.String(\"6.2\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"grafana\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-grafana\"),\n\t\t\tEngine: pulumi.String(\"grafana\"),\n\t\t\tVersion: pulumi.String(\"9.1\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"GRA\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.Database;\nimport com.pulumi.ovh.CloudProject.DatabaseArgs;\nimport com.pulumi.ovh.CloudProject.inputs.DatabaseNodeArgs;\nimport com.pulumi.ovh.CloudProject.inputs.DatabaseIpRestrictionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var cassandradb = new Database(\"cassandradb\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-cassandra\")\n .engine(\"cassandra\")\n .version(\"4.0\")\n .plan(\"essential\")\n .nodes( \n DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build())\n .flavor(\"db1-4\")\n .build());\n\n var kafkadb = new Database(\"kafkadb\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-kafka\")\n .engine(\"kafka\")\n .version(\"3.4\")\n .plan(\"business\")\n .kafkaRestApi(true)\n .kafkaSchemaRegistry(true)\n .nodes( \n DatabaseNodeArgs.builder()\n .region(\"DE\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"DE\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"DE\")\n .build())\n .flavor(\"db1-4\")\n .build());\n\n var m3db = new Database(\"m3db\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-m3db\")\n .engine(\"m3db\")\n .version(\"1.2\")\n .plan(\"essential\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build())\n .flavor(\"db1-7\")\n .build());\n\n var mongodb = new Database(\"mongodb\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-mongodb\")\n .engine(\"mongodb\")\n .version(\"5.0\")\n .plan(\"discovery\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"GRA\")\n .build())\n .flavor(\"db1-2\")\n .build());\n\n var mysqldb = new Database(\"mysqldb\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-mysql\")\n .engine(\"mysql\")\n .version(\"8\")\n .plan(\"essential\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"SBG\")\n .build())\n .flavor(\"db1-4\")\n .advancedConfiguration(Map.ofEntries(\n Map.entry(\"mysql.sql_mode\", \"ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES\"),\n Map.entry(\"mysql.sql_require_primary_key\", \"true\")\n ))\n .build());\n\n var opensearchdb = new Database(\"opensearchdb\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-opensearch\")\n .engine(\"opensearch\")\n .version(\"1\")\n .plan(\"essential\")\n .opensearchAclsEnabled(true)\n .nodes(DatabaseNodeArgs.builder()\n .region(\"UK\")\n .build())\n .flavor(\"db1-4\")\n .build());\n\n var pgsqldb = new Database(\"pgsqldb\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-postgresql\")\n .engine(\"postgresql\")\n .version(\"14\")\n .plan(\"essential\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"WAW\")\n .build())\n .flavor(\"db1-4\")\n .ipRestrictions( \n DatabaseIpRestrictionArgs.builder()\n .description(\"ip 1\")\n .ip(\"178.97.6.0/24\")\n .build(),\n DatabaseIpRestrictionArgs.builder()\n .description(\"ip 2\")\n .ip(\"178.97.7.0/24\")\n .build())\n .build());\n\n var redisdb = new Database(\"redisdb\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-redis\")\n .engine(\"redis\")\n .version(\"6.2\")\n .plan(\"essential\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build())\n .flavor(\"db1-4\")\n .build());\n\n var grafana = new Database(\"grafana\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-grafana\")\n .engine(\"grafana\")\n .version(\"9.1\")\n .plan(\"essential\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"GRA\")\n .build())\n .flavor(\"db1-4\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n cassandradb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-cassandra\n engine: cassandra\n version: '4.0'\n plan: essential\n nodes:\n - region: BHS\n - region: BHS\n - region: BHS\n flavor: db1-4\n kafkadb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-kafka\n engine: kafka\n version: '3.4'\n plan: business\n kafkaRestApi: true\n kafkaSchemaRegistry: true\n nodes:\n - region: DE\n - region: DE\n - region: DE\n flavor: db1-4\n m3db:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-m3db\n engine: m3db\n version: '1.2'\n plan: essential\n nodes:\n - region: BHS\n flavor: db1-7\n mongodb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-mongodb\n engine: mongodb\n version: '5.0'\n plan: discovery\n nodes:\n - region: GRA\n flavor: db1-2\n mysqldb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-mysql\n engine: mysql\n version: '8'\n plan: essential\n nodes:\n - region: SBG\n flavor: db1-4\n advancedConfiguration:\n mysql.sql_mode: ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES\n mysql.sql_require_primary_key: 'true'\n opensearchdb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-opensearch\n engine: opensearch\n version: '1'\n plan: essential\n opensearchAclsEnabled: true\n nodes:\n - region: UK\n flavor: db1-4\n pgsqldb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-postgresql\n engine: postgresql\n version: '14'\n plan: essential\n nodes:\n - region: WAW\n flavor: db1-4\n ipRestrictions:\n - description: ip 1\n ip: 178.97.6.0/24\n - description: ip 2\n ip: 178.97.7.0/24\n redisdb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-redis\n engine: redis\n version: '6.2'\n plan: essential\n nodes:\n - region: BHS\n flavor: db1-4\n grafana:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-grafana\n engine: grafana\n version: '9.1'\n plan: essential\n nodes:\n - region: GRA\n flavor: db1-4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nTo deploy a business PostgreSQL service with two nodes on public network:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst postgresql = new ovh.cloudproject.Database(\"postgresql\", {\n description: \"my-first-postgresql\",\n engine: \"postgresql\",\n flavor: \"db1-15\",\n nodes: [\n {\n region: \"GRA\",\n },\n {\n region: \"GRA\",\n },\n ],\n plan: \"business\",\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n version: \"14\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\npostgresql = ovh.cloud_project.Database(\"postgresql\",\n description=\"my-first-postgresql\",\n engine=\"postgresql\",\n flavor=\"db1-15\",\n nodes=[\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"GRA\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"GRA\",\n ),\n ],\n plan=\"business\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n version=\"14\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var postgresql = new Ovh.CloudProject.Database(\"postgresql\", new()\n {\n Description = \"my-first-postgresql\",\n Engine = \"postgresql\",\n Flavor = \"db1-15\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"GRA\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"GRA\",\n },\n },\n Plan = \"business\",\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Version = \"14\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewDatabase(ctx, \"postgresql\", \u0026CloudProject.DatabaseArgs{\n\t\t\tDescription: pulumi.String(\"my-first-postgresql\"),\n\t\t\tEngine: pulumi.String(\"postgresql\"),\n\t\t\tFlavor: pulumi.String(\"db1-15\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"GRA\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"GRA\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPlan: pulumi.String(\"business\"),\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tVersion: pulumi.String(\"14\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.Database;\nimport com.pulumi.ovh.CloudProject.DatabaseArgs;\nimport com.pulumi.ovh.CloudProject.inputs.DatabaseNodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var postgresql = new Database(\"postgresql\", DatabaseArgs.builder() \n .description(\"my-first-postgresql\")\n .engine(\"postgresql\")\n .flavor(\"db1-15\")\n .nodes( \n DatabaseNodeArgs.builder()\n .region(\"GRA\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"GRA\")\n .build())\n .plan(\"business\")\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .version(\"14\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n postgresql:\n type: ovh:CloudProject:Database\n properties:\n description: my-first-postgresql\n engine: postgresql\n flavor: db1-15\n nodes:\n - region: GRA\n - region: GRA\n plan: business\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n version: '14'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\nTo deploy an enterprise MongoDB service with three nodes on private network:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst mongodb = new ovh.cloudproject.Database(\"mongodb\", {\n description: \"my-first-mongodb\",\n engine: \"mongodb\",\n flavor: \"db1-30\",\n nodes: [\n {\n networkId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region: \"SBG\",\n subnetId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n {\n networkId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region: \"SBG\",\n subnetId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n {\n networkId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region: \"SBG\",\n subnetId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n ],\n plan: \"production\",\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n version: \"5.0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmongodb = ovh.cloud_project.Database(\"mongodb\",\n description=\"my-first-mongodb\",\n engine=\"mongodb\",\n flavor=\"db1-30\",\n nodes=[\n ovh.cloud_project.DatabaseNodeArgs(\n network_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region=\"SBG\",\n subnet_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n network_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region=\"SBG\",\n subnet_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n network_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region=\"SBG\",\n subnet_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n ),\n ],\n plan=\"production\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n version=\"5.0\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var mongodb = new Ovh.CloudProject.Database(\"mongodb\", new()\n {\n Description = \"my-first-mongodb\",\n Engine = \"mongodb\",\n Flavor = \"db1-30\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n NetworkId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n Region = \"SBG\",\n SubnetId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n NetworkId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n Region = \"SBG\",\n SubnetId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n NetworkId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n Region = \"SBG\",\n SubnetId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n },\n Plan = \"production\",\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Version = \"5.0\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewDatabase(ctx, \"mongodb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tDescription: pulumi.String(\"my-first-mongodb\"),\n\t\t\tEngine: pulumi.String(\"mongodb\"),\n\t\t\tFlavor: pulumi.String(\"db1-30\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tNetworkId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t\tRegion: pulumi.String(\"SBG\"),\n\t\t\t\t\tSubnetId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tNetworkId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t\tRegion: pulumi.String(\"SBG\"),\n\t\t\t\t\tSubnetId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tNetworkId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t\tRegion: pulumi.String(\"SBG\"),\n\t\t\t\t\tSubnetId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPlan: pulumi.String(\"production\"),\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tVersion: pulumi.String(\"5.0\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.Database;\nimport com.pulumi.ovh.CloudProject.DatabaseArgs;\nimport com.pulumi.ovh.CloudProject.inputs.DatabaseNodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var mongodb = new Database(\"mongodb\", DatabaseArgs.builder() \n .description(\"my-first-mongodb\")\n .engine(\"mongodb\")\n .flavor(\"db1-30\")\n .nodes( \n DatabaseNodeArgs.builder()\n .networkId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .region(\"SBG\")\n .subnetId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .build(),\n DatabaseNodeArgs.builder()\n .networkId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .region(\"SBG\")\n .subnetId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .build(),\n DatabaseNodeArgs.builder()\n .networkId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .region(\"SBG\")\n .subnetId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .build())\n .plan(\"production\")\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .version(\"5.0\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mongodb:\n type: ovh:CloudProject:Database\n properties:\n description: my-first-mongodb\n engine: mongodb\n flavor: db1-30\n nodes:\n - networkId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n region: SBG\n subnetId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n - networkId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n region: SBG\n subnetId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n - networkId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n region: SBG\n subnetId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n plan: production\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n version: '5.0'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed database clusters can be imported using the `service_name`, `engine`, `id` of the cluster, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProject/database:Database my_database_cluster service_name/engine/id\n```\n\n", "properties": { "advancedConfiguration": { "type": "object", @@ -5568,6 +6068,10 @@ "type": "boolean", "description": "Defines whether the REST API is enabled on a kafka cluster\n" }, + "kafkaSchemaRegistry": { + "type": "boolean", + "description": "Defines whether the schema registry is enabled on a Kafka cluster\n" + }, "maintenanceTime": { "type": "string", "description": "Time on which maintenances can start every day.\n" @@ -5669,6 +6173,10 @@ "type": "boolean", "description": "Defines whether the REST API is enabled on a kafka cluster\n" }, + "kafkaSchemaRegistry": { + "type": "boolean", + "description": "Defines whether the schema registry is enabled on a Kafka cluster\n" + }, "nodes": { "type": "array", "items": { @@ -5766,6 +6274,10 @@ "type": "boolean", "description": "Defines whether the REST API is enabled on a kafka cluster\n" }, + "kafkaSchemaRegistry": { + "type": "boolean", + "description": "Defines whether the schema registry is enabled on a Kafka cluster\n" + }, "maintenanceTime": { "type": "string", "description": "Time on which maintenances can start every day.\n" @@ -6708,34 +7220,41 @@ "description": "The ID of the managed kubernetes cluster. **Changing this value recreates the resource.**\n" }, "oidcCaContent": { - "type": "string" + "type": "string", + "description": "Content of the certificate for the CA, in Base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs.\n" }, "oidcGroupsClaims": { "type": "array", "items": { "type": "string" - } + }, + "description": "Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings.\n" }, "oidcGroupsPrefix": { - "type": "string" + "type": "string", + "description": "Prefix prepended to group claims to prevent clashes with existing names (such as `system:groups`). For example, the value `oidc:` will create group names like `oidc:engineering` and `oidc:infra`.\n" }, "oidcRequiredClaims": { "type": "array", "items": { "type": "string" - } + }, + "description": "Array of `key=value` pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value.\"\n" }, "oidcSigningAlgs": { "type": "array", "items": { "type": "string" - } + }, + "description": "Array of signing algorithms accepted. Default is `RS256`.\n" }, "oidcUsernameClaim": { - "type": "string" + "type": "string", + "description": "JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins.\n" }, "oidcUsernamePrefix": { - "type": "string" + "type": "string", + "description": "Prefix prepended to username claims to prevent clashes with existing names (such as `system:users`). For example, the value `oidc:` will create usernames like `oidc:jane.doe`. If this field isn't set and `oidc_username_claim` is a value other than email the prefix defaults to `issuer_url` where `issuer_url` is the value of `issuer_url.` The value - can be used to disable all prefixing.\n" }, "serviceName": { "type": "string", @@ -6763,34 +7282,41 @@ "willReplaceOnChanges": true }, "oidcCaContent": { - "type": "string" + "type": "string", + "description": "Content of the certificate for the CA, in Base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs.\n" }, "oidcGroupsClaims": { "type": "array", "items": { "type": "string" - } + }, + "description": "Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings.\n" }, "oidcGroupsPrefix": { - "type": "string" + "type": "string", + "description": "Prefix prepended to group claims to prevent clashes with existing names (such as `system:groups`). For example, the value `oidc:` will create group names like `oidc:engineering` and `oidc:infra`.\n" }, "oidcRequiredClaims": { "type": "array", "items": { "type": "string" - } + }, + "description": "Array of `key=value` pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value.\"\n" }, "oidcSigningAlgs": { "type": "array", "items": { "type": "string" - } + }, + "description": "Array of signing algorithms accepted. Default is `RS256`.\n" }, "oidcUsernameClaim": { - "type": "string" + "type": "string", + "description": "JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins.\n" }, "oidcUsernamePrefix": { - "type": "string" + "type": "string", + "description": "Prefix prepended to username claims to prevent clashes with existing names (such as `system:users`). For example, the value `oidc:` will create usernames like `oidc:jane.doe`. If this field isn't set and `oidc_username_claim` is a value other than email the prefix defaults to `issuer_url` where `issuer_url` is the value of `issuer_url.` The value - can be used to disable all prefixing.\n" }, "serviceName": { "type": "string", @@ -6821,34 +7347,41 @@ "willReplaceOnChanges": true }, "oidcCaContent": { - "type": "string" + "type": "string", + "description": "Content of the certificate for the CA, in Base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs.\n" }, "oidcGroupsClaims": { "type": "array", "items": { "type": "string" - } + }, + "description": "Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings.\n" }, "oidcGroupsPrefix": { - "type": "string" + "type": "string", + "description": "Prefix prepended to group claims to prevent clashes with existing names (such as `system:groups`). For example, the value `oidc:` will create group names like `oidc:engineering` and `oidc:infra`.\n" }, "oidcRequiredClaims": { "type": "array", "items": { "type": "string" - } + }, + "description": "Array of `key=value` pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value.\"\n" }, "oidcSigningAlgs": { "type": "array", "items": { "type": "string" - } + }, + "description": "Array of signing algorithms accepted. Default is `RS256`.\n" }, "oidcUsernameClaim": { - "type": "string" + "type": "string", + "description": "JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins.\n" }, "oidcUsernamePrefix": { - "type": "string" + "type": "string", + "description": "Prefix prepended to username claims to prevent clashes with existing names (such as `system:users`). For example, the value `oidc:` will create usernames like `oidc:jane.doe`. If this field isn't set and `oidc_username_claim` is a value other than email the prefix defaults to `issuer_url` where `issuer_url` is the value of `issuer_url.` The value - can be used to disable all prefixing.\n" }, "serviceName": { "type": "string", @@ -8892,7 +9425,7 @@ }, "name": { "type": "string", - "description": "Name of the user. A user named \"avnadmin\" is map with already created admin user instead of create a new user.\n" + "description": "Name of the user. A user named \"avnadmin\" is mapped with already created admin user instead of creating a new user.\n" }, "password": { "type": "string", @@ -8932,7 +9465,7 @@ }, "name": { "type": "string", - "description": "Name of the user. A user named \"avnadmin\" is map with already created admin user instead of create a new user.\n", + "description": "Name of the user. A user named \"avnadmin\" is mapped with already created admin user instead of creating a new user.\n", "willReplaceOnChanges": true }, "passwordReset": { @@ -8967,7 +9500,7 @@ }, "name": { "type": "string", - "description": "Name of the user. A user named \"avnadmin\" is map with already created admin user instead of create a new user.\n", + "description": "Name of the user. A user named \"avnadmin\" is mapped with already created admin user instead of creating a new user.\n", "willReplaceOnChanges": true }, "password": { @@ -9005,7 +9538,7 @@ }, "name": { "type": "string", - "description": "Name of the user.\n" + "description": "Name of the user. A user named \"admin\" is mapped with already created admin@admin user instead of creating a new user.\n" }, "password": { "type": "string", @@ -9048,7 +9581,7 @@ }, "name": { "type": "string", - "description": "Name of the user.\n", + "description": "Name of the user. A user named \"admin\" is mapped with already created admin@admin user instead of creating a new user.\n", "willReplaceOnChanges": true }, "passwordReset": { @@ -9086,7 +9619,7 @@ }, "name": { "type": "string", - "description": "Name of the user.\n", + "description": "Name of the user. A user named \"admin\" is mapped with already created admin@admin user instead of creating a new user.\n", "willReplaceOnChanges": true }, "password": { @@ -9217,7 +9750,7 @@ }, "name": { "type": "string", - "description": "Username affected by this acl. A user named \"avnadmin\" is map with already created admin user and reset his password instead of create a new user.\n" + "description": "Username affected by this acl. A user named \"avnadmin\" is mapped with already created admin user and reset his password instead of creating a new user.\n" }, "password": { "type": "string", @@ -9260,7 +9793,7 @@ }, "name": { "type": "string", - "description": "Username affected by this acl. A user named \"avnadmin\" is map with already created admin user and reset his password instead of create a new user.\n", + "description": "Username affected by this acl. A user named \"avnadmin\" is mapped with already created admin user and reset his password instead of creating a new user.\n", "willReplaceOnChanges": true }, "passwordReset": { @@ -9298,7 +9831,7 @@ }, "name": { "type": "string", - "description": "Username affected by this acl. A user named \"avnadmin\" is map with already created admin user and reset his password instead of create a new user.\n", + "description": "Username affected by this acl. A user named \"avnadmin\" is mapped with already created admin user and reset his password instead of creating a new user.\n", "willReplaceOnChanges": true }, "password": { @@ -9482,7 +10015,7 @@ }, "name": { "type": "string", - "description": "Name of the user. A user named \"avnadmin\" is map with already created admin user and reset his password instead of create a new user.\n" + "description": "Name of the user. A user named \"avnadmin\" is mapped with already created admin user and reset his password instead of creating a new user.\n" }, "password": { "type": "string", @@ -9526,7 +10059,7 @@ }, "name": { "type": "string", - "description": "Name of the user. A user named \"avnadmin\" is map with already created admin user and reset his password instead of create a new user.\n", + "description": "Name of the user. A user named \"avnadmin\" is mapped with already created admin user and reset his password instead of creating a new user.\n", "willReplaceOnChanges": true }, "passwordReset": { @@ -9564,7 +10097,7 @@ }, "name": { "type": "string", - "description": "Name of the user. A user named \"avnadmin\" is map with already created admin user and reset his password instead of create a new user.\n", + "description": "Name of the user. A user named \"avnadmin\" is mapped with already created admin user and reset his password instead of creating a new user.\n", "willReplaceOnChanges": true }, "password": { @@ -9637,7 +10170,7 @@ }, "name": { "type": "string", - "description": "Name of the user. A user named \"avnadmin\" is map with already created admin user and reset his password instead of create a new user.\n" + "description": "Name of the user.\n" }, "password": { "type": "string", @@ -9702,7 +10235,7 @@ }, "name": { "type": "string", - "description": "Name of the user. A user named \"avnadmin\" is map with already created admin user and reset his password instead of create a new user.\n", + "description": "Name of the user.\n", "willReplaceOnChanges": true }, "passwordReset": { @@ -9761,7 +10294,7 @@ }, "name": { "type": "string", - "description": "Name of the user. A user named \"avnadmin\" is map with already created admin user and reset his password instead of create a new user.\n", + "description": "Name of the user.\n", "willReplaceOnChanges": true }, "password": { @@ -9803,7 +10336,7 @@ }, "name": { "type": "string", - "description": "Name of the user. A user named \"avnadmin\" is map with already created admin user and reset his password instead of create a new user. The \"Grafana\" engine only allows the \"avnadmin\" mapping.\n" + "description": "Name of the user. A user named \"avnadmin\" is mapped with already created admin user and reset his password instead of creating a new user. The \"Grafana\" engine only allows the \"avnadmin\" mapping.\n" }, "password": { "type": "string", @@ -9845,7 +10378,7 @@ }, "name": { "type": "string", - "description": "Name of the user. A user named \"avnadmin\" is map with already created admin user and reset his password instead of create a new user. The \"Grafana\" engine only allows the \"avnadmin\" mapping.\n", + "description": "Name of the user. A user named \"avnadmin\" is mapped with already created admin user and reset his password instead of creating a new user. The \"Grafana\" engine only allows the \"avnadmin\" mapping.\n", "willReplaceOnChanges": true }, "passwordReset": { @@ -9882,7 +10415,7 @@ }, "name": { "type": "string", - "description": "Name of the user. A user named \"avnadmin\" is map with already created admin user and reset his password instead of create a new user. The \"Grafana\" engine only allows the \"avnadmin\" mapping.\n", + "description": "Name of the user. A user named \"avnadmin\" is mapped with already created admin user and reset his password instead of creating a new user. The \"Grafana\" engine only allows the \"avnadmin\" mapping.\n", "willReplaceOnChanges": true }, "password": { @@ -10989,7 +11522,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\nUsing a custom template based on an OVHCloud template\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst rescue = ovh.Dedicated.getServerBoots({\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n bootType: \"rescue\",\n});\nconst debian = new ovh.me.InstallationTemplate(\"debian\", {\n baseTemplateName: \"debian12_64\",\n templateName: \"mydebian12\",\n customization: {\n postInstallationScriptLink: \"http://test\",\n postInstallationScriptReturn: \"ok\",\n },\n});\nconst serverInstall = new ovh.dedicated.ServerInstallTask(\"serverInstall\", {\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n templateName: debian.templateName,\n bootidOnDestroy: rescue.then(rescue =\u003e rescue.results?.[0]),\n details: {\n customHostname: \"mytest\",\n },\n userMetadatas: [{\n key: \"sshKey\",\n value: \"ssh-ed25519 AAAAC3...\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nrescue = ovh.Dedicated.get_server_boots(service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\",\n boot_type=\"rescue\")\ndebian = ovh.me.InstallationTemplate(\"debian\",\n base_template_name=\"debian12_64\",\n template_name=\"mydebian12\",\n customization=ovh.me.InstallationTemplateCustomizationArgs(\n post_installation_script_link=\"http://test\",\n post_installation_script_return=\"ok\",\n ))\nserver_install = ovh.dedicated.ServerInstallTask(\"serverInstall\",\n service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\",\n template_name=debian.template_name,\n bootid_on_destroy=rescue.results[0],\n details=ovh.dedicated.ServerInstallTaskDetailsArgs(\n custom_hostname=\"mytest\",\n ),\n user_metadatas=[ovh.dedicated.ServerInstallTaskUserMetadataArgs(\n key=\"sshKey\",\n value=\"ssh-ed25519 AAAAC3...\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rescue = Ovh.Dedicated.GetServerBoots.Invoke(new()\n {\n ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n BootType = \"rescue\",\n });\n\n var debian = new Ovh.Me.InstallationTemplate(\"debian\", new()\n {\n BaseTemplateName = \"debian12_64\",\n TemplateName = \"mydebian12\",\n Customization = new Ovh.Me.Inputs.InstallationTemplateCustomizationArgs\n {\n PostInstallationScriptLink = \"http://test\",\n PostInstallationScriptReturn = \"ok\",\n },\n });\n\n var serverInstall = new Ovh.Dedicated.ServerInstallTask(\"serverInstall\", new()\n {\n ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n TemplateName = debian.TemplateName,\n BootidOnDestroy = rescue.Apply(getServerBootsResult =\u003e getServerBootsResult.Results[0]),\n Details = new Ovh.Dedicated.Inputs.ServerInstallTaskDetailsArgs\n {\n CustomHostname = \"mytest\",\n },\n UserMetadatas = new[]\n {\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"sshKey\",\n Value = \"ssh-ed25519 AAAAC3...\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Dedicated\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trescue, err := Dedicated.GetServerBoots(ctx, \u0026dedicated.GetServerBootsArgs{\n\t\t\tServiceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n\t\t\tBootType: pulumi.StringRef(\"rescue\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdebian, err := Me.NewInstallationTemplate(ctx, \"debian\", \u0026Me.InstallationTemplateArgs{\n\t\t\tBaseTemplateName: pulumi.String(\"debian12_64\"),\n\t\t\tTemplateName: pulumi.String(\"mydebian12\"),\n\t\t\tCustomization: \u0026me.InstallationTemplateCustomizationArgs{\n\t\t\t\tPostInstallationScriptLink: pulumi.String(\"http://test\"),\n\t\t\t\tPostInstallationScriptReturn: pulumi.String(\"ok\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Dedicated.NewServerInstallTask(ctx, \"serverInstall\", \u0026Dedicated.ServerInstallTaskArgs{\n\t\t\tServiceName: pulumi.String(\"nsxxxxxxx.ip-xx-xx-xx.eu\"),\n\t\t\tTemplateName: debian.TemplateName,\n\t\t\tBootidOnDestroy: pulumi.Int(rescue.Results[0]),\n\t\t\tDetails: \u0026dedicated.ServerInstallTaskDetailsArgs{\n\t\t\t\tCustomHostname: pulumi.String(\"mytest\"),\n\t\t\t},\n\t\t\tUserMetadatas: dedicated.ServerInstallTaskUserMetadataArray{\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"sshKey\"),\n\t\t\t\t\tValue: pulumi.String(\"ssh-ed25519 AAAAC3...\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Dedicated.DedicatedFunctions;\nimport com.pulumi.ovh.Dedicated.inputs.GetServerBootsArgs;\nimport com.pulumi.ovh.Me.InstallationTemplate;\nimport com.pulumi.ovh.Me.InstallationTemplateArgs;\nimport com.pulumi.ovh.Me.inputs.InstallationTemplateCustomizationArgs;\nimport com.pulumi.ovh.Dedicated.ServerInstallTask;\nimport com.pulumi.ovh.Dedicated.ServerInstallTaskArgs;\nimport com.pulumi.ovh.Dedicated.inputs.ServerInstallTaskDetailsArgs;\nimport com.pulumi.ovh.Dedicated.inputs.ServerInstallTaskUserMetadataArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var rescue = DedicatedFunctions.getServerBoots(GetServerBootsArgs.builder()\n .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n .bootType(\"rescue\")\n .build());\n\n var debian = new InstallationTemplate(\"debian\", InstallationTemplateArgs.builder() \n .baseTemplateName(\"debian12_64\")\n .templateName(\"mydebian12\")\n .customization(InstallationTemplateCustomizationArgs.builder()\n .postInstallationScriptLink(\"http://test\")\n .postInstallationScriptReturn(\"ok\")\n .build())\n .build());\n\n var serverInstall = new ServerInstallTask(\"serverInstall\", ServerInstallTaskArgs.builder() \n .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n .templateName(debian.templateName())\n .bootidOnDestroy(rescue.applyValue(getServerBootsResult -\u003e getServerBootsResult.results()[0]))\n .details(ServerInstallTaskDetailsArgs.builder()\n .customHostname(\"mytest\")\n .build())\n .userMetadatas(ServerInstallTaskUserMetadataArgs.builder()\n .key(\"sshKey\")\n .value(\"ssh-ed25519 AAAAC3...\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n debian:\n type: ovh:Me:InstallationTemplate\n properties:\n baseTemplateName: debian12_64\n templateName: mydebian12\n customization:\n postInstallationScriptLink: http://test\n postInstallationScriptReturn: ok\n serverInstall:\n type: ovh:Dedicated:ServerInstallTask\n properties:\n serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n templateName: ${debian.templateName}\n bootidOnDestroy: ${rescue.results[0]}\n details:\n customHostname: mytest\n userMetadatas:\n - key: sshKey\n value: ssh-ed25519 AAAAC3...\nvariables:\n rescue:\n fn::invoke:\n Function: ovh:Dedicated:getServerBoots\n Arguments:\n serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n bootType: rescue\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nUsing a BringYourOwnLinux (BYOLinux) template (with userMetadata)\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst server = ovh.getServer({\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n});\nconst rescue = ovh.Dedicated.getServerBoots({\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n bootType: \"rescue\",\n});\nconst serverInstall = new ovh.dedicated.ServerInstallTask(\"serverInstall\", {\n serviceName: server.then(server =\u003e server.serviceName),\n templateName: \"byolinux_64\",\n bootidOnDestroy: rescue.then(rescue =\u003e rescue.results?.[0]),\n details: {\n customHostname: \"mytest\",\n },\n userMetadatas: [\n {\n key: \"imageURL\",\n value: \"https://myimage.qcow2\",\n },\n {\n key: \"imageType\",\n value: \"qcow2\",\n },\n {\n key: \"httpHeaders0Key\",\n value: \"Authorization\",\n },\n {\n key: \"httpHeaders0Value\",\n value: \"Basic bG9naW46xxxxxxx=\",\n },\n {\n key: \"imageChecksumType\",\n value: \"sha512\",\n },\n {\n key: \"imageCheckSum\",\n value: \"047122c9ff4d2a69512212104b06c678f5a9cdb22b75467353613ff87ccd03b57b38967e56d810e61366f9d22d6bd39ac0addf4e00a4c6445112a2416af8f225\",\n },\n {\n key: \"configDriveUserData\",\n value: `#cloud-config\nssh_authorized_keys:\n - ${data.ovh_me_ssh_key.mykey.key}\n\nusers:\n - name: patient0\n sudo: ALL=(ALL) NOPASSWD:ALL\n groups: users, sudo\n shell: /bin/bash\n lock_passwd: false\n ssh_authorized_keys:\n - ${data.ovh_me_ssh_key.mykey.key}\ndisable_root: false\npackages:\n - vim\n - tree\nfinal_message: The system is finally up, after $UPTIME seconds\n`,\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nserver = ovh.get_server(service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\")\nrescue = ovh.Dedicated.get_server_boots(service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\",\n boot_type=\"rescue\")\nserver_install = ovh.dedicated.ServerInstallTask(\"serverInstall\",\n service_name=server.service_name,\n template_name=\"byolinux_64\",\n bootid_on_destroy=rescue.results[0],\n details=ovh.dedicated.ServerInstallTaskDetailsArgs(\n custom_hostname=\"mytest\",\n ),\n user_metadatas=[\n ovh.dedicated.ServerInstallTaskUserMetadataArgs(\n key=\"imageURL\",\n value=\"https://myimage.qcow2\",\n ),\n ovh.dedicated.ServerInstallTaskUserMetadataArgs(\n key=\"imageType\",\n value=\"qcow2\",\n ),\n ovh.dedicated.ServerInstallTaskUserMetadataArgs(\n key=\"httpHeaders0Key\",\n value=\"Authorization\",\n ),\n ovh.dedicated.ServerInstallTaskUserMetadataArgs(\n key=\"httpHeaders0Value\",\n value=\"Basic bG9naW46xxxxxxx=\",\n ),\n ovh.dedicated.ServerInstallTaskUserMetadataArgs(\n key=\"imageChecksumType\",\n value=\"sha512\",\n ),\n ovh.dedicated.ServerInstallTaskUserMetadataArgs(\n key=\"imageCheckSum\",\n value=\"047122c9ff4d2a69512212104b06c678f5a9cdb22b75467353613ff87ccd03b57b38967e56d810e61366f9d22d6bd39ac0addf4e00a4c6445112a2416af8f225\",\n ),\n ovh.dedicated.ServerInstallTaskUserMetadataArgs(\n key=\"configDriveUserData\",\n value=f\"\"\"#cloud-config\nssh_authorized_keys:\n - {data[\"ovh_me_ssh_key\"][\"mykey\"][\"key\"]}\n\nusers:\n - name: patient0\n sudo: ALL=(ALL) NOPASSWD:ALL\n groups: users, sudo\n shell: /bin/bash\n lock_passwd: false\n ssh_authorized_keys:\n - {data[\"ovh_me_ssh_key\"][\"mykey\"][\"key\"]}\ndisable_root: false\npackages:\n - vim\n - tree\nfinal_message: The system is finally up, after $UPTIME seconds\n\"\"\",\n ),\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var server = Ovh.GetServer.Invoke(new()\n {\n ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n });\n\n var rescue = Ovh.Dedicated.GetServerBoots.Invoke(new()\n {\n ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n BootType = \"rescue\",\n });\n\n var serverInstall = new Ovh.Dedicated.ServerInstallTask(\"serverInstall\", new()\n {\n ServiceName = server.Apply(getServerResult =\u003e getServerResult.ServiceName),\n TemplateName = \"byolinux_64\",\n BootidOnDestroy = rescue.Apply(getServerBootsResult =\u003e getServerBootsResult.Results[0]),\n Details = new Ovh.Dedicated.Inputs.ServerInstallTaskDetailsArgs\n {\n CustomHostname = \"mytest\",\n },\n UserMetadatas = new[]\n {\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"imageURL\",\n Value = \"https://myimage.qcow2\",\n },\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"imageType\",\n Value = \"qcow2\",\n },\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"httpHeaders0Key\",\n Value = \"Authorization\",\n },\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"httpHeaders0Value\",\n Value = \"Basic bG9naW46xxxxxxx=\",\n },\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"imageChecksumType\",\n Value = \"sha512\",\n },\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"imageCheckSum\",\n Value = \"047122c9ff4d2a69512212104b06c678f5a9cdb22b75467353613ff87ccd03b57b38967e56d810e61366f9d22d6bd39ac0addf4e00a4c6445112a2416af8f225\",\n },\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"configDriveUserData\",\n Value = @$\"#cloud-config\nssh_authorized_keys:\n - {data.Ovh_me_ssh_key.Mykey.Key}\n\nusers:\n - name: patient0\n sudo: ALL=(ALL) NOPASSWD:ALL\n groups: users, sudo\n shell: /bin/bash\n lock_passwd: false\n ssh_authorized_keys:\n - {data.Ovh_me_ssh_key.Mykey.Key}\ndisable_root: false\npackages:\n - vim\n - tree\nfinal_message: The system is finally up, after $UPTIME seconds\n\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Dedicated\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tserver, err := ovh.GetServer(ctx, \u0026ovh.GetServerArgs{\n\t\t\tServiceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trescue, err := Dedicated.GetServerBoots(ctx, \u0026dedicated.GetServerBootsArgs{\n\t\t\tServiceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n\t\t\tBootType: pulumi.StringRef(\"rescue\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Dedicated.NewServerInstallTask(ctx, \"serverInstall\", \u0026Dedicated.ServerInstallTaskArgs{\n\t\t\tServiceName: pulumi.String(server.ServiceName),\n\t\t\tTemplateName: pulumi.String(\"byolinux_64\"),\n\t\t\tBootidOnDestroy: pulumi.Int(rescue.Results[0]),\n\t\t\tDetails: \u0026dedicated.ServerInstallTaskDetailsArgs{\n\t\t\t\tCustomHostname: pulumi.String(\"mytest\"),\n\t\t\t},\n\t\t\tUserMetadatas: dedicated.ServerInstallTaskUserMetadataArray{\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"imageURL\"),\n\t\t\t\t\tValue: pulumi.String(\"https://myimage.qcow2\"),\n\t\t\t\t},\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"imageType\"),\n\t\t\t\t\tValue: pulumi.String(\"qcow2\"),\n\t\t\t\t},\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"httpHeaders0Key\"),\n\t\t\t\t\tValue: pulumi.String(\"Authorization\"),\n\t\t\t\t},\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"httpHeaders0Value\"),\n\t\t\t\t\tValue: pulumi.String(\"Basic bG9naW46xxxxxxx=\"),\n\t\t\t\t},\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"imageChecksumType\"),\n\t\t\t\t\tValue: pulumi.String(\"sha512\"),\n\t\t\t\t},\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"imageCheckSum\"),\n\t\t\t\t\tValue: pulumi.String(\"047122c9ff4d2a69512212104b06c678f5a9cdb22b75467353613ff87ccd03b57b38967e56d810e61366f9d22d6bd39ac0addf4e00a4c6445112a2416af8f225\"),\n\t\t\t\t},\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"configDriveUserData\"),\n\t\t\t\t\tValue: pulumi.String(fmt.Sprintf(`#cloud-config\nssh_authorized_keys:\n - %v\n\nusers:\n - name: patient0\n sudo: ALL=(ALL) NOPASSWD:ALL\n groups: users, sudo\n shell: /bin/bash\n lock_passwd: false\n ssh_authorized_keys:\n - %v\ndisable_root: false\npackages:\n - vim\n - tree\nfinal_message: The system is finally up, after $UPTIME seconds\n`, data.Ovh_me_ssh_key.Mykey.Key, data.Ovh_me_ssh_key.Mykey.Key)),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetServerArgs;\nimport com.pulumi.ovh.Dedicated.DedicatedFunctions;\nimport com.pulumi.ovh.Dedicated.inputs.GetServerBootsArgs;\nimport com.pulumi.ovh.Dedicated.ServerInstallTask;\nimport com.pulumi.ovh.Dedicated.ServerInstallTaskArgs;\nimport com.pulumi.ovh.Dedicated.inputs.ServerInstallTaskDetailsArgs;\nimport com.pulumi.ovh.Dedicated.inputs.ServerInstallTaskUserMetadataArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var server = OvhFunctions.getServer(GetServerArgs.builder()\n .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n .build());\n\n final var rescue = DedicatedFunctions.getServerBoots(GetServerBootsArgs.builder()\n .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n .bootType(\"rescue\")\n .build());\n\n var serverInstall = new ServerInstallTask(\"serverInstall\", ServerInstallTaskArgs.builder() \n .serviceName(server.applyValue(getServerResult -\u003e getServerResult.serviceName()))\n .templateName(\"byolinux_64\")\n .bootidOnDestroy(rescue.applyValue(getServerBootsResult -\u003e getServerBootsResult.results()[0]))\n .details(ServerInstallTaskDetailsArgs.builder()\n .customHostname(\"mytest\")\n .build())\n .userMetadatas( \n ServerInstallTaskUserMetadataArgs.builder()\n .key(\"imageURL\")\n .value(\"https://myimage.qcow2\")\n .build(),\n ServerInstallTaskUserMetadataArgs.builder()\n .key(\"imageType\")\n .value(\"qcow2\")\n .build(),\n ServerInstallTaskUserMetadataArgs.builder()\n .key(\"httpHeaders0Key\")\n .value(\"Authorization\")\n .build(),\n ServerInstallTaskUserMetadataArgs.builder()\n .key(\"httpHeaders0Value\")\n .value(\"Basic bG9naW46xxxxxxx=\")\n .build(),\n ServerInstallTaskUserMetadataArgs.builder()\n .key(\"imageChecksumType\")\n .value(\"sha512\")\n .build(),\n ServerInstallTaskUserMetadataArgs.builder()\n .key(\"imageCheckSum\")\n .value(\"047122c9ff4d2a69512212104b06c678f5a9cdb22b75467353613ff87ccd03b57b38967e56d810e61366f9d22d6bd39ac0addf4e00a4c6445112a2416af8f225\")\n .build(),\n ServerInstallTaskUserMetadataArgs.builder()\n .key(\"configDriveUserData\")\n .value(\"\"\"\n#cloud-config\nssh_authorized_keys:\n - %s\n\nusers:\n - name: patient0\n sudo: ALL=(ALL) NOPASSWD:ALL\n groups: users, sudo\n shell: /bin/bash\n lock_passwd: false\n ssh_authorized_keys:\n - %s\ndisable_root: false\npackages:\n - vim\n - tree\nfinal_message: The system is finally up, after $UPTIME seconds\n\", data.ovh_me_ssh_key().mykey().key(),data.ovh_me_ssh_key().mykey().key()))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n serverInstall:\n type: ovh:Dedicated:ServerInstallTask\n properties:\n serviceName: ${server.serviceName}\n templateName: byolinux_64\n bootidOnDestroy: ${rescue.results[0]}\n details:\n customHostname: mytest\n userMetadatas:\n - key: imageURL\n value: https://myimage.qcow2\n - key: imageType\n value: qcow2\n - key: httpHeaders0Key\n value: Authorization\n - key: httpHeaders0Value\n value: Basic bG9naW46xxxxxxx=\n - key: imageChecksumType\n value: sha512\n - key: imageCheckSum\n value: 047122c9ff4d2a69512212104b06c678f5a9cdb22b75467353613ff87ccd03b57b38967e56d810e61366f9d22d6bd39ac0addf4e00a4c6445112a2416af8f225\n - key: configDriveUserData\n value: |\n #cloud-config\n ssh_authorized_keys:\n - ${data.ovh_me_ssh_key.mykey.key}\n\n users:\n - name: patient0\n sudo: ALL=(ALL) NOPASSWD:ALL\n groups: users, sudo\n shell: /bin/bash\n lock_passwd: false\n ssh_authorized_keys:\n - ${data.ovh_me_ssh_key.mykey.key}\n disable_root: false\n packages:\n - vim\n - tree\n final_message: The system is finally up, after $UPTIME seconds\nvariables:\n server:\n fn::invoke:\n Function: ovh:getServer\n Arguments:\n serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n rescue:\n fn::invoke:\n Function: ovh:Dedicated:getServerBoots\n Arguments:\n serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n bootType: rescue\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nUsing a Microsoft Windows server OVHcloud template with a specific language\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst server = ovh.getServer({\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n});\nconst rescue = ovh.Dedicated.getServerBoots({\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n bootType: \"rescue\",\n});\nconst serverInstall = new ovh.dedicated.ServerInstallTask(\"serverInstall\", {\n serviceName: server.then(server =\u003e server.serviceName),\n templateName: \"win2019-std_64\",\n bootidOnDestroy: rescue.then(rescue =\u003e rescue.results?.[0]),\n details: {\n customHostname: \"mytest\",\n },\n userMetadatas: [{\n key: \"language\",\n value: \"fr-fr\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nserver = ovh.get_server(service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\")\nrescue = ovh.Dedicated.get_server_boots(service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\",\n boot_type=\"rescue\")\nserver_install = ovh.dedicated.ServerInstallTask(\"serverInstall\",\n service_name=server.service_name,\n template_name=\"win2019-std_64\",\n bootid_on_destroy=rescue.results[0],\n details=ovh.dedicated.ServerInstallTaskDetailsArgs(\n custom_hostname=\"mytest\",\n ),\n user_metadatas=[ovh.dedicated.ServerInstallTaskUserMetadataArgs(\n key=\"language\",\n value=\"fr-fr\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var server = Ovh.GetServer.Invoke(new()\n {\n ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n });\n\n var rescue = Ovh.Dedicated.GetServerBoots.Invoke(new()\n {\n ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n BootType = \"rescue\",\n });\n\n var serverInstall = new Ovh.Dedicated.ServerInstallTask(\"serverInstall\", new()\n {\n ServiceName = server.Apply(getServerResult =\u003e getServerResult.ServiceName),\n TemplateName = \"win2019-std_64\",\n BootidOnDestroy = rescue.Apply(getServerBootsResult =\u003e getServerBootsResult.Results[0]),\n Details = new Ovh.Dedicated.Inputs.ServerInstallTaskDetailsArgs\n {\n CustomHostname = \"mytest\",\n },\n UserMetadatas = new[]\n {\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"language\",\n Value = \"fr-fr\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Dedicated\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tserver, err := ovh.GetServer(ctx, \u0026ovh.GetServerArgs{\n\t\t\tServiceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trescue, err := Dedicated.GetServerBoots(ctx, \u0026dedicated.GetServerBootsArgs{\n\t\t\tServiceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n\t\t\tBootType: pulumi.StringRef(\"rescue\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Dedicated.NewServerInstallTask(ctx, \"serverInstall\", \u0026Dedicated.ServerInstallTaskArgs{\n\t\t\tServiceName: pulumi.String(server.ServiceName),\n\t\t\tTemplateName: pulumi.String(\"win2019-std_64\"),\n\t\t\tBootidOnDestroy: pulumi.Int(rescue.Results[0]),\n\t\t\tDetails: \u0026dedicated.ServerInstallTaskDetailsArgs{\n\t\t\t\tCustomHostname: pulumi.String(\"mytest\"),\n\t\t\t},\n\t\t\tUserMetadatas: dedicated.ServerInstallTaskUserMetadataArray{\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"language\"),\n\t\t\t\t\tValue: pulumi.String(\"fr-fr\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetServerArgs;\nimport com.pulumi.ovh.Dedicated.DedicatedFunctions;\nimport com.pulumi.ovh.Dedicated.inputs.GetServerBootsArgs;\nimport com.pulumi.ovh.Dedicated.ServerInstallTask;\nimport com.pulumi.ovh.Dedicated.ServerInstallTaskArgs;\nimport com.pulumi.ovh.Dedicated.inputs.ServerInstallTaskDetailsArgs;\nimport com.pulumi.ovh.Dedicated.inputs.ServerInstallTaskUserMetadataArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var server = OvhFunctions.getServer(GetServerArgs.builder()\n .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n .build());\n\n final var rescue = DedicatedFunctions.getServerBoots(GetServerBootsArgs.builder()\n .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n .bootType(\"rescue\")\n .build());\n\n var serverInstall = new ServerInstallTask(\"serverInstall\", ServerInstallTaskArgs.builder() \n .serviceName(server.applyValue(getServerResult -\u003e getServerResult.serviceName()))\n .templateName(\"win2019-std_64\")\n .bootidOnDestroy(rescue.applyValue(getServerBootsResult -\u003e getServerBootsResult.results()[0]))\n .details(ServerInstallTaskDetailsArgs.builder()\n .customHostname(\"mytest\")\n .build())\n .userMetadatas(ServerInstallTaskUserMetadataArgs.builder()\n .key(\"language\")\n .value(\"fr-fr\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n serverInstall:\n type: ovh:Dedicated:ServerInstallTask\n properties:\n serviceName: ${server.serviceName}\n templateName: win2019-std_64\n bootidOnDestroy: ${rescue.results[0]}\n details:\n customHostname: mytest\n userMetadatas:\n - key: language\n value: fr-fr\nvariables:\n server:\n fn::invoke:\n Function: ovh:getServer\n Arguments:\n serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n rescue:\n fn::invoke:\n Function: ovh:Dedicated:getServerBoots\n Arguments:\n serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n bootType: rescue\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInstallation task can be imported using the `service_name` (`nsXXXX.ip...`) of the baremetal server, the `template_name` used and ths `task_id`, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Dedicated/serverInstallTask:ServerInstallTask ovh_dedicated_server_install_task nsXXXX.ipXXXX/template_name/12345\n```\n\n", "properties": { "bootidOnDestroy": { "type": "integer", @@ -11034,6 +11567,13 @@ "templateName": { "type": "string", "description": "Template name.\n" + }, + "userMetadatas": { + "type": "array", + "items": { + "$ref": "#/types/ovh:Dedicated/ServerInstallTaskUserMetadata:ServerInstallTaskUserMetadata" + }, + "description": "see `user_metadata` block below.\n" } }, "required": [ @@ -11070,6 +11610,14 @@ "type": "string", "description": "Template name.\n", "willReplaceOnChanges": true + }, + "userMetadatas": { + "type": "array", + "items": { + "$ref": "#/types/ovh:Dedicated/ServerInstallTaskUserMetadata:ServerInstallTaskUserMetadata" + }, + "description": "see `user_metadata` block below.\n", + "willReplaceOnChanges": true } }, "requiredInputs": [ @@ -11126,6 +11674,14 @@ "type": "string", "description": "Template name.\n", "willReplaceOnChanges": true + }, + "userMetadatas": { + "type": "array", + "items": { + "$ref": "#/types/ovh:Dedicated/ServerInstallTaskUserMetadata:ServerInstallTaskUserMetadata" + }, + "description": "see `user_metadata` block below.\n", + "willReplaceOnChanges": true } }, "type": "object" @@ -15894,41 +16450,35 @@ } }, "ovh:Me/installationTemplate:InstallationTemplate": { - "description": "Use this resource to create a custom installation template available for dedicated servers.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst mytemplate = new ovh.me.InstallationTemplate(\"mytemplate\", {\n baseTemplateName: \"centos7_64\",\n defaultLanguage: \"en\",\n templateName: \"mytemplate\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmytemplate = ovh.me.InstallationTemplate(\"mytemplate\",\n base_template_name=\"centos7_64\",\n default_language=\"en\",\n template_name=\"mytemplate\")\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 mytemplate = new Ovh.Me.InstallationTemplate(\"mytemplate\", new()\n {\n BaseTemplateName = \"centos7_64\",\n DefaultLanguage = \"en\",\n TemplateName = \"mytemplate\",\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/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Me.NewInstallationTemplate(ctx, \"mytemplate\", \u0026Me.InstallationTemplateArgs{\n\t\t\tBaseTemplateName: pulumi.String(\"centos7_64\"),\n\t\t\tDefaultLanguage: pulumi.String(\"en\"),\n\t\t\tTemplateName: pulumi.String(\"mytemplate\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.InstallationTemplate;\nimport com.pulumi.ovh.Me.InstallationTemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var mytemplate = new InstallationTemplate(\"mytemplate\", InstallationTemplateArgs.builder() \n .baseTemplateName(\"centos7_64\")\n .defaultLanguage(\"en\")\n .templateName(\"mytemplate\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mytemplate:\n type: ovh:Me:InstallationTemplate\n properties:\n baseTemplateName: centos7_64\n defaultLanguage: en\n templateName: mytemplate\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nCustom installation template available for dedicated servers can be imported using the `base_template_name`, `template_name` of the cluster, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Me/installationTemplate:InstallationTemplate mytemplate base_template_name/template_name\n```\n\n", + "description": "Use this resource to create a custom installation template available for dedicated servers.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.InstallationTemplate;\nimport com.pulumi.ovh.Me.InstallationTemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var mytemplate = new InstallationTemplate(\"mytemplate\", InstallationTemplateArgs.builder() \n .baseTemplateName(\"debian12_64\")\n .customHostname(\"mytest\")\n .templateName(\"mytemplate\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mytemplate:\n type: ovh:Me:InstallationTemplate\n properties:\n baseTemplateName: debian12_64\n customHostname: mytest\n templateName: mytemplate\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nCustom installation template available for dedicated servers can be imported using the `base_template_name`, `template_name` of the cluster, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Me/installationTemplate:InstallationTemplate mytemplate base_template_name/template_name\n```\n\n", "properties": { "availableLanguages": { "type": "array", "items": { "type": "string" }, - "description": "List of all language available for this template.\n" + "description": "Deprecated.\n" }, "baseTemplateName": { "type": "string", "description": "The name of an existing installation template, choose one among the list given by `ovh.getInstallationTemplates` datasource.\n" }, - "beta": { - "type": "boolean", - "description": "This distribution is new and, although tested and functional, may still display odd behaviour.\n" - }, "bitFormat": { "type": "integer", "description": "This template bit format (32 or 64).\n" }, "category": { "type": "string", - "description": "Category of this template (informative only). (basic, customer, hosting, other, readyToUse, virtualisation).\n" + "description": "Category of this template (informative only). (basic, customer, hosting, other, readyToUse, virtualisation).\n", + "deprecationMessage": "This field is deprecated and will be removed in a future release." }, "customization": { "$ref": "#/types/ovh:Me/InstallationTemplateCustomization:InstallationTemplateCustomization" }, "defaultLanguage": { "type": "string", - "description": "The default language of this template.\n" - }, - "deprecated": { - "type": "boolean", - "description": "is this distribution deprecated.\n" + "description": "Deprecated, use language in userMetadata instead.\n", + "deprecationMessage": "This field is deprecated and will be removed in a future release." }, "description": { "type": "string", @@ -15953,10 +16503,6 @@ "type": "boolean", "description": "This distribution supports hardware raid configuration through the OVHcloud API.\n" }, - "lastModification": { - "type": "string", - "description": "Date of last modification of the base image.\n" - }, "lvmReady": { "type": "boolean", "description": "This distribution supports Logical Volumes (Linux LVM)\n" @@ -15965,10 +16511,6 @@ "type": "boolean", "description": "Remove default partition schemes at creation.\n" }, - "supportsSqlServer": { - "type": "boolean", - "description": "This distribution supports the microsoft SQL server.\n" - }, "templateName": { "type": "string", "description": "This template name.\n" @@ -15977,20 +16519,15 @@ "required": [ "availableLanguages", "baseTemplateName", - "beta", "bitFormat", "category", - "defaultLanguage", - "deprecated", "description", "distribution", "family", "filesystems", "hardRaidConfiguration", - "lastModification", "lvmReady", "removeDefaultPartitionSchemes", - "supportsSqlServer", "templateName" ], "inputProperties": { @@ -16004,7 +16541,8 @@ }, "defaultLanguage": { "type": "string", - "description": "The default language of this template.\n", + "description": "Deprecated, use language in userMetadata instead.\n", + "deprecationMessage": "This field is deprecated and will be removed in a future release.", "willReplaceOnChanges": true }, "removeDefaultPartitionSchemes": { @@ -16018,7 +16556,6 @@ }, "requiredInputs": [ "baseTemplateName", - "defaultLanguage", "templateName" ], "stateInputs": { @@ -16029,37 +16566,31 @@ "items": { "type": "string" }, - "description": "List of all language available for this template.\n" + "description": "Deprecated.\n" }, "baseTemplateName": { "type": "string", "description": "The name of an existing installation template, choose one among the list given by `ovh.getInstallationTemplates` datasource.\n", "willReplaceOnChanges": true }, - "beta": { - "type": "boolean", - "description": "This distribution is new and, although tested and functional, may still display odd behaviour.\n" - }, "bitFormat": { "type": "integer", "description": "This template bit format (32 or 64).\n" }, "category": { "type": "string", - "description": "Category of this template (informative only). (basic, customer, hosting, other, readyToUse, virtualisation).\n" + "description": "Category of this template (informative only). (basic, customer, hosting, other, readyToUse, virtualisation).\n", + "deprecationMessage": "This field is deprecated and will be removed in a future release." }, "customization": { "$ref": "#/types/ovh:Me/InstallationTemplateCustomization:InstallationTemplateCustomization" }, "defaultLanguage": { "type": "string", - "description": "The default language of this template.\n", + "description": "Deprecated, use language in userMetadata instead.\n", + "deprecationMessage": "This field is deprecated and will be removed in a future release.", "willReplaceOnChanges": true }, - "deprecated": { - "type": "boolean", - "description": "is this distribution deprecated.\n" - }, "description": { "type": "string", "description": "information about this template.\n" @@ -16083,10 +16614,6 @@ "type": "boolean", "description": "This distribution supports hardware raid configuration through the OVHcloud API.\n" }, - "lastModification": { - "type": "string", - "description": "Date of last modification of the base image.\n" - }, "lvmReady": { "type": "boolean", "description": "This distribution supports Logical Volumes (Linux LVM)\n" @@ -16095,10 +16622,6 @@ "type": "boolean", "description": "Remove default partition schemes at creation.\n" }, - "supportsSqlServer": { - "type": "boolean", - "description": "This distribution supports the microsoft SQL server.\n" - }, "templateName": { "type": "string", "description": "This template name.\n" @@ -16108,7 +16631,7 @@ } }, "ovh:Me/installationTemplatePartitionScheme:InstallationTemplatePartitionScheme": { - "description": "Use this resource to create partition scheme for a custom installation template available for dedicated servers.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst mytemplate = new ovh.me.InstallationTemplate(\"mytemplate\", {\n baseTemplateName: \"centos7_64\",\n templateName: \"mytemplate\",\n defaultLanguage: \"fr\",\n});\nconst scheme = new ovh.me.InstallationTemplatePartitionScheme(\"scheme\", {\n templateName: mytemplate.templateName,\n priority: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmytemplate = ovh.me.InstallationTemplate(\"mytemplate\",\n base_template_name=\"centos7_64\",\n template_name=\"mytemplate\",\n default_language=\"fr\")\nscheme = ovh.me.InstallationTemplatePartitionScheme(\"scheme\",\n template_name=mytemplate.template_name,\n priority=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var mytemplate = new Ovh.Me.InstallationTemplate(\"mytemplate\", new()\n {\n BaseTemplateName = \"centos7_64\",\n TemplateName = \"mytemplate\",\n DefaultLanguage = \"fr\",\n });\n\n var scheme = new Ovh.Me.InstallationTemplatePartitionScheme(\"scheme\", new()\n {\n TemplateName = mytemplate.TemplateName,\n Priority = 1,\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/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmytemplate, err := Me.NewInstallationTemplate(ctx, \"mytemplate\", \u0026Me.InstallationTemplateArgs{\n\t\t\tBaseTemplateName: pulumi.String(\"centos7_64\"),\n\t\t\tTemplateName: pulumi.String(\"mytemplate\"),\n\t\t\tDefaultLanguage: pulumi.String(\"fr\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Me.NewInstallationTemplatePartitionScheme(ctx, \"scheme\", \u0026Me.InstallationTemplatePartitionSchemeArgs{\n\t\t\tTemplateName: mytemplate.TemplateName,\n\t\t\tPriority: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.InstallationTemplate;\nimport com.pulumi.ovh.Me.InstallationTemplateArgs;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionScheme;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionSchemeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var mytemplate = new InstallationTemplate(\"mytemplate\", InstallationTemplateArgs.builder() \n .baseTemplateName(\"centos7_64\")\n .templateName(\"mytemplate\")\n .defaultLanguage(\"fr\")\n .build());\n\n var scheme = new InstallationTemplatePartitionScheme(\"scheme\", InstallationTemplatePartitionSchemeArgs.builder() \n .templateName(mytemplate.templateName())\n .priority(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mytemplate:\n type: ovh:Me:InstallationTemplate\n properties:\n baseTemplateName: centos7_64\n templateName: mytemplate\n defaultLanguage: fr\n scheme:\n type: ovh:Me:InstallationTemplatePartitionScheme\n properties:\n templateName: ${mytemplate.templateName}\n priority: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe resource can be imported using the `template_name`, `name` of the cluster, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Me/installationTemplatePartitionScheme:InstallationTemplatePartitionScheme scheme template_name/name\n```\n\n", + "description": "Use this resource to create partition scheme for a custom installation template available for dedicated servers.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst mytemplate = new ovh.me.InstallationTemplate(\"mytemplate\", {\n baseTemplateName: \"debian12_64\",\n templateName: \"mytemplate\",\n});\nconst scheme = new ovh.me.InstallationTemplatePartitionScheme(\"scheme\", {\n templateName: mytemplate.templateName,\n priority: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmytemplate = ovh.me.InstallationTemplate(\"mytemplate\",\n base_template_name=\"debian12_64\",\n template_name=\"mytemplate\")\nscheme = ovh.me.InstallationTemplatePartitionScheme(\"scheme\",\n template_name=mytemplate.template_name,\n priority=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var mytemplate = new Ovh.Me.InstallationTemplate(\"mytemplate\", new()\n {\n BaseTemplateName = \"debian12_64\",\n TemplateName = \"mytemplate\",\n });\n\n var scheme = new Ovh.Me.InstallationTemplatePartitionScheme(\"scheme\", new()\n {\n TemplateName = mytemplate.TemplateName,\n Priority = 1,\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/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmytemplate, err := Me.NewInstallationTemplate(ctx, \"mytemplate\", \u0026Me.InstallationTemplateArgs{\n\t\t\tBaseTemplateName: pulumi.String(\"debian12_64\"),\n\t\t\tTemplateName: pulumi.String(\"mytemplate\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Me.NewInstallationTemplatePartitionScheme(ctx, \"scheme\", \u0026Me.InstallationTemplatePartitionSchemeArgs{\n\t\t\tTemplateName: mytemplate.TemplateName,\n\t\t\tPriority: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.InstallationTemplate;\nimport com.pulumi.ovh.Me.InstallationTemplateArgs;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionScheme;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionSchemeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var mytemplate = new InstallationTemplate(\"mytemplate\", InstallationTemplateArgs.builder() \n .baseTemplateName(\"debian12_64\")\n .templateName(\"mytemplate\")\n .build());\n\n var scheme = new InstallationTemplatePartitionScheme(\"scheme\", InstallationTemplatePartitionSchemeArgs.builder() \n .templateName(mytemplate.templateName())\n .priority(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mytemplate:\n type: ovh:Me:InstallationTemplate\n properties:\n baseTemplateName: debian12_64\n templateName: mytemplate\n scheme:\n type: ovh:Me:InstallationTemplatePartitionScheme\n properties:\n templateName: ${mytemplate.templateName}\n priority: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe resource can be imported using the `template_name`, `name` of the cluster, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Me/installationTemplatePartitionScheme:InstallationTemplatePartitionScheme scheme template_name/name\n```\n\n", "properties": { "name": { "type": "string", @@ -16168,7 +16691,7 @@ } }, "ovh:Me/installationTemplatePartitionSchemeHardwareRaid:InstallationTemplatePartitionSchemeHardwareRaid": { - "description": "Use this resource to create a hardware raid group in the partition scheme of a custom installation template available for dedicated servers.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst mytemplate = new ovh.me.InstallationTemplate(\"mytemplate\", {\n baseTemplateName: \"centos7_64\",\n templateName: \"mytemplate\",\n defaultLanguage: \"fr\",\n});\nconst scheme = new ovh.me.InstallationTemplatePartitionScheme(\"scheme\", {\n templateName: mytemplate.templateName,\n priority: 1,\n});\nconst group1 = new ovh.me.InstallationTemplatePartitionSchemeHardwareRaid(\"group1\", {\n templateName: scheme.templateName,\n schemeName: scheme.name,\n disks: [\n \"[c1:d1,c1:d2,c1:d3]\",\n \"[c1:d10,c1:d20,c1:d30]\",\n ],\n mode: \"raid50\",\n step: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmytemplate = ovh.me.InstallationTemplate(\"mytemplate\",\n base_template_name=\"centos7_64\",\n template_name=\"mytemplate\",\n default_language=\"fr\")\nscheme = ovh.me.InstallationTemplatePartitionScheme(\"scheme\",\n template_name=mytemplate.template_name,\n priority=1)\ngroup1 = ovh.me.InstallationTemplatePartitionSchemeHardwareRaid(\"group1\",\n template_name=scheme.template_name,\n scheme_name=scheme.name,\n disks=[\n \"[c1:d1,c1:d2,c1:d3]\",\n \"[c1:d10,c1:d20,c1:d30]\",\n ],\n mode=\"raid50\",\n step=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var mytemplate = new Ovh.Me.InstallationTemplate(\"mytemplate\", new()\n {\n BaseTemplateName = \"centos7_64\",\n TemplateName = \"mytemplate\",\n DefaultLanguage = \"fr\",\n });\n\n var scheme = new Ovh.Me.InstallationTemplatePartitionScheme(\"scheme\", new()\n {\n TemplateName = mytemplate.TemplateName,\n Priority = 1,\n });\n\n var group1 = new Ovh.Me.InstallationTemplatePartitionSchemeHardwareRaid(\"group1\", new()\n {\n TemplateName = scheme.TemplateName,\n SchemeName = scheme.Name,\n Disks = new[]\n {\n \"[c1:d1,c1:d2,c1:d3]\",\n \"[c1:d10,c1:d20,c1:d30]\",\n },\n Mode = \"raid50\",\n Step = 1,\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/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmytemplate, err := Me.NewInstallationTemplate(ctx, \"mytemplate\", \u0026Me.InstallationTemplateArgs{\n\t\t\tBaseTemplateName: pulumi.String(\"centos7_64\"),\n\t\t\tTemplateName: pulumi.String(\"mytemplate\"),\n\t\t\tDefaultLanguage: pulumi.String(\"fr\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tscheme, err := Me.NewInstallationTemplatePartitionScheme(ctx, \"scheme\", \u0026Me.InstallationTemplatePartitionSchemeArgs{\n\t\t\tTemplateName: mytemplate.TemplateName,\n\t\t\tPriority: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Me.NewInstallationTemplatePartitionSchemeHardwareRaid(ctx, \"group1\", \u0026Me.InstallationTemplatePartitionSchemeHardwareRaidArgs{\n\t\t\tTemplateName: scheme.TemplateName,\n\t\t\tSchemeName: scheme.Name,\n\t\t\tDisks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"[c1:d1,c1:d2,c1:d3]\"),\n\t\t\t\tpulumi.String(\"[c1:d10,c1:d20,c1:d30]\"),\n\t\t\t},\n\t\t\tMode: pulumi.String(\"raid50\"),\n\t\t\tStep: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.InstallationTemplate;\nimport com.pulumi.ovh.Me.InstallationTemplateArgs;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionScheme;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionSchemeArgs;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionSchemeHardwareRaid;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionSchemeHardwareRaidArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var mytemplate = new InstallationTemplate(\"mytemplate\", InstallationTemplateArgs.builder() \n .baseTemplateName(\"centos7_64\")\n .templateName(\"mytemplate\")\n .defaultLanguage(\"fr\")\n .build());\n\n var scheme = new InstallationTemplatePartitionScheme(\"scheme\", InstallationTemplatePartitionSchemeArgs.builder() \n .templateName(mytemplate.templateName())\n .priority(1)\n .build());\n\n var group1 = new InstallationTemplatePartitionSchemeHardwareRaid(\"group1\", InstallationTemplatePartitionSchemeHardwareRaidArgs.builder() \n .templateName(scheme.templateName())\n .schemeName(scheme.name())\n .disks( \n \"[c1:d1,c1:d2,c1:d3]\",\n \"[c1:d10,c1:d20,c1:d30]\")\n .mode(\"raid50\")\n .step(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mytemplate:\n type: ovh:Me:InstallationTemplate\n properties:\n baseTemplateName: centos7_64\n templateName: mytemplate\n defaultLanguage: fr\n scheme:\n type: ovh:Me:InstallationTemplatePartitionScheme\n properties:\n templateName: ${mytemplate.templateName}\n priority: 1\n group1:\n type: ovh:Me:InstallationTemplatePartitionSchemeHardwareRaid\n properties:\n templateName: ${scheme.templateName}\n schemeName: ${scheme.name}\n disks:\n - '[c1:d1,c1:d2,c1:d3]'\n - '[c1:d10,c1:d20,c1:d30]'\n mode: raid50\n step: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe resource can be imported using the `template_name`, `scheme_name`, `name` of the cluster, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Me/installationTemplatePartitionSchemeHardwareRaid:InstallationTemplatePartitionSchemeHardwareRaid group1 template_name/scheme_name/name\n```\n\n", + "description": "Use this resource to create a hardware raid group in the partition scheme of a custom installation template available for dedicated servers.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst mytemplate = new ovh.me.InstallationTemplate(\"mytemplate\", {\n baseTemplateName: \"debian12_64\",\n templateName: \"mytemplate\",\n});\nconst scheme = new ovh.me.InstallationTemplatePartitionScheme(\"scheme\", {\n templateName: mytemplate.templateName,\n priority: 1,\n});\nconst group1 = new ovh.me.InstallationTemplatePartitionSchemeHardwareRaid(\"group1\", {\n templateName: scheme.templateName,\n schemeName: scheme.name,\n disks: [\n \"[c1:d1,c1:d2,c1:d3]\",\n \"[c1:d10,c1:d20,c1:d30]\",\n ],\n mode: \"raid50\",\n step: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmytemplate = ovh.me.InstallationTemplate(\"mytemplate\",\n base_template_name=\"debian12_64\",\n template_name=\"mytemplate\")\nscheme = ovh.me.InstallationTemplatePartitionScheme(\"scheme\",\n template_name=mytemplate.template_name,\n priority=1)\ngroup1 = ovh.me.InstallationTemplatePartitionSchemeHardwareRaid(\"group1\",\n template_name=scheme.template_name,\n scheme_name=scheme.name,\n disks=[\n \"[c1:d1,c1:d2,c1:d3]\",\n \"[c1:d10,c1:d20,c1:d30]\",\n ],\n mode=\"raid50\",\n step=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var mytemplate = new Ovh.Me.InstallationTemplate(\"mytemplate\", new()\n {\n BaseTemplateName = \"debian12_64\",\n TemplateName = \"mytemplate\",\n });\n\n var scheme = new Ovh.Me.InstallationTemplatePartitionScheme(\"scheme\", new()\n {\n TemplateName = mytemplate.TemplateName,\n Priority = 1,\n });\n\n var group1 = new Ovh.Me.InstallationTemplatePartitionSchemeHardwareRaid(\"group1\", new()\n {\n TemplateName = scheme.TemplateName,\n SchemeName = scheme.Name,\n Disks = new[]\n {\n \"[c1:d1,c1:d2,c1:d3]\",\n \"[c1:d10,c1:d20,c1:d30]\",\n },\n Mode = \"raid50\",\n Step = 1,\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/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmytemplate, err := Me.NewInstallationTemplate(ctx, \"mytemplate\", \u0026Me.InstallationTemplateArgs{\n\t\t\tBaseTemplateName: pulumi.String(\"debian12_64\"),\n\t\t\tTemplateName: pulumi.String(\"mytemplate\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tscheme, err := Me.NewInstallationTemplatePartitionScheme(ctx, \"scheme\", \u0026Me.InstallationTemplatePartitionSchemeArgs{\n\t\t\tTemplateName: mytemplate.TemplateName,\n\t\t\tPriority: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Me.NewInstallationTemplatePartitionSchemeHardwareRaid(ctx, \"group1\", \u0026Me.InstallationTemplatePartitionSchemeHardwareRaidArgs{\n\t\t\tTemplateName: scheme.TemplateName,\n\t\t\tSchemeName: scheme.Name,\n\t\t\tDisks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"[c1:d1,c1:d2,c1:d3]\"),\n\t\t\t\tpulumi.String(\"[c1:d10,c1:d20,c1:d30]\"),\n\t\t\t},\n\t\t\tMode: pulumi.String(\"raid50\"),\n\t\t\tStep: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.InstallationTemplate;\nimport com.pulumi.ovh.Me.InstallationTemplateArgs;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionScheme;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionSchemeArgs;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionSchemeHardwareRaid;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionSchemeHardwareRaidArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var mytemplate = new InstallationTemplate(\"mytemplate\", InstallationTemplateArgs.builder() \n .baseTemplateName(\"debian12_64\")\n .templateName(\"mytemplate\")\n .build());\n\n var scheme = new InstallationTemplatePartitionScheme(\"scheme\", InstallationTemplatePartitionSchemeArgs.builder() \n .templateName(mytemplate.templateName())\n .priority(1)\n .build());\n\n var group1 = new InstallationTemplatePartitionSchemeHardwareRaid(\"group1\", InstallationTemplatePartitionSchemeHardwareRaidArgs.builder() \n .templateName(scheme.templateName())\n .schemeName(scheme.name())\n .disks( \n \"[c1:d1,c1:d2,c1:d3]\",\n \"[c1:d10,c1:d20,c1:d30]\")\n .mode(\"raid50\")\n .step(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mytemplate:\n type: ovh:Me:InstallationTemplate\n properties:\n baseTemplateName: debian12_64\n templateName: mytemplate\n scheme:\n type: ovh:Me:InstallationTemplatePartitionScheme\n properties:\n templateName: ${mytemplate.templateName}\n priority: 1\n group1:\n type: ovh:Me:InstallationTemplatePartitionSchemeHardwareRaid\n properties:\n templateName: ${scheme.templateName}\n schemeName: ${scheme.name}\n disks:\n - '[c1:d1,c1:d2,c1:d3]'\n - '[c1:d10,c1:d20,c1:d30]'\n mode: raid50\n step: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe resource can be imported using the `template_name`, `scheme_name`, `name` of the cluster, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Me/installationTemplatePartitionSchemeHardwareRaid:InstallationTemplatePartitionSchemeHardwareRaid group1 template_name/scheme_name/name\n```\n\n", "properties": { "disks": { "type": "array", @@ -16279,7 +16802,7 @@ } }, "ovh:Me/installationTemplatePartitionSchemePartition:InstallationTemplatePartitionSchemePartition": { - "description": "Use this resource to create a partition in the partition scheme of a custom installation template available for dedicated servers.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst mytemplate = new ovh.me.InstallationTemplate(\"mytemplate\", {\n baseTemplateName: \"centos7_64\",\n templateName: \"mytemplate\",\n defaultLanguage: \"fr\",\n});\nconst scheme = new ovh.me.InstallationTemplatePartitionScheme(\"scheme\", {\n templateName: mytemplate.templateName,\n priority: 1,\n});\nconst root = new ovh.me.InstallationTemplatePartitionSchemePartition(\"root\", {\n templateName: scheme.templateName,\n schemeName: scheme.name,\n mountpoint: \"/\",\n filesystem: \"ext4\",\n size: 400,\n order: 1,\n type: \"primary\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmytemplate = ovh.me.InstallationTemplate(\"mytemplate\",\n base_template_name=\"centos7_64\",\n template_name=\"mytemplate\",\n default_language=\"fr\")\nscheme = ovh.me.InstallationTemplatePartitionScheme(\"scheme\",\n template_name=mytemplate.template_name,\n priority=1)\nroot = ovh.me.InstallationTemplatePartitionSchemePartition(\"root\",\n template_name=scheme.template_name,\n scheme_name=scheme.name,\n mountpoint=\"/\",\n filesystem=\"ext4\",\n size=400,\n order=1,\n type=\"primary\")\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 mytemplate = new Ovh.Me.InstallationTemplate(\"mytemplate\", new()\n {\n BaseTemplateName = \"centos7_64\",\n TemplateName = \"mytemplate\",\n DefaultLanguage = \"fr\",\n });\n\n var scheme = new Ovh.Me.InstallationTemplatePartitionScheme(\"scheme\", new()\n {\n TemplateName = mytemplate.TemplateName,\n Priority = 1,\n });\n\n var root = new Ovh.Me.InstallationTemplatePartitionSchemePartition(\"root\", new()\n {\n TemplateName = scheme.TemplateName,\n SchemeName = scheme.Name,\n Mountpoint = \"/\",\n Filesystem = \"ext4\",\n Size = 400,\n Order = 1,\n Type = \"primary\",\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/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmytemplate, err := Me.NewInstallationTemplate(ctx, \"mytemplate\", \u0026Me.InstallationTemplateArgs{\n\t\t\tBaseTemplateName: pulumi.String(\"centos7_64\"),\n\t\t\tTemplateName: pulumi.String(\"mytemplate\"),\n\t\t\tDefaultLanguage: pulumi.String(\"fr\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tscheme, err := Me.NewInstallationTemplatePartitionScheme(ctx, \"scheme\", \u0026Me.InstallationTemplatePartitionSchemeArgs{\n\t\t\tTemplateName: mytemplate.TemplateName,\n\t\t\tPriority: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Me.NewInstallationTemplatePartitionSchemePartition(ctx, \"root\", \u0026Me.InstallationTemplatePartitionSchemePartitionArgs{\n\t\t\tTemplateName: scheme.TemplateName,\n\t\t\tSchemeName: scheme.Name,\n\t\t\tMountpoint: pulumi.String(\"/\"),\n\t\t\tFilesystem: pulumi.String(\"ext4\"),\n\t\t\tSize: pulumi.Int(400),\n\t\t\tOrder: pulumi.Int(1),\n\t\t\tType: pulumi.String(\"primary\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.InstallationTemplate;\nimport com.pulumi.ovh.Me.InstallationTemplateArgs;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionScheme;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionSchemeArgs;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionSchemePartition;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionSchemePartitionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var mytemplate = new InstallationTemplate(\"mytemplate\", InstallationTemplateArgs.builder() \n .baseTemplateName(\"centos7_64\")\n .templateName(\"mytemplate\")\n .defaultLanguage(\"fr\")\n .build());\n\n var scheme = new InstallationTemplatePartitionScheme(\"scheme\", InstallationTemplatePartitionSchemeArgs.builder() \n .templateName(mytemplate.templateName())\n .priority(1)\n .build());\n\n var root = new InstallationTemplatePartitionSchemePartition(\"root\", InstallationTemplatePartitionSchemePartitionArgs.builder() \n .templateName(scheme.templateName())\n .schemeName(scheme.name())\n .mountpoint(\"/\")\n .filesystem(\"ext4\")\n .size(\"400\")\n .order(1)\n .type(\"primary\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mytemplate:\n type: ovh:Me:InstallationTemplate\n properties:\n baseTemplateName: centos7_64\n templateName: mytemplate\n defaultLanguage: fr\n scheme:\n type: ovh:Me:InstallationTemplatePartitionScheme\n properties:\n templateName: ${mytemplate.templateName}\n priority: 1\n root:\n type: ovh:Me:InstallationTemplatePartitionSchemePartition\n properties:\n templateName: ${scheme.templateName}\n schemeName: ${scheme.name}\n mountpoint: /\n filesystem: ext4\n size: '400'\n order: 1\n type: primary\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe resource can be imported using the `template_name`, `scheme_name`, `mountpoint` of the cluster, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Me/installationTemplatePartitionSchemePartition:InstallationTemplatePartitionSchemePartition root template_name/scheme_name/mountpoint\n```\n\n", + "description": "Use this resource to create a partition in the partition scheme of a custom installation template available for dedicated servers.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst mytemplate = new ovh.me.InstallationTemplate(\"mytemplate\", {\n baseTemplateName: \"debian12_64\",\n templateName: \"mytemplate\",\n});\nconst scheme = new ovh.me.InstallationTemplatePartitionScheme(\"scheme\", {\n templateName: mytemplate.templateName,\n priority: 1,\n});\nconst root = new ovh.me.InstallationTemplatePartitionSchemePartition(\"root\", {\n templateName: scheme.templateName,\n schemeName: scheme.name,\n mountpoint: \"/\",\n filesystem: \"ext4\",\n size: 400,\n order: 1,\n type: \"primary\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmytemplate = ovh.me.InstallationTemplate(\"mytemplate\",\n base_template_name=\"debian12_64\",\n template_name=\"mytemplate\")\nscheme = ovh.me.InstallationTemplatePartitionScheme(\"scheme\",\n template_name=mytemplate.template_name,\n priority=1)\nroot = ovh.me.InstallationTemplatePartitionSchemePartition(\"root\",\n template_name=scheme.template_name,\n scheme_name=scheme.name,\n mountpoint=\"/\",\n filesystem=\"ext4\",\n size=400,\n order=1,\n type=\"primary\")\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 mytemplate = new Ovh.Me.InstallationTemplate(\"mytemplate\", new()\n {\n BaseTemplateName = \"debian12_64\",\n TemplateName = \"mytemplate\",\n });\n\n var scheme = new Ovh.Me.InstallationTemplatePartitionScheme(\"scheme\", new()\n {\n TemplateName = mytemplate.TemplateName,\n Priority = 1,\n });\n\n var root = new Ovh.Me.InstallationTemplatePartitionSchemePartition(\"root\", new()\n {\n TemplateName = scheme.TemplateName,\n SchemeName = scheme.Name,\n Mountpoint = \"/\",\n Filesystem = \"ext4\",\n Size = 400,\n Order = 1,\n Type = \"primary\",\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/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmytemplate, err := Me.NewInstallationTemplate(ctx, \"mytemplate\", \u0026Me.InstallationTemplateArgs{\n\t\t\tBaseTemplateName: pulumi.String(\"debian12_64\"),\n\t\t\tTemplateName: pulumi.String(\"mytemplate\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tscheme, err := Me.NewInstallationTemplatePartitionScheme(ctx, \"scheme\", \u0026Me.InstallationTemplatePartitionSchemeArgs{\n\t\t\tTemplateName: mytemplate.TemplateName,\n\t\t\tPriority: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Me.NewInstallationTemplatePartitionSchemePartition(ctx, \"root\", \u0026Me.InstallationTemplatePartitionSchemePartitionArgs{\n\t\t\tTemplateName: scheme.TemplateName,\n\t\t\tSchemeName: scheme.Name,\n\t\t\tMountpoint: pulumi.String(\"/\"),\n\t\t\tFilesystem: pulumi.String(\"ext4\"),\n\t\t\tSize: pulumi.Int(400),\n\t\t\tOrder: pulumi.Int(1),\n\t\t\tType: pulumi.String(\"primary\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.InstallationTemplate;\nimport com.pulumi.ovh.Me.InstallationTemplateArgs;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionScheme;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionSchemeArgs;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionSchemePartition;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionSchemePartitionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var mytemplate = new InstallationTemplate(\"mytemplate\", InstallationTemplateArgs.builder() \n .baseTemplateName(\"debian12_64\")\n .templateName(\"mytemplate\")\n .build());\n\n var scheme = new InstallationTemplatePartitionScheme(\"scheme\", InstallationTemplatePartitionSchemeArgs.builder() \n .templateName(mytemplate.templateName())\n .priority(1)\n .build());\n\n var root = new InstallationTemplatePartitionSchemePartition(\"root\", InstallationTemplatePartitionSchemePartitionArgs.builder() \n .templateName(scheme.templateName())\n .schemeName(scheme.name())\n .mountpoint(\"/\")\n .filesystem(\"ext4\")\n .size(\"400\")\n .order(1)\n .type(\"primary\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mytemplate:\n type: ovh:Me:InstallationTemplate\n properties:\n baseTemplateName: debian12_64\n templateName: mytemplate\n scheme:\n type: ovh:Me:InstallationTemplatePartitionScheme\n properties:\n templateName: ${mytemplate.templateName}\n priority: 1\n root:\n type: ovh:Me:InstallationTemplatePartitionSchemePartition\n properties:\n templateName: ${scheme.templateName}\n schemeName: ${scheme.name}\n mountpoint: /\n filesystem: ext4\n size: '400'\n order: 1\n type: primary\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe resource can be imported using the `template_name`, `scheme_name`, `mountpoint` of the cluster, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Me/installationTemplatePartitionSchemePartition:InstallationTemplatePartitionSchemePartition root template_name/scheme_name/mountpoint\n```\n\n", "properties": { "filesystem": { "type": "string", @@ -16422,19 +16945,22 @@ } }, "ovh:Me/sshKey:SshKey": { - "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst mykey = new ovh.me.SshKey(\"mykey\", {\n key: \"ssh-ed25519 AAAAC3...\",\n keyName: \"mykey\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmykey = ovh.me.SshKey(\"mykey\",\n key=\"ssh-ed25519 AAAAC3...\",\n key_name=\"mykey\")\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 mykey = new Ovh.Me.SshKey(\"mykey\", new()\n {\n Key = \"ssh-ed25519 AAAAC3...\",\n KeyName = \"mykey\",\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/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Me.NewSshKey(ctx, \"mykey\", \u0026Me.SshKeyArgs{\n\t\t\tKey: pulumi.String(\"ssh-ed25519 AAAAC3...\"),\n\t\t\tKeyName: pulumi.String(\"mykey\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.SshKey;\nimport com.pulumi.ovh.Me.SshKeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var mykey = new SshKey(\"mykey\", SshKeyArgs.builder() \n .key(\"ssh-ed25519 AAAAC3...\")\n .keyName(\"mykey\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mykey:\n type: ovh:Me:SshKey\n properties:\n key: ssh-ed25519 AAAAC3...\n keyName: mykey\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "## Example Usage\n\n\u003e __NOTE__ This resource will be removed in next release, please use userMetada instead.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst mykey = new ovh.me.SshKey(\"mykey\", {\n key: \"ssh-ed25519 AAAAC3...\",\n keyName: \"mykey\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmykey = ovh.me.SshKey(\"mykey\",\n key=\"ssh-ed25519 AAAAC3...\",\n key_name=\"mykey\")\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 mykey = new Ovh.Me.SshKey(\"mykey\", new()\n {\n Key = \"ssh-ed25519 AAAAC3...\",\n KeyName = \"mykey\",\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/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Me.NewSshKey(ctx, \"mykey\", \u0026Me.SshKeyArgs{\n\t\t\tKey: pulumi.String(\"ssh-ed25519 AAAAC3...\"),\n\t\t\tKeyName: pulumi.String(\"mykey\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.SshKey;\nimport com.pulumi.ovh.Me.SshKeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var mykey = new SshKey(\"mykey\", SshKeyArgs.builder() \n .key(\"ssh-ed25519 AAAAC3...\")\n .keyName(\"mykey\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mykey:\n type: ovh:Me:SshKey\n properties:\n key: ssh-ed25519 AAAAC3...\n keyName: mykey\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "default": { "type": "boolean", - "description": "True when this public SSH key is used for rescue mode and reinstallations.\n" + "description": "True when this public SSH key is used for rescue mode and reinstallations.\n", + "deprecationMessage": "use userMetada instead" }, "key": { "type": "string", - "description": "The content of the public key in the form \"ssh-algo content\", e.g. \"ssh-ed25519 AAAAC3...\".\n" + "description": "The content of the public key in the form \"ssh-algo content\", e.g. \"ssh-ed25519 AAAAC3...\".\n", + "deprecationMessage": "use userMetada instead" }, "keyName": { "type": "string", - "description": "The friendly name of this SSH key.\n" + "description": "The friendly name of this SSH key.\n", + "deprecationMessage": "use userMetada instead" } }, "required": [ @@ -16445,16 +16971,19 @@ "inputProperties": { "default": { "type": "boolean", - "description": "True when this public SSH key is used for rescue mode and reinstallations.\n" + "description": "True when this public SSH key is used for rescue mode and reinstallations.\n", + "deprecationMessage": "use userMetada instead" }, "key": { "type": "string", "description": "The content of the public key in the form \"ssh-algo content\", e.g. \"ssh-ed25519 AAAAC3...\".\n", + "deprecationMessage": "use userMetada instead", "willReplaceOnChanges": true }, "keyName": { "type": "string", "description": "The friendly name of this SSH key.\n", + "deprecationMessage": "use userMetada instead", "willReplaceOnChanges": true } }, @@ -16467,16 +16996,19 @@ "properties": { "default": { "type": "boolean", - "description": "True when this public SSH key is used for rescue mode and reinstallations.\n" + "description": "True when this public SSH key is used for rescue mode and reinstallations.\n", + "deprecationMessage": "use userMetada instead" }, "key": { "type": "string", "description": "The content of the public key in the form \"ssh-algo content\", e.g. \"ssh-ed25519 AAAAC3...\".\n", + "deprecationMessage": "use userMetada instead", "willReplaceOnChanges": true }, "keyName": { "type": "string", "description": "The friendly name of this SSH key.\n", + "deprecationMessage": "use userMetada instead", "willReplaceOnChanges": true } }, @@ -16806,7 +17338,7 @@ } }, "ovh:Vrack/dedicatedServer:DedicatedServer": { - "description": "\u003e **NOTE:** The resource `ovh.Vrack.DedicatedServer` is DEPRECATED and will be removed in a future version.\nUse the resource `ovh.Vrack.DedicatedServerInterface` instead.\n\nAttach a dedicated server 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\";\n\nconst vds = new ovh.vrack.DedicatedServer(\"vds\", {\n serverId: \"67890\",\n serviceName: \"XXXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nvds = ovh.vrack.DedicatedServer(\"vds\",\n server_id=\"67890\",\n service_name=\"XXXX\")\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 vds = new Ovh.Vrack.DedicatedServer(\"vds\", new()\n {\n ServerId = \"67890\",\n ServiceName = \"XXXX\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\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\t_, err := Vrack.NewDedicatedServer(ctx, \"vds\", \u0026Vrack.DedicatedServerArgs{\n\t\t\tServerId: pulumi.String(\"67890\"),\n\t\t\tServiceName: pulumi.String(\"XXXX\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.Vrack.DedicatedServer;\nimport com.pulumi.ovh.Vrack.DedicatedServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var vds = new DedicatedServer(\"vds\", DedicatedServerArgs.builder() \n .serverId(\"67890\")\n .serviceName(\"XXXX\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vds:\n type: ovh:Vrack:DedicatedServer\n properties:\n serverId: '67890'\n serviceName: XXXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Attach a legacy dedicated server to a vRack.\n\n\u003e **NOTE:** The resource `ovh.Vrack.DedicatedServer` is intended to be used for legacy dedicated servers.\u003cbr /\u003e\nDedicated servers that have configurable network interfaces MUST use the resource `ovh.Vrack.DedicatedServerInterface` instead.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst vds = new ovh.vrack.DedicatedServer(\"vds\", {\n serverId: \"67890\",\n serviceName: \"XXXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nvds = ovh.vrack.DedicatedServer(\"vds\",\n server_id=\"67890\",\n service_name=\"XXXX\")\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 vds = new Ovh.Vrack.DedicatedServer(\"vds\", new()\n {\n ServerId = \"67890\",\n ServiceName = \"XXXX\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\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\t_, err := Vrack.NewDedicatedServer(ctx, \"vds\", \u0026Vrack.DedicatedServerArgs{\n\t\t\tServerId: pulumi.String(\"67890\"),\n\t\t\tServiceName: pulumi.String(\"XXXX\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.Vrack.DedicatedServer;\nimport com.pulumi.ovh.Vrack.DedicatedServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var vds = new DedicatedServer(\"vds\", DedicatedServerArgs.builder() \n .serverId(\"67890\")\n .serviceName(\"XXXX\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vds:\n type: ovh:Vrack:DedicatedServer\n properties:\n serverId: '67890'\n serviceName: XXXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "serverId": { "type": "string", @@ -16855,7 +17387,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\u003e **NOTE:** The resource `ovh.Vrack.DedicatedServerInterface` is intended to be used for dedicated servers that have configurable network interfaces.\u003cbr /\u003e\nLegacy Dedicated servers that do not have configurable network interfaces MUST use the resource `ovh.Vrack.DedicatedServer` instead.\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", @@ -18422,34 +18954,41 @@ "willReplaceOnChanges": true }, "oidcCaContent": { - "type": "string" + "type": "string", + "description": "Content of the certificate for the CA, in base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs.\n" }, "oidcGroupsClaims": { "type": "array", "items": { "type": "string" - } + }, + "description": "Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings.\n" }, "oidcGroupsPrefix": { - "type": "string" + "type": "string", + "description": "Prefix prepended to group claims to prevent clashes with existing names (such as system: groups). For example, the value oidc: will create group names like oidc:engineering and oidc:infra.\n" }, "oidcRequiredClaims": { "type": "array", "items": { "type": "string" - } + }, + "description": "Array of key=value pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value.\"\n" }, "oidcSigningAlgs": { "type": "array", "items": { "type": "string" - } + }, + "description": "Array of signing algorithms accepted. Default is \\\"RS256\\\".\n" }, "oidcUsernameClaim": { - "type": "string" + "type": "string", + "description": "JWT claim to use as the user name. By default sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins.\n" }, "oidcUsernamePrefix": { - "type": "string" + "type": "string", + "description": "Prefix prepended to username claims to prevent clashes with existing names (such as system: users). For example, the value oidc: will create usernames like oidc:jane.doe. If this field isn't set and `oidc_username_claim` is a value other than email the prefix defaults to ( Issuer URL )# where ( Issuer URL ) is the value of oidcIssuerUrl. The value - can be used to disable all prefixing.\n" }, "serviceName": { "type": "string", @@ -18483,34 +19022,41 @@ "description": "See Argument Reference above.\n" }, "oidcCaContent": { - "type": "string" + "type": "string", + "description": "Content of the certificate for the CA, in base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs.\n" }, "oidcGroupsClaims": { "type": "array", "items": { "type": "string" - } + }, + "description": "Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings.\n" }, "oidcGroupsPrefix": { - "type": "string" + "type": "string", + "description": "Prefix prepended to group claims to prevent clashes with existing names (such as system: groups). For example, the value oidc: will create group names like oidc:engineering and oidc:infra.\n" }, "oidcRequiredClaims": { "type": "array", "items": { "type": "string" - } + }, + "description": "Array of key=value pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value.\"\n" }, "oidcSigningAlgs": { "type": "array", "items": { "type": "string" - } + }, + "description": "Array of signing algorithms accepted. Default is \\\"RS256\\\".\n" }, "oidcUsernameClaim": { - "type": "string" + "type": "string", + "description": "JWT claim to use as the user name. By default sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins.\n" }, "oidcUsernamePrefix": { - "type": "string" + "type": "string", + "description": "Prefix prepended to username claims to prevent clashes with existing names (such as system: users). For example, the value oidc: will create usernames like oidc:jane.doe. If this field isn't set and `oidc_username_claim` is a value other than email the prefix defaults to ( Issuer URL )# where ( Issuer URL ) is the value of oidcIssuerUrl. The value - can be used to disable all prefixing.\n" }, "serviceName": { "type": "string", @@ -19749,6 +20295,10 @@ "type": "boolean", "description": "Defines whether the REST API is enabled on a kafka cluster.\n" }, + "kafkaSchemaRegistry": { + "type": "boolean", + "description": "Defines whether the schema registry is enabled on a Kafka cluster\n" + }, "maintenanceTime": { "type": "string", "description": "Time on which maintenances can start every day.\n" @@ -19799,6 +20349,7 @@ "id", "ipRestrictions", "kafkaRestApi", + "kafkaSchemaRegistry", "maintenanceTime", "networkType", "nodes", @@ -21837,6 +22388,79 @@ ] } }, + "ovh:Dedicated/getServerSpecificationsNetwork:getServerSpecificationsNetwork": { + "description": "Use this data source to get the network 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.getServerSpecificationsNetwork({\n serviceName: \"myserver\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nspec = ovh.Dedicated.get_server_specifications_network(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.GetServerSpecificationsNetwork.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.GetServerSpecificationsNetwork(ctx, \u0026dedicated.GetServerSpecificationsNetworkArgs{\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.GetServerSpecificationsNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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.getServerSpecificationsNetwork(GetServerSpecificationsNetworkArgs.builder()\n .serviceName(\"myserver\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n spec:\n fn::invoke:\n Function: ovh:Dedicated:getServerSpecificationsNetwork\n Arguments:\n serviceName: myserver\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "inputs": { + "description": "A collection of arguments for invoking getServerSpecificationsNetwork.\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 getServerSpecificationsNetwork.\n", + "properties": { + "bandwidth": { + "$ref": "#/types/ovh:Dedicated/getServerSpecificationsNetworkBandwidth:getServerSpecificationsNetworkBandwidth", + "description": "vrack bandwidth limitation\n" + }, + "connectionVal": { + "$ref": "#/types/ovh:Dedicated/getServerSpecificationsNetworkConnectionVal:getServerSpecificationsNetworkConnectionVal", + "description": "Network connection flow rate\n" + }, + "id": { + "type": "string", + "description": "The provider-assigned unique ID for this managed resource.\n" + }, + "ola": { + "$ref": "#/types/ovh:Dedicated/getServerSpecificationsNetworkOla:getServerSpecificationsNetworkOla", + "description": "OLA details\n" + }, + "routing": { + "$ref": "#/types/ovh:Dedicated/getServerSpecificationsNetworkRouting:getServerSpecificationsNetworkRouting", + "description": "Routing details\n" + }, + "serviceName": { + "type": "string" + }, + "switching": { + "$ref": "#/types/ovh:Dedicated/getServerSpecificationsNetworkSwitching:getServerSpecificationsNetworkSwitching", + "description": "Switching details\n" + }, + "traffic": { + "$ref": "#/types/ovh:Dedicated/getServerSpecificationsNetworkTraffic:getServerSpecificationsNetworkTraffic", + "description": "Traffic details\n" + }, + "vmac": { + "$ref": "#/types/ovh:Dedicated/getServerSpecificationsNetworkVmac:getServerSpecificationsNetworkVmac", + "description": "VMAC information for this dedicated server\n" + }, + "vrack": { + "$ref": "#/types/ovh:Dedicated/getServerSpecificationsNetworkVrack:getServerSpecificationsNetworkVrack", + "description": "vRack details\n" + } + }, + "type": "object", + "required": [ + "bandwidth", + "connectionVal", + "ola", + "routing", + "serviceName", + "switching", + "traffic", + "vmac", + "vrack", + "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": { @@ -23522,11 +24146,7 @@ "items": { "type": "string" }, - "description": "List of all language available for this template.\n" - }, - "beta": { - "type": "boolean", - "description": "This distribution is new and, although tested and functional, may still display odd behaviour.\n" + "description": "List of all language available for this template. Deprecated, will be removed in next release.\n" }, "bitFormat": { "type": "integer", @@ -23544,11 +24164,8 @@ }, "defaultLanguage": { "type": "string", - "description": "The default language of this template.\n" - }, - "deprecated": { - "type": "boolean", - "description": "is this distribution deprecated.\n" + "description": "The default language of this template. Deprecated, will be removed in next release.\n", + "deprecationMessage": "This field will be removed from the API, please use `userMetadata` instead." }, "description": { "type": "string", @@ -23577,10 +24194,6 @@ "type": "string", "description": "The provider-assigned unique ID for this managed resource.\n" }, - "lastModification": { - "type": "string", - "description": "Date of last modification of the base image.\n" - }, "lvmReady": { "type": "boolean" }, @@ -23590,10 +24203,6 @@ "$ref": "#/types/ovh:Me/getInstallationTemplatePartitionScheme:getInstallationTemplatePartitionScheme" } }, - "supportsSqlServer": { - "type": "boolean", - "description": "This distribution supports the microsoft SQL server.\n" - }, "templateName": { "type": "string" } @@ -23601,21 +24210,17 @@ "type": "object", "required": [ "availableLanguages", - "beta", "bitFormat", "category", "customizations", "defaultLanguage", - "deprecated", "description", "distribution", "family", "filesystems", "hardRaidConfiguration", - "lastModification", "lvmReady", "partitionSchemes", - "supportsSqlServer", "templateName", "id" ] @@ -23952,7 +24557,7 @@ } }, "ovh:Me/getSshKey:getSshKey": { - "description": "Use this data source to retrieve information about an SSH key.\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 mykey = ovh.Me.getSshKey({\n keyName: \"mykey\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmykey = ovh.Me.get_ssh_key(key_name=\"mykey\")\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 mykey = Ovh.Me.GetSshKey.Invoke(new()\n {\n KeyName = \"mykey\",\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/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Me.GetSshKey(ctx, \u0026me.GetSshKeyArgs{\n\t\t\tKeyName: \"mykey\",\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.Me.MeFunctions;\nimport com.pulumi.ovh.Me.inputs.GetSshKeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 mykey = MeFunctions.getSshKey(GetSshKeyArgs.builder()\n .keyName(\"mykey\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n mykey:\n fn::invoke:\n Function: ovh:Me:getSshKey\n Arguments:\n keyName: mykey\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "\u003e __NOTE__ This data source will be removed in next release.\n\nUse this data source to retrieve information about an SSH key.\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 mykey = ovh.Me.getSshKey({\n keyName: \"mykey\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmykey = ovh.Me.get_ssh_key(key_name=\"mykey\")\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 mykey = Ovh.Me.GetSshKey.Invoke(new()\n {\n KeyName = \"mykey\",\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/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Me.GetSshKey(ctx, \u0026me.GetSshKeyArgs{\n\t\t\tKeyName: \"mykey\",\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.Me.MeFunctions;\nimport com.pulumi.ovh.Me.inputs.GetSshKeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 mykey = MeFunctions.getSshKey(GetSshKeyArgs.builder()\n .keyName(\"mykey\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n mykey:\n fn::invoke:\n Function: ovh:Me:getSshKey\n Arguments:\n keyName: mykey\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getSshKey.\n", "properties": { diff --git a/provider/go.mod b/provider/go.mod index 78413e72..b84a70dc 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -7,7 +7,7 @@ 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.42.0 + github.com/ovh/terraform-provider-ovh v0.43.0 github.com/pulumi/pulumi-terraform-bridge/pf v0.33.0 github.com/pulumi/pulumi-terraform-bridge/v3 v3.80.0 github.com/pulumi/pulumi/sdk/v3 v3.112.0 @@ -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.3 // indirect + github.com/ovh/go-ovh v1.5.1 // 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 @@ -233,8 +233,8 @@ require ( golang.org/x/crypto v0.21.0 // indirect golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa // indirect golang.org/x/mod v0.15.0 // indirect - golang.org/x/net v0.21.0 // indirect - golang.org/x/oauth2 v0.16.0 // indirect + golang.org/x/net v0.23.0 // indirect + golang.org/x/oauth2 v0.18.0 // indirect golang.org/x/sync v0.6.0 // indirect golang.org/x/sys v0.18.0 // indirect golang.org/x/term v0.18.0 // indirect diff --git a/provider/go.sum b/provider/go.sum index bbd8e703..99bc00a0 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -2700,10 +2700,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.3 h1:Gs3V823zwTFpzgGLZNI6ILS4rmxZgJwJCz54Er9LwD0= -github.com/ovh/go-ovh v1.4.3/go.mod h1:AkPXVtgwB6xlKblMjRKJJmjRp+ogrE7fz2lVgcQY8SY= -github.com/ovh/terraform-provider-ovh v0.42.0 h1:A6/Z6T3LsiM9G9BBWJpyIL8XbdH/BwZ+Rgg34dw4iiY= -github.com/ovh/terraform-provider-ovh v0.42.0/go.mod h1:vRm/q/XAwfBjPCQ03SA0An2lNzA1CGVFruAc6pWxoVI= +github.com/ovh/go-ovh v1.5.1 h1:P8O+7H+NQuFK9P/j4sFW5C0fvSS2DnHYGPwdVCp45wI= +github.com/ovh/go-ovh v1.5.1/go.mod h1:cTVDnl94z4tl8pP1uZ/8jlVxntjSIf09bNcQ5TJSC7c= +github.com/ovh/terraform-provider-ovh v0.43.0 h1:mjAHMxjbi4+n8anv4+p8AHv3UYfn3B86B/HxsEu/YqU= +github.com/ovh/terraform-provider-ovh v0.43.0/go.mod h1:Fi5Zww9oK8DoOTlSriFDe0bK6prS4qqO2a0dVnXEob4= 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= @@ -3408,8 +3408,8 @@ golang.org/x/net v0.16.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= -golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= -golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -3449,8 +3449,8 @@ golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQ golang.org/x/oauth2 v0.11.0/go.mod h1:LdF7O/8bLR/qWK9DrpXmbHLTouvRHK0SgJl0GmDBchk= golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0= golang.org/x/oauth2 v0.14.0/go.mod h1:lAtNWgaWfL4cm7j2OV8TxGi9Qb7ECORx8DktCY74OwM= -golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= -golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= +golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI= +golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= diff --git a/provider/resources.go b/provider/resources.go index c95ff36d..73d67052 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -679,6 +679,9 @@ func Provider() tfbridge.ProviderInfo { "ovh_dedicated_server_specifications_hardware": { Tok: ovhDataSource(dedicatedMod, "getServerSpecificationsHardware"), }, + "ovh_dedicated_server_specifications_network": { + Tok: ovhDataSource(dedicatedMod, "getServerSpecificationsNetwork"), + }, "ovh_hosting_privatedatabase": { Tok: ovhDataSource(hostingMod, "getPrivateDatabase"), }, diff --git a/sdk/dotnet/CloudProject/Database.cs b/sdk/dotnet/CloudProject/Database.cs index 1b0bea2b..571561b5 100644 --- a/sdk/dotnet/CloudProject/Database.cs +++ b/sdk/dotnet/CloudProject/Database.cs @@ -56,6 +56,7 @@ namespace Pulumi.Ovh.CloudProject /// Version = "3.4", /// Plan = "business", /// KafkaRestApi = true, + /// KafkaSchemaRegistry = true, /// Nodes = new[] /// { /// new Ovh.CloudProject.Inputs.DatabaseNodeArgs @@ -386,6 +387,12 @@ public partial class Database : global::Pulumi.CustomResource [Output("kafkaRestApi")] public Output KafkaRestApi { get; private set; } = null!; + /// + /// Defines whether the schema registry is enabled on a Kafka cluster + /// + [Output("kafkaSchemaRegistry")] + public Output KafkaSchemaRegistry { get; private set; } = null!; + /// /// Time on which maintenances can start every day. /// @@ -562,6 +569,12 @@ public InputList IpRestrictions [Input("kafkaRestApi")] public Input? KafkaRestApi { get; set; } + /// + /// Defines whether the schema registry is enabled on a Kafka cluster + /// + [Input("kafkaSchemaRegistry")] + public Input? KafkaSchemaRegistry { get; set; } + [Input("nodes", required: true)] private InputList? _nodes; @@ -711,6 +724,12 @@ public InputList IpRestrictions [Input("kafkaRestApi")] public Input? KafkaRestApi { get; set; } + /// + /// Defines whether the schema registry is enabled on a Kafka cluster + /// + [Input("kafkaSchemaRegistry")] + public Input? KafkaSchemaRegistry { get; set; } + /// /// Time on which maintenances can start every day. /// diff --git a/sdk/dotnet/CloudProject/GetKubeOidc.cs b/sdk/dotnet/CloudProject/GetKubeOidc.cs index 7e40189b..20f423c5 100644 --- a/sdk/dotnet/CloudProject/GetKubeOidc.cs +++ b/sdk/dotnet/CloudProject/GetKubeOidc.cs @@ -95,22 +95,36 @@ public sealed class GetKubeOidcArgs : global::Pulumi.InvokeArgs [Input("kubeId", required: true)] public string KubeId { get; set; } = null!; + /// + /// Content of the certificate for the CA, in base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + /// [Input("oidcCaContent")] public string? OidcCaContent { get; set; } [Input("oidcGroupsClaims")] private List? _oidcGroupsClaims; + + /// + /// Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + /// public List OidcGroupsClaims { get => _oidcGroupsClaims ?? (_oidcGroupsClaims = new List()); set => _oidcGroupsClaims = value; } + /// + /// Prefix prepended to group claims to prevent clashes with existing names (such as system: groups). For example, the value oidc: will create group names like oidc:engineering and oidc:infra. + /// [Input("oidcGroupsPrefix")] public string? OidcGroupsPrefix { get; set; } [Input("oidcRequiredClaims")] private List? _oidcRequiredClaims; + + /// + /// Array of key=value pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." + /// public List OidcRequiredClaims { get => _oidcRequiredClaims ?? (_oidcRequiredClaims = new List()); @@ -119,15 +133,25 @@ public List OidcRequiredClaims [Input("oidcSigningAlgs")] private List? _oidcSigningAlgs; + + /// + /// Array of signing algorithms accepted. Default is \"RS256\". + /// public List OidcSigningAlgs { get => _oidcSigningAlgs ?? (_oidcSigningAlgs = new List()); set => _oidcSigningAlgs = value; } + /// + /// JWT claim to use as the user name. By default sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + /// [Input("oidcUsernameClaim")] public string? OidcUsernameClaim { get; set; } + /// + /// Prefix prepended to username claims to prevent clashes with existing names (such as system: users). For example, the value oidc: will create usernames like oidc:jane.doe. If this field isn't set and `oidc_username_claim` is a value other than email the prefix defaults to ( Issuer URL )# where ( Issuer URL ) is the value of oidcIssuerUrl. The value - can be used to disable all prefixing. + /// [Input("oidcUsernamePrefix")] public string? OidcUsernamePrefix { get; set; } @@ -164,22 +188,36 @@ public sealed class GetKubeOidcInvokeArgs : global::Pulumi.InvokeArgs [Input("kubeId", required: true)] public Input KubeId { get; set; } = null!; + /// + /// Content of the certificate for the CA, in base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + /// [Input("oidcCaContent")] public Input? OidcCaContent { get; set; } [Input("oidcGroupsClaims")] private InputList? _oidcGroupsClaims; + + /// + /// Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + /// public InputList OidcGroupsClaims { get => _oidcGroupsClaims ?? (_oidcGroupsClaims = new InputList()); set => _oidcGroupsClaims = value; } + /// + /// Prefix prepended to group claims to prevent clashes with existing names (such as system: groups). For example, the value oidc: will create group names like oidc:engineering and oidc:infra. + /// [Input("oidcGroupsPrefix")] public Input? OidcGroupsPrefix { get; set; } [Input("oidcRequiredClaims")] private InputList? _oidcRequiredClaims; + + /// + /// Array of key=value pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." + /// public InputList OidcRequiredClaims { get => _oidcRequiredClaims ?? (_oidcRequiredClaims = new InputList()); @@ -188,15 +226,25 @@ public InputList OidcRequiredClaims [Input("oidcSigningAlgs")] private InputList? _oidcSigningAlgs; + + /// + /// Array of signing algorithms accepted. Default is \"RS256\". + /// public InputList OidcSigningAlgs { get => _oidcSigningAlgs ?? (_oidcSigningAlgs = new InputList()); set => _oidcSigningAlgs = value; } + /// + /// JWT claim to use as the user name. By default sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + /// [Input("oidcUsernameClaim")] public Input? OidcUsernameClaim { get; set; } + /// + /// Prefix prepended to username claims to prevent clashes with existing names (such as system: users). For example, the value oidc: will create usernames like oidc:jane.doe. If this field isn't set and `oidc_username_claim` is a value other than email the prefix defaults to ( Issuer URL )# where ( Issuer URL ) is the value of oidcIssuerUrl. The value - can be used to disable all prefixing. + /// [Input("oidcUsernamePrefix")] public Input? OidcUsernamePrefix { get; set; } @@ -233,12 +281,33 @@ public sealed class GetKubeOidcResult /// See Argument Reference above. /// public readonly string KubeId; + /// + /// Content of the certificate for the CA, in base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + /// public readonly string? OidcCaContent; + /// + /// Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + /// public readonly ImmutableArray OidcGroupsClaims; + /// + /// Prefix prepended to group claims to prevent clashes with existing names (such as system: groups). For example, the value oidc: will create group names like oidc:engineering and oidc:infra. + /// public readonly string? OidcGroupsPrefix; + /// + /// Array of key=value pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." + /// public readonly ImmutableArray OidcRequiredClaims; + /// + /// Array of signing algorithms accepted. Default is \"RS256\". + /// public readonly ImmutableArray OidcSigningAlgs; + /// + /// JWT claim to use as the user name. By default sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + /// public readonly string? OidcUsernameClaim; + /// + /// Prefix prepended to username claims to prevent clashes with existing names (such as system: users). For example, the value oidc: will create usernames like oidc:jane.doe. If this field isn't set and `oidc_username_claim` is a value other than email the prefix defaults to ( Issuer URL )# where ( Issuer URL ) is the value of oidcIssuerUrl. The value - can be used to disable all prefixing. + /// public readonly string? OidcUsernamePrefix; /// /// See Argument Reference above. diff --git a/sdk/dotnet/CloudProject/KubeOidc.cs b/sdk/dotnet/CloudProject/KubeOidc.cs index 7eda50b9..0f1c7d7a 100644 --- a/sdk/dotnet/CloudProject/KubeOidc.cs +++ b/sdk/dotnet/CloudProject/KubeOidc.cs @@ -82,24 +82,45 @@ public partial class KubeOidc : global::Pulumi.CustomResource [Output("kubeId")] public Output KubeId { get; private set; } = null!; + /// + /// Content of the certificate for the CA, in Base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + /// [Output("oidcCaContent")] public Output OidcCaContent { get; private set; } = null!; + /// + /// Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + /// [Output("oidcGroupsClaims")] public Output> OidcGroupsClaims { get; private set; } = null!; + /// + /// Prefix prepended to group claims to prevent clashes with existing names (such as `system:groups`). For example, the value `oidc:` will create group names like `oidc:engineering` and `oidc:infra`. + /// [Output("oidcGroupsPrefix")] public Output OidcGroupsPrefix { get; private set; } = null!; + /// + /// Array of `key=value` pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." + /// [Output("oidcRequiredClaims")] public Output> OidcRequiredClaims { get; private set; } = null!; + /// + /// Array of signing algorithms accepted. Default is `RS256`. + /// [Output("oidcSigningAlgs")] public Output> OidcSigningAlgs { get; private set; } = null!; + /// + /// JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + /// [Output("oidcUsernameClaim")] public Output OidcUsernameClaim { get; private set; } = null!; + /// + /// Prefix prepended to username claims to prevent clashes with existing names (such as `system:users`). For example, the value `oidc:` will create usernames like `oidc:jane.doe`. If this field isn't set and `oidc_username_claim` is a value other than email the prefix defaults to `issuer_url` where `issuer_url` is the value of `issuer_url.` The value - can be used to disable all prefixing. + /// [Output("oidcUsernamePrefix")] public Output OidcUsernamePrefix { get; private set; } = null!; @@ -174,22 +195,36 @@ public sealed class KubeOidcArgs : global::Pulumi.ResourceArgs [Input("kubeId", required: true)] public Input KubeId { get; set; } = null!; + /// + /// Content of the certificate for the CA, in Base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + /// [Input("oidcCaContent")] public Input? OidcCaContent { get; set; } [Input("oidcGroupsClaims")] private InputList? _oidcGroupsClaims; + + /// + /// Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + /// public InputList OidcGroupsClaims { get => _oidcGroupsClaims ?? (_oidcGroupsClaims = new InputList()); set => _oidcGroupsClaims = value; } + /// + /// Prefix prepended to group claims to prevent clashes with existing names (such as `system:groups`). For example, the value `oidc:` will create group names like `oidc:engineering` and `oidc:infra`. + /// [Input("oidcGroupsPrefix")] public Input? OidcGroupsPrefix { get; set; } [Input("oidcRequiredClaims")] private InputList? _oidcRequiredClaims; + + /// + /// Array of `key=value` pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." + /// public InputList OidcRequiredClaims { get => _oidcRequiredClaims ?? (_oidcRequiredClaims = new InputList()); @@ -198,15 +233,25 @@ public InputList OidcRequiredClaims [Input("oidcSigningAlgs")] private InputList? _oidcSigningAlgs; + + /// + /// Array of signing algorithms accepted. Default is `RS256`. + /// public InputList OidcSigningAlgs { get => _oidcSigningAlgs ?? (_oidcSigningAlgs = new InputList()); set => _oidcSigningAlgs = value; } + /// + /// JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + /// [Input("oidcUsernameClaim")] public Input? OidcUsernameClaim { get; set; } + /// + /// Prefix prepended to username claims to prevent clashes with existing names (such as `system:users`). For example, the value `oidc:` will create usernames like `oidc:jane.doe`. If this field isn't set and `oidc_username_claim` is a value other than email the prefix defaults to `issuer_url` where `issuer_url` is the value of `issuer_url.` The value - can be used to disable all prefixing. + /// [Input("oidcUsernamePrefix")] public Input? OidcUsernamePrefix { get; set; } @@ -242,22 +287,36 @@ public sealed class KubeOidcState : global::Pulumi.ResourceArgs [Input("kubeId")] public Input? KubeId { get; set; } + /// + /// Content of the certificate for the CA, in Base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + /// [Input("oidcCaContent")] public Input? OidcCaContent { get; set; } [Input("oidcGroupsClaims")] private InputList? _oidcGroupsClaims; + + /// + /// Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + /// public InputList OidcGroupsClaims { get => _oidcGroupsClaims ?? (_oidcGroupsClaims = new InputList()); set => _oidcGroupsClaims = value; } + /// + /// Prefix prepended to group claims to prevent clashes with existing names (such as `system:groups`). For example, the value `oidc:` will create group names like `oidc:engineering` and `oidc:infra`. + /// [Input("oidcGroupsPrefix")] public Input? OidcGroupsPrefix { get; set; } [Input("oidcRequiredClaims")] private InputList? _oidcRequiredClaims; + + /// + /// Array of `key=value` pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." + /// public InputList OidcRequiredClaims { get => _oidcRequiredClaims ?? (_oidcRequiredClaims = new InputList()); @@ -266,15 +325,25 @@ public InputList OidcRequiredClaims [Input("oidcSigningAlgs")] private InputList? _oidcSigningAlgs; + + /// + /// Array of signing algorithms accepted. Default is `RS256`. + /// public InputList OidcSigningAlgs { get => _oidcSigningAlgs ?? (_oidcSigningAlgs = new InputList()); set => _oidcSigningAlgs = value; } + /// + /// JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + /// [Input("oidcUsernameClaim")] public Input? OidcUsernameClaim { get; set; } + /// + /// Prefix prepended to username claims to prevent clashes with existing names (such as `system:users`). For example, the value `oidc:` will create usernames like `oidc:jane.doe`. If this field isn't set and `oidc_username_claim` is a value other than email the prefix defaults to `issuer_url` where `issuer_url` is the value of `issuer_url.` The value - can be used to disable all prefixing. + /// [Input("oidcUsernamePrefix")] public Input? OidcUsernamePrefix { get; set; } diff --git a/sdk/dotnet/CloudProjectDatabase/GetDatabase.cs b/sdk/dotnet/CloudProjectDatabase/GetDatabase.cs index 94144dc1..6976ee87 100644 --- a/sdk/dotnet/CloudProjectDatabase/GetDatabase.cs +++ b/sdk/dotnet/CloudProjectDatabase/GetDatabase.cs @@ -194,6 +194,10 @@ public sealed class GetDatabaseResult /// public readonly bool KafkaRestApi; /// + /// Defines whether the schema registry is enabled on a Kafka cluster + /// + public readonly bool KafkaSchemaRegistry; + /// /// Time on which maintenances can start every day. /// public readonly string MaintenanceTime; @@ -251,6 +255,8 @@ private GetDatabaseResult( bool kafkaRestApi, + bool kafkaSchemaRegistry, + string maintenanceTime, string networkType, @@ -280,6 +286,7 @@ private GetDatabaseResult( Id = id; IpRestrictions = ipRestrictions; KafkaRestApi = kafkaRestApi; + KafkaSchemaRegistry = kafkaSchemaRegistry; MaintenanceTime = maintenanceTime; NetworkType = networkType; Nodes = nodes; diff --git a/sdk/dotnet/CloudProjectDatabase/M3DbUser.cs b/sdk/dotnet/CloudProjectDatabase/M3DbUser.cs index 6f44ecef..9dbd6594 100644 --- a/sdk/dotnet/CloudProjectDatabase/M3DbUser.cs +++ b/sdk/dotnet/CloudProjectDatabase/M3DbUser.cs @@ -42,7 +42,7 @@ public partial class M3DbUser : global::Pulumi.CustomResource public Output Group { get; private set; } = null!; /// - /// Name of the user. A user named "avnadmin" is map with already created admin user instead of create a new user. + /// Name of the user. A user named "avnadmin" is mapped with already created admin user instead of creating a new user. /// [Output("name")] public Output Name { get; private set; } = null!; @@ -136,7 +136,7 @@ public sealed class M3DbUserArgs : global::Pulumi.ResourceArgs public Input? Group { get; set; } /// - /// Name of the user. A user named "avnadmin" is map with already created admin user instead of create a new user. + /// Name of the user. A user named "avnadmin" is mapped with already created admin user instead of creating a new user. /// [Input("name")] public Input? Name { get; set; } @@ -181,7 +181,7 @@ public sealed class M3DbUserState : global::Pulumi.ResourceArgs public Input? Group { get; set; } /// - /// Name of the user. A user named "avnadmin" is map with already created admin user instead of create a new user. + /// Name of the user. A user named "avnadmin" is mapped with already created admin user instead of creating a new user. /// [Input("name")] public Input? Name { get; set; } diff --git a/sdk/dotnet/CloudProjectDatabase/MongoDbUser.cs b/sdk/dotnet/CloudProjectDatabase/MongoDbUser.cs index 4061ea0e..dad10d12 100644 --- a/sdk/dotnet/CloudProjectDatabase/MongoDbUser.cs +++ b/sdk/dotnet/CloudProjectDatabase/MongoDbUser.cs @@ -36,7 +36,7 @@ public partial class MongoDbUser : global::Pulumi.CustomResource public Output CreatedAt { get; private set; } = null!; /// - /// Name of the user. + /// Name of the user. A user named "admin" is mapped with already created admin@admin user instead of creating a new user. /// [Output("name")] public Output Name { get; private set; } = null!; @@ -148,7 +148,7 @@ public sealed class MongoDbUserArgs : global::Pulumi.ResourceArgs public Input ClusterId { get; set; } = null!; /// - /// Name of the user. + /// Name of the user. A user named "admin" is mapped with already created admin@admin user instead of creating a new user. /// [Input("name")] public Input? Name { get; set; } @@ -217,7 +217,7 @@ public sealed class MongoDbUserState : global::Pulumi.ResourceArgs public Input? CreatedAt { get; set; } /// - /// Name of the user. + /// Name of the user. A user named "admin" is mapped with already created admin@admin user instead of creating a new user. /// [Input("name")] public Input? Name { get; set; } diff --git a/sdk/dotnet/CloudProjectDatabase/OpensearchUser.cs b/sdk/dotnet/CloudProjectDatabase/OpensearchUser.cs index e5457d56..a8888714 100644 --- a/sdk/dotnet/CloudProjectDatabase/OpensearchUser.cs +++ b/sdk/dotnet/CloudProjectDatabase/OpensearchUser.cs @@ -42,7 +42,7 @@ public partial class OpensearchUser : global::Pulumi.CustomResource public Output CreatedAt { get; private set; } = null!; /// - /// Username affected by this acl. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + /// Username affected by this acl. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. /// [Output("name")] public Output Name { get; private set; } = null!; @@ -142,7 +142,7 @@ public InputList Acls public Input ClusterId { get; set; } = null!; /// - /// Username affected by this acl. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + /// Username affected by this acl. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. /// [Input("name")] public Input? Name { get; set; } @@ -193,7 +193,7 @@ public InputList Acls public Input? CreatedAt { get; set; } /// - /// Username affected by this acl. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + /// Username affected by this acl. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. /// [Input("name")] public Input? Name { get; set; } diff --git a/sdk/dotnet/CloudProjectDatabase/PostgresSqlUser.cs b/sdk/dotnet/CloudProjectDatabase/PostgresSqlUser.cs index 393a3f0f..53d87c7b 100644 --- a/sdk/dotnet/CloudProjectDatabase/PostgresSqlUser.cs +++ b/sdk/dotnet/CloudProjectDatabase/PostgresSqlUser.cs @@ -36,7 +36,7 @@ public partial class PostgresSqlUser : global::Pulumi.CustomResource public Output CreatedAt { get; private set; } = null!; /// - /// Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + /// Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. /// [Output("name")] public Output Name { get; private set; } = null!; @@ -131,7 +131,7 @@ public sealed class PostgresSqlUserArgs : global::Pulumi.ResourceArgs public Input ClusterId { get; set; } = null!; /// - /// Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + /// Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. /// [Input("name")] public Input? Name { get; set; } @@ -183,7 +183,7 @@ public sealed class PostgresSqlUserState : global::Pulumi.ResourceArgs public Input? CreatedAt { get; set; } /// - /// Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + /// Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. /// [Input("name")] public Input? Name { get; set; } diff --git a/sdk/dotnet/CloudProjectDatabase/RedisUser.cs b/sdk/dotnet/CloudProjectDatabase/RedisUser.cs index 49563bf0..5a807ec4 100644 --- a/sdk/dotnet/CloudProjectDatabase/RedisUser.cs +++ b/sdk/dotnet/CloudProjectDatabase/RedisUser.cs @@ -60,7 +60,7 @@ public partial class RedisUser : global::Pulumi.CustomResource public Output> Keys { get; private set; } = null!; /// - /// Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + /// Name of the user. /// [Output("name")] public Output Name { get; private set; } = null!; @@ -196,7 +196,7 @@ public InputList Keys } /// - /// Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + /// Name of the user. /// [Input("name")] public Input? Name { get; set; } @@ -283,7 +283,7 @@ public InputList Keys } /// - /// Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + /// Name of the user. /// [Input("name")] public Input? Name { get; set; } diff --git a/sdk/dotnet/CloudProjectDatabase/User.cs b/sdk/dotnet/CloudProjectDatabase/User.cs index 73efa685..1c47e44f 100644 --- a/sdk/dotnet/CloudProjectDatabase/User.cs +++ b/sdk/dotnet/CloudProjectDatabase/User.cs @@ -43,7 +43,7 @@ public partial class User : global::Pulumi.CustomResource public Output Engine { get; private set; } = null!; /// - /// Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. The "Grafana" engine only allows the "avnadmin" mapping. + /// Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. The "Grafana" engine only allows the "avnadmin" mapping. /// [Output("name")] public Output Name { get; private set; } = null!; @@ -138,7 +138,7 @@ public sealed class UserArgs : global::Pulumi.ResourceArgs public Input Engine { get; set; } = null!; /// - /// Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. The "Grafana" engine only allows the "avnadmin" mapping. + /// Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. The "Grafana" engine only allows the "avnadmin" mapping. /// [Input("name")] public Input? Name { get; set; } @@ -184,7 +184,7 @@ public sealed class UserState : global::Pulumi.ResourceArgs public Input? Engine { get; set; } /// - /// Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. The "Grafana" engine only allows the "avnadmin" mapping. + /// Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. The "Grafana" engine only allows the "avnadmin" mapping. /// [Input("name")] public Input? Name { get; set; } diff --git a/sdk/dotnet/Config/Config.cs b/sdk/dotnet/Config/Config.cs index 831824de..1b336a36 100644 --- a/sdk/dotnet/Config/Config.cs +++ b/sdk/dotnet/Config/Config.cs @@ -34,7 +34,7 @@ public void Set(T value) private static readonly __Value _applicationKey = new __Value(() => __config.Get("applicationKey") ?? Utilities.GetEnv("OVH_APPLICATION_KEY")); /// - /// The OVH API Application Key. + /// The OVH API Application Key /// public static string? ApplicationKey { @@ -44,7 +44,7 @@ public static string? ApplicationKey private static readonly __Value _applicationSecret = new __Value(() => __config.Get("applicationSecret") ?? Utilities.GetEnv("OVH_APPLICATION_SECRET")); /// - /// The OVH API Application Secret. + /// The OVH API Application Secret /// public static string? ApplicationSecret { @@ -52,9 +52,29 @@ public static string? ApplicationSecret set => _applicationSecret.Set(value); } + private static readonly __Value _clientId = new __Value(() => __config.Get("clientId")); + /// + /// OAuth 2.0 application's ID + /// + public static string? ClientId + { + get => _clientId.Get(); + set => _clientId.Set(value); + } + + private static readonly __Value _clientSecret = new __Value(() => __config.Get("clientSecret")); + /// + /// OAuth 2.0 application's secret + /// + public static string? ClientSecret + { + get => _clientSecret.Get(); + set => _clientSecret.Set(value); + } + private static readonly __Value _consumerKey = new __Value(() => __config.Get("consumerKey") ?? Utilities.GetEnv("OVH_CONSUMER_KEY")); /// - /// The OVH API Consumer key. + /// The OVH API Consumer Key /// public static string? ConsumerKey { @@ -64,7 +84,7 @@ public static string? ConsumerKey private static readonly __Value _endpoint = new __Value(() => __config.Get("endpoint") ?? Utilities.GetEnv("OVH_ENDPOINT")); /// - /// The OVH API endpoint to target (ex: "ovh-eu"). + /// The OVH API endpoint to target (ex: "ovh-eu") /// public static string? Endpoint { diff --git a/sdk/dotnet/Dedicated/GetServerSpecificationsNetwork.cs b/sdk/dotnet/Dedicated/GetServerSpecificationsNetwork.cs new file mode 100644 index 00000000..85259cd6 --- /dev/null +++ b/sdk/dotnet/Dedicated/GetServerSpecificationsNetwork.cs @@ -0,0 +1,172 @@ +// *** 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 GetServerSpecificationsNetwork + { + /// + /// Use this data source to get the network 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.GetServerSpecificationsNetwork.Invoke(new() + /// { + /// ServiceName = "myserver", + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + public static Task InvokeAsync(GetServerSpecificationsNetworkArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("ovh:Dedicated/getServerSpecificationsNetwork:getServerSpecificationsNetwork", args ?? new GetServerSpecificationsNetworkArgs(), options.WithDefaults()); + + /// + /// Use this data source to get the network 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.GetServerSpecificationsNetwork.Invoke(new() + /// { + /// ServiceName = "myserver", + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + public static Output Invoke(GetServerSpecificationsNetworkInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("ovh:Dedicated/getServerSpecificationsNetwork:getServerSpecificationsNetwork", args ?? new GetServerSpecificationsNetworkInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetServerSpecificationsNetworkArgs : global::Pulumi.InvokeArgs + { + /// + /// The internal name of your dedicated server. + /// + [Input("serviceName", required: true)] + public string ServiceName { get; set; } = null!; + + public GetServerSpecificationsNetworkArgs() + { + } + public static new GetServerSpecificationsNetworkArgs Empty => new GetServerSpecificationsNetworkArgs(); + } + + public sealed class GetServerSpecificationsNetworkInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The internal name of your dedicated server. + /// + [Input("serviceName", required: true)] + public Input ServiceName { get; set; } = null!; + + public GetServerSpecificationsNetworkInvokeArgs() + { + } + public static new GetServerSpecificationsNetworkInvokeArgs Empty => new GetServerSpecificationsNetworkInvokeArgs(); + } + + + [OutputType] + public sealed class GetServerSpecificationsNetworkResult + { + /// + /// vrack bandwidth limitation + /// + public readonly Outputs.GetServerSpecificationsNetworkBandwidthResult Bandwidth; + /// + /// Network connection flow rate + /// + public readonly Outputs.GetServerSpecificationsNetworkConnectionValResult ConnectionVal; + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + /// + /// OLA details + /// + public readonly Outputs.GetServerSpecificationsNetworkOlaResult Ola; + /// + /// Routing details + /// + public readonly Outputs.GetServerSpecificationsNetworkRoutingResult Routing; + public readonly string ServiceName; + /// + /// Switching details + /// + public readonly Outputs.GetServerSpecificationsNetworkSwitchingResult Switching; + /// + /// Traffic details + /// + public readonly Outputs.GetServerSpecificationsNetworkTrafficResult Traffic; + /// + /// VMAC information for this dedicated server + /// + public readonly Outputs.GetServerSpecificationsNetworkVmacResult Vmac; + /// + /// vRack details + /// + public readonly Outputs.GetServerSpecificationsNetworkVrackResult Vrack; + + [OutputConstructor] + private GetServerSpecificationsNetworkResult( + Outputs.GetServerSpecificationsNetworkBandwidthResult bandwidth, + + Outputs.GetServerSpecificationsNetworkConnectionValResult connectionVal, + + string id, + + Outputs.GetServerSpecificationsNetworkOlaResult ola, + + Outputs.GetServerSpecificationsNetworkRoutingResult routing, + + string serviceName, + + Outputs.GetServerSpecificationsNetworkSwitchingResult switching, + + Outputs.GetServerSpecificationsNetworkTrafficResult traffic, + + Outputs.GetServerSpecificationsNetworkVmacResult vmac, + + Outputs.GetServerSpecificationsNetworkVrackResult vrack) + { + Bandwidth = bandwidth; + ConnectionVal = connectionVal; + Id = id; + Ola = ola; + Routing = routing; + ServiceName = serviceName; + Switching = switching; + Traffic = traffic; + Vmac = vmac; + Vrack = vrack; + } + } +} diff --git a/sdk/dotnet/Dedicated/Inputs/ServerInstallTaskDetailsArgs.cs b/sdk/dotnet/Dedicated/Inputs/ServerInstallTaskDetailsArgs.cs index ab72843e..b7a1e4d9 100644 --- a/sdk/dotnet/Dedicated/Inputs/ServerInstallTaskDetailsArgs.cs +++ b/sdk/dotnet/Dedicated/Inputs/ServerInstallTaskDetailsArgs.cs @@ -25,19 +25,13 @@ public sealed class ServerInstallTaskDetailsArgs : global::Pulumi.ResourceArgs public Input? DiskGroupId { get; set; } /// - /// set to true to install sql server (Windows template only). - /// - [Input("installSqlServer")] - public Input? InstallSqlServer { get; set; } - - /// - /// language. + /// Deprecated, will be removed in next release. /// [Input("language")] public Input? Language { get; set; } /// - /// set to true to disable RAID. + /// Set to true to disable RAID. /// [Input("noRaid")] public Input? NoRaid { get; set; } @@ -61,13 +55,15 @@ public sealed class ServerInstallTaskDetailsArgs : global::Pulumi.ResourceArgs public Input? SoftRaidDevices { get; set; } /// - /// Name of the ssh key that should be installed. Password login will be disabled. - /// - [Input("sshKeyName")] - public Input? SshKeyName { get; set; } - - /// - /// set to true to use SPLA. + /// Deprecated, will be removed in next release. + /// + /// The `user_metadata` block supports many arguments, here is a non-exhaustive list depending on the OS: + /// + /// -[see OS questions](https://help.ovhcloud.com/csm/en-dedicated-servers-api-os-installation?id=kb_article_view&sysparm_article=KB0061951#os-questions) + /// + /// -[see api](https://eu.api.ovh.com/console-preview/?section=%2Fdedicated%2FinstallationTemplate&branch=v1#get-/dedicated/installationTemplate/-templateName-) + /// + /// -[see documentation](https://help.ovhcloud.com/csm/en-ie-dedicated-servers-api-os-installation?id=kb_article_view&sysparm_article=KB0061950#create-an-os-installation-task) to get more information /// [Input("useSpla")] public Input? UseSpla { get; set; } diff --git a/sdk/dotnet/Dedicated/Inputs/ServerInstallTaskDetailsGetArgs.cs b/sdk/dotnet/Dedicated/Inputs/ServerInstallTaskDetailsGetArgs.cs index 78840d31..4c1f049b 100644 --- a/sdk/dotnet/Dedicated/Inputs/ServerInstallTaskDetailsGetArgs.cs +++ b/sdk/dotnet/Dedicated/Inputs/ServerInstallTaskDetailsGetArgs.cs @@ -25,19 +25,13 @@ public sealed class ServerInstallTaskDetailsGetArgs : global::Pulumi.ResourceArg public Input? DiskGroupId { get; set; } /// - /// set to true to install sql server (Windows template only). - /// - [Input("installSqlServer")] - public Input? InstallSqlServer { get; set; } - - /// - /// language. + /// Deprecated, will be removed in next release. /// [Input("language")] public Input? Language { get; set; } /// - /// set to true to disable RAID. + /// Set to true to disable RAID. /// [Input("noRaid")] public Input? NoRaid { get; set; } @@ -61,13 +55,15 @@ public sealed class ServerInstallTaskDetailsGetArgs : global::Pulumi.ResourceArg public Input? SoftRaidDevices { get; set; } /// - /// Name of the ssh key that should be installed. Password login will be disabled. - /// - [Input("sshKeyName")] - public Input? SshKeyName { get; set; } - - /// - /// set to true to use SPLA. + /// Deprecated, will be removed in next release. + /// + /// The `user_metadata` block supports many arguments, here is a non-exhaustive list depending on the OS: + /// + /// -[see OS questions](https://help.ovhcloud.com/csm/en-dedicated-servers-api-os-installation?id=kb_article_view&sysparm_article=KB0061951#os-questions) + /// + /// -[see api](https://eu.api.ovh.com/console-preview/?section=%2Fdedicated%2FinstallationTemplate&branch=v1#get-/dedicated/installationTemplate/-templateName-) + /// + /// -[see documentation](https://help.ovhcloud.com/csm/en-ie-dedicated-servers-api-os-installation?id=kb_article_view&sysparm_article=KB0061950#create-an-os-installation-task) to get more information /// [Input("useSpla")] public Input? UseSpla { get; set; } diff --git a/sdk/dotnet/Dedicated/Inputs/ServerInstallTaskUserMetadataArgs.cs b/sdk/dotnet/Dedicated/Inputs/ServerInstallTaskUserMetadataArgs.cs new file mode 100644 index 00000000..fc2ee26d --- /dev/null +++ b/sdk/dotnet/Dedicated/Inputs/ServerInstallTaskUserMetadataArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Inputs +{ + + public sealed class ServerInstallTaskUserMetadataArgs : global::Pulumi.ResourceArgs + { + /// + /// The key for the user_metadata + /// + [Input("key", required: true)] + public Input Key { get; set; } = null!; + + /// + /// The value for the user_metadata + /// + [Input("value", required: true)] + public Input Value { get; set; } = null!; + + public ServerInstallTaskUserMetadataArgs() + { + } + public static new ServerInstallTaskUserMetadataArgs Empty => new ServerInstallTaskUserMetadataArgs(); + } +} diff --git a/sdk/dotnet/Dedicated/Inputs/ServerInstallTaskUserMetadataGetArgs.cs b/sdk/dotnet/Dedicated/Inputs/ServerInstallTaskUserMetadataGetArgs.cs new file mode 100644 index 00000000..9abf123a --- /dev/null +++ b/sdk/dotnet/Dedicated/Inputs/ServerInstallTaskUserMetadataGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Inputs +{ + + public sealed class ServerInstallTaskUserMetadataGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The key for the user_metadata + /// + [Input("key", required: true)] + public Input Key { get; set; } = null!; + + /// + /// The value for the user_metadata + /// + [Input("value", required: true)] + public Input Value { get; set; } = null!; + + public ServerInstallTaskUserMetadataGetArgs() + { + } + public static new ServerInstallTaskUserMetadataGetArgs Empty => new ServerInstallTaskUserMetadataGetArgs(); + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkBandwidthInternetToOvhResult.cs b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkBandwidthInternetToOvhResult.cs new file mode 100644 index 00000000..6461b0a4 --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkBandwidthInternetToOvhResult.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 GetServerSpecificationsNetworkBandwidthInternetToOvhResult + { + public readonly string Unit; + public readonly double Value; + + [OutputConstructor] + private GetServerSpecificationsNetworkBandwidthInternetToOvhResult( + string unit, + + double value) + { + Unit = unit; + Value = value; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkBandwidthOvhToInternetResult.cs b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkBandwidthOvhToInternetResult.cs new file mode 100644 index 00000000..399bc5fb --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkBandwidthOvhToInternetResult.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 GetServerSpecificationsNetworkBandwidthOvhToInternetResult + { + public readonly string Unit; + public readonly double Value; + + [OutputConstructor] + private GetServerSpecificationsNetworkBandwidthOvhToInternetResult( + string unit, + + double value) + { + Unit = unit; + Value = value; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkBandwidthOvhToOvhResult.cs b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkBandwidthOvhToOvhResult.cs new file mode 100644 index 00000000..3c2f44bc --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkBandwidthOvhToOvhResult.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 GetServerSpecificationsNetworkBandwidthOvhToOvhResult + { + public readonly string Unit; + public readonly double Value; + + [OutputConstructor] + private GetServerSpecificationsNetworkBandwidthOvhToOvhResult( + string unit, + + double value) + { + Unit = unit; + Value = value; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkBandwidthResult.cs b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkBandwidthResult.cs new file mode 100644 index 00000000..e6a94520 --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkBandwidthResult.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Outputs +{ + + [OutputType] + public sealed class GetServerSpecificationsNetworkBandwidthResult + { + /// + /// Bandwidth limitation Internet to OVH + /// + public readonly Outputs.GetServerSpecificationsNetworkBandwidthInternetToOvhResult InternetToOvh; + /// + /// Bandwidth limitation OVH to Internet + /// + public readonly Outputs.GetServerSpecificationsNetworkBandwidthOvhToInternetResult OvhToInternet; + /// + /// Bandwidth limitation OVH to OVH + /// + public readonly Outputs.GetServerSpecificationsNetworkBandwidthOvhToOvhResult OvhToOvh; + /// + /// Bandwidth offer type (included┃standard) + /// + public readonly string Type; + + [OutputConstructor] + private GetServerSpecificationsNetworkBandwidthResult( + Outputs.GetServerSpecificationsNetworkBandwidthInternetToOvhResult internetToOvh, + + Outputs.GetServerSpecificationsNetworkBandwidthOvhToInternetResult ovhToInternet, + + Outputs.GetServerSpecificationsNetworkBandwidthOvhToOvhResult ovhToOvh, + + string type) + { + InternetToOvh = internetToOvh; + OvhToInternet = ovhToInternet; + OvhToOvh = ovhToOvh; + Type = type; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkConnectionValResult.cs b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkConnectionValResult.cs new file mode 100644 index 00000000..e988d200 --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkConnectionValResult.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 GetServerSpecificationsNetworkConnectionValResult + { + public readonly string Unit; + public readonly double Value; + + [OutputConstructor] + private GetServerSpecificationsNetworkConnectionValResult( + string unit, + + double value) + { + Unit = unit; + Value = value; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkOlaAvailableModeInterfaceResult.cs b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkOlaAvailableModeInterfaceResult.cs new file mode 100644 index 00000000..5812cfce --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkOlaAvailableModeInterfaceResult.cs @@ -0,0 +1,42 @@ +// *** 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 GetServerSpecificationsNetworkOlaAvailableModeInterfaceResult + { + /// + /// Interface aggregation status + /// + public readonly bool Aggregation; + /// + /// Interface count + /// + public readonly double Count; + /// + /// Bandwidth offer type (included┃standard) + /// + public readonly string Type; + + [OutputConstructor] + private GetServerSpecificationsNetworkOlaAvailableModeInterfaceResult( + bool aggregation, + + double count, + + string type) + { + Aggregation = aggregation; + Count = count; + Type = type; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkOlaAvailableModeResult.cs b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkOlaAvailableModeResult.cs new file mode 100644 index 00000000..86385415 --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkOlaAvailableModeResult.cs @@ -0,0 +1,42 @@ +// *** 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 GetServerSpecificationsNetworkOlaAvailableModeResult + { + /// + /// Whether it is the default configuration of the server + /// + public readonly bool Default; + /// + /// Interface layout + /// + public readonly ImmutableArray Interfaces; + /// + /// Switch name + /// + public readonly string Name; + + [OutputConstructor] + private GetServerSpecificationsNetworkOlaAvailableModeResult( + bool @default, + + ImmutableArray interfaces, + + string name) + { + Default = @default; + Interfaces = interfaces; + Name = name; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkOlaResult.cs b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkOlaResult.cs new file mode 100644 index 00000000..6d44ef7f --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkOlaResult.cs @@ -0,0 +1,42 @@ +// *** 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 GetServerSpecificationsNetworkOlaResult + { + /// + /// Is the OLA feature available + /// + public readonly bool Available; + /// + /// Supported modes + /// + public readonly ImmutableArray AvailableModes; + /// + /// Supported modes (DEPRECATED) + /// + public readonly ImmutableArray SupportedModes; + + [OutputConstructor] + private GetServerSpecificationsNetworkOlaResult( + bool available, + + ImmutableArray availableModes, + + ImmutableArray supportedModes) + { + Available = available; + AvailableModes = availableModes; + SupportedModes = supportedModes; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkRoutingIpv4Result.cs b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkRoutingIpv4Result.cs new file mode 100644 index 00000000..6148e3e8 --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkRoutingIpv4Result.cs @@ -0,0 +1,42 @@ +// *** 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 GetServerSpecificationsNetworkRoutingIpv4Result + { + /// + /// Server gateway + /// + public readonly string Gateway; + /// + /// Server main IP + /// + public readonly string Ip; + /// + /// Server network + /// + public readonly string Network; + + [OutputConstructor] + private GetServerSpecificationsNetworkRoutingIpv4Result( + string gateway, + + string ip, + + string network) + { + Gateway = gateway; + Ip = ip; + Network = network; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkRoutingIpv6Result.cs b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkRoutingIpv6Result.cs new file mode 100644 index 00000000..6e61f62a --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkRoutingIpv6Result.cs @@ -0,0 +1,42 @@ +// *** 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 GetServerSpecificationsNetworkRoutingIpv6Result + { + /// + /// Server gateway + /// + public readonly string Gateway; + /// + /// Server main IP + /// + public readonly string Ip; + /// + /// Server network + /// + public readonly string Network; + + [OutputConstructor] + private GetServerSpecificationsNetworkRoutingIpv6Result( + string gateway, + + string ip, + + string network) + { + Gateway = gateway; + Ip = ip; + Network = network; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkRoutingResult.cs b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkRoutingResult.cs new file mode 100644 index 00000000..51048442 --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkRoutingResult.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 GetServerSpecificationsNetworkRoutingResult + { + /// + /// Ipv4 routing details + /// + public readonly Outputs.GetServerSpecificationsNetworkRoutingIpv4Result Ipv4; + /// + /// Ipv6 routing details + /// + public readonly Outputs.GetServerSpecificationsNetworkRoutingIpv6Result Ipv6; + + [OutputConstructor] + private GetServerSpecificationsNetworkRoutingResult( + Outputs.GetServerSpecificationsNetworkRoutingIpv4Result ipv4, + + Outputs.GetServerSpecificationsNetworkRoutingIpv6Result ipv6) + { + Ipv4 = ipv4; + Ipv6 = ipv6; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkSwitchingResult.cs b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkSwitchingResult.cs new file mode 100644 index 00000000..d0a67c15 --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkSwitchingResult.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.Dedicated.Outputs +{ + + [OutputType] + public sealed class GetServerSpecificationsNetworkSwitchingResult + { + /// + /// Switch name + /// + public readonly string Name; + + [OutputConstructor] + private GetServerSpecificationsNetworkSwitchingResult(string name) + { + Name = name; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkTrafficInputQuotaSizeResult.cs b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkTrafficInputQuotaSizeResult.cs new file mode 100644 index 00000000..d1fd9643 --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkTrafficInputQuotaSizeResult.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 GetServerSpecificationsNetworkTrafficInputQuotaSizeResult + { + public readonly string Unit; + public readonly double Value; + + [OutputConstructor] + private GetServerSpecificationsNetworkTrafficInputQuotaSizeResult( + string unit, + + double value) + { + Unit = unit; + Value = value; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkTrafficInputQuotaUsedResult.cs b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkTrafficInputQuotaUsedResult.cs new file mode 100644 index 00000000..7b8e3b17 --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkTrafficInputQuotaUsedResult.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 GetServerSpecificationsNetworkTrafficInputQuotaUsedResult + { + public readonly string Unit; + public readonly double Value; + + [OutputConstructor] + private GetServerSpecificationsNetworkTrafficInputQuotaUsedResult( + string unit, + + double value) + { + Unit = unit; + Value = value; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkTrafficOutputQuotaSizeResult.cs b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkTrafficOutputQuotaSizeResult.cs new file mode 100644 index 00000000..0c509563 --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkTrafficOutputQuotaSizeResult.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 GetServerSpecificationsNetworkTrafficOutputQuotaSizeResult + { + public readonly string Unit; + public readonly double Value; + + [OutputConstructor] + private GetServerSpecificationsNetworkTrafficOutputQuotaSizeResult( + string unit, + + double value) + { + Unit = unit; + Value = value; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkTrafficOutputQuotaUsedResult.cs b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkTrafficOutputQuotaUsedResult.cs new file mode 100644 index 00000000..f7ecff49 --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkTrafficOutputQuotaUsedResult.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 GetServerSpecificationsNetworkTrafficOutputQuotaUsedResult + { + public readonly string Unit; + public readonly double Value; + + [OutputConstructor] + private GetServerSpecificationsNetworkTrafficOutputQuotaUsedResult( + string unit, + + double value) + { + Unit = unit; + Value = value; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkTrafficResult.cs b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkTrafficResult.cs new file mode 100644 index 00000000..8883f2fd --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkTrafficResult.cs @@ -0,0 +1,63 @@ +// *** 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 GetServerSpecificationsNetworkTrafficResult + { + /// + /// Monthly input traffic quota allowed + /// + public readonly Outputs.GetServerSpecificationsNetworkTrafficInputQuotaSizeResult InputQuotaSize; + /// + /// Monthly input traffic consumed this month + /// + public readonly Outputs.GetServerSpecificationsNetworkTrafficInputQuotaUsedResult InputQuotaUsed; + /// + /// Whether bandwidth is throttleted for being over quota + /// + public readonly bool IsThrottled; + /// + /// Monthly output traffic quota allowed + /// + public readonly Outputs.GetServerSpecificationsNetworkTrafficOutputQuotaSizeResult OutputQuotaSize; + /// + /// Monthly output traffic consumed this month + /// + public readonly Outputs.GetServerSpecificationsNetworkTrafficOutputQuotaUsedResult OutputQuotaUsed; + /// + /// Next reset quota date for traffic counter + /// + public readonly string ResetQuotaDate; + + [OutputConstructor] + private GetServerSpecificationsNetworkTrafficResult( + Outputs.GetServerSpecificationsNetworkTrafficInputQuotaSizeResult inputQuotaSize, + + Outputs.GetServerSpecificationsNetworkTrafficInputQuotaUsedResult inputQuotaUsed, + + bool isThrottled, + + Outputs.GetServerSpecificationsNetworkTrafficOutputQuotaSizeResult outputQuotaSize, + + Outputs.GetServerSpecificationsNetworkTrafficOutputQuotaUsedResult outputQuotaUsed, + + string resetQuotaDate) + { + InputQuotaSize = inputQuotaSize; + InputQuotaUsed = inputQuotaUsed; + IsThrottled = isThrottled; + OutputQuotaSize = outputQuotaSize; + OutputQuotaUsed = outputQuotaUsed; + ResetQuotaDate = resetQuotaDate; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkVmacResult.cs b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkVmacResult.cs new file mode 100644 index 00000000..d46b1b0d --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkVmacResult.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.Dedicated.Outputs +{ + + [OutputType] + public sealed class GetServerSpecificationsNetworkVmacResult + { + /// + /// Whether server is compatible vmac + /// + public readonly bool Supported; + + [OutputConstructor] + private GetServerSpecificationsNetworkVmacResult(bool supported) + { + Supported = supported; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkVrackBandwidthResult.cs b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkVrackBandwidthResult.cs new file mode 100644 index 00000000..836b7274 --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkVrackBandwidthResult.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 GetServerSpecificationsNetworkVrackBandwidthResult + { + public readonly string Unit; + public readonly double Value; + + [OutputConstructor] + private GetServerSpecificationsNetworkVrackBandwidthResult( + string unit, + + double value) + { + Unit = unit; + Value = value; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkVrackResult.cs b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkVrackResult.cs new file mode 100644 index 00000000..77cf40fa --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/GetServerSpecificationsNetworkVrackResult.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 GetServerSpecificationsNetworkVrackResult + { + /// + /// vrack bandwidth limitation + /// + public readonly Outputs.GetServerSpecificationsNetworkVrackBandwidthResult Bandwidth; + /// + /// Bandwidth offer type (included┃standard) + /// + public readonly string Type; + + [OutputConstructor] + private GetServerSpecificationsNetworkVrackResult( + Outputs.GetServerSpecificationsNetworkVrackBandwidthResult bandwidth, + + string type) + { + Bandwidth = bandwidth; + Type = type; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/ServerInstallTaskDetails.cs b/sdk/dotnet/Dedicated/Outputs/ServerInstallTaskDetails.cs index 4dd4a689..ce0189f6 100644 --- a/sdk/dotnet/Dedicated/Outputs/ServerInstallTaskDetails.cs +++ b/sdk/dotnet/Dedicated/Outputs/ServerInstallTaskDetails.cs @@ -22,15 +22,11 @@ public sealed class ServerInstallTaskDetails /// public readonly int? DiskGroupId; /// - /// set to true to install sql server (Windows template only). - /// - public readonly bool? InstallSqlServer; - /// - /// language. + /// Deprecated, will be removed in next release. /// public readonly string? Language; /// - /// set to true to disable RAID. + /// Set to true to disable RAID. /// public readonly bool? NoRaid; /// @@ -46,11 +42,15 @@ public sealed class ServerInstallTaskDetails /// public readonly int? SoftRaidDevices; /// - /// Name of the ssh key that should be installed. Password login will be disabled. - /// - public readonly string? SshKeyName; - /// - /// set to true to use SPLA. + /// Deprecated, will be removed in next release. + /// + /// The `user_metadata` block supports many arguments, here is a non-exhaustive list depending on the OS: + /// + /// -[see OS questions](https://help.ovhcloud.com/csm/en-dedicated-servers-api-os-installation?id=kb_article_view&sysparm_article=KB0061951#os-questions) + /// + /// -[see api](https://eu.api.ovh.com/console-preview/?section=%2Fdedicated%2FinstallationTemplate&branch=v1#get-/dedicated/installationTemplate/-templateName-) + /// + /// -[see documentation](https://help.ovhcloud.com/csm/en-ie-dedicated-servers-api-os-installation?id=kb_article_view&sysparm_article=KB0061950#create-an-os-installation-task) to get more information /// public readonly bool? UseSpla; @@ -60,8 +60,6 @@ private ServerInstallTaskDetails( int? diskGroupId, - bool? installSqlServer, - string? language, bool? noRaid, @@ -72,19 +70,15 @@ private ServerInstallTaskDetails( int? softRaidDevices, - string? sshKeyName, - bool? useSpla) { CustomHostname = customHostname; DiskGroupId = diskGroupId; - InstallSqlServer = installSqlServer; Language = language; NoRaid = noRaid; PostInstallationScriptLink = postInstallationScriptLink; PostInstallationScriptReturn = postInstallationScriptReturn; SoftRaidDevices = softRaidDevices; - SshKeyName = sshKeyName; UseSpla = useSpla; } } diff --git a/sdk/dotnet/Dedicated/Outputs/ServerInstallTaskUserMetadata.cs b/sdk/dotnet/Dedicated/Outputs/ServerInstallTaskUserMetadata.cs new file mode 100644 index 00000000..7a5f06ba --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/ServerInstallTaskUserMetadata.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 ServerInstallTaskUserMetadata + { + /// + /// The key for the user_metadata + /// + public readonly string Key; + /// + /// The value for the user_metadata + /// + public readonly string Value; + + [OutputConstructor] + private ServerInstallTaskUserMetadata( + string key, + + string value) + { + Key = key; + Value = value; + } + } +} diff --git a/sdk/dotnet/Dedicated/ServerInstallTask.cs b/sdk/dotnet/Dedicated/ServerInstallTask.cs index 89933afb..35517d1b 100644 --- a/sdk/dotnet/Dedicated/ServerInstallTask.cs +++ b/sdk/dotnet/Dedicated/ServerInstallTask.cs @@ -12,6 +12,7 @@ namespace Pulumi.Ovh.Dedicated /// /// ## Example Usage /// + /// Using a custom template based on an OVHCloud template /// <!--Start PulumiCodeChooser --> /// ```csharp /// using System.Collections.Generic; @@ -27,20 +28,14 @@ namespace Pulumi.Ovh.Dedicated /// BootType = "rescue", /// }); /// - /// var key = new Ovh.Me.SshKey("key", new() - /// { - /// KeyName = "mykey", - /// Key = "ssh-ed25519 AAAAC3...", - /// }); - /// /// var debian = new Ovh.Me.InstallationTemplate("debian", new() /// { - /// BaseTemplateName = "debian11_64", - /// TemplateName = "mydebian11", - /// DefaultLanguage = "en", + /// BaseTemplateName = "debian12_64", + /// TemplateName = "mydebian12", /// Customization = new Ovh.Me.Inputs.InstallationTemplateCustomizationArgs /// { - /// SshKeyName = key.KeyName, + /// PostInstallationScriptLink = "http://test", + /// PostInstallationScriptReturn = "ok", /// }, /// }); /// @@ -53,6 +48,151 @@ namespace Pulumi.Ovh.Dedicated /// { /// CustomHostname = "mytest", /// }, + /// UserMetadatas = new[] + /// { + /// new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs + /// { + /// Key = "sshKey", + /// Value = "ssh-ed25519 AAAAC3...", + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + /// Using a BringYourOwnLinux (BYOLinux) template (with userMetadata) + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Ovh = Pulumi.Ovh; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var server = Ovh.GetServer.Invoke(new() + /// { + /// ServiceName = "nsxxxxxxx.ip-xx-xx-xx.eu", + /// }); + /// + /// var rescue = Ovh.Dedicated.GetServerBoots.Invoke(new() + /// { + /// ServiceName = "nsxxxxxxx.ip-xx-xx-xx.eu", + /// BootType = "rescue", + /// }); + /// + /// var serverInstall = new Ovh.Dedicated.ServerInstallTask("serverInstall", new() + /// { + /// ServiceName = server.Apply(getServerResult => getServerResult.ServiceName), + /// TemplateName = "byolinux_64", + /// BootidOnDestroy = rescue.Apply(getServerBootsResult => getServerBootsResult.Results[0]), + /// Details = new Ovh.Dedicated.Inputs.ServerInstallTaskDetailsArgs + /// { + /// CustomHostname = "mytest", + /// }, + /// UserMetadatas = new[] + /// { + /// new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs + /// { + /// Key = "imageURL", + /// Value = "https://myimage.qcow2", + /// }, + /// new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs + /// { + /// Key = "imageType", + /// Value = "qcow2", + /// }, + /// new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs + /// { + /// Key = "httpHeaders0Key", + /// Value = "Authorization", + /// }, + /// new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs + /// { + /// Key = "httpHeaders0Value", + /// Value = "Basic bG9naW46xxxxxxx=", + /// }, + /// new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs + /// { + /// Key = "imageChecksumType", + /// Value = "sha512", + /// }, + /// new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs + /// { + /// Key = "imageCheckSum", + /// Value = "047122c9ff4d2a69512212104b06c678f5a9cdb22b75467353613ff87ccd03b57b38967e56d810e61366f9d22d6bd39ac0addf4e00a4c6445112a2416af8f225", + /// }, + /// new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs + /// { + /// Key = "configDriveUserData", + /// Value = @$"#cloud-config + /// ssh_authorized_keys: + /// - {data.Ovh_me_ssh_key.Mykey.Key} + /// + /// users: + /// - name: patient0 + /// sudo: ALL=(ALL) NOPASSWD:ALL + /// groups: users, sudo + /// shell: /bin/bash + /// lock_passwd: false + /// ssh_authorized_keys: + /// - {data.Ovh_me_ssh_key.Mykey.Key} + /// disable_root: false + /// packages: + /// - vim + /// - tree + /// final_message: The system is finally up, after $UPTIME seconds + /// ", + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + /// Using a Microsoft Windows server OVHcloud template with a specific language + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Ovh = Pulumi.Ovh; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var server = Ovh.GetServer.Invoke(new() + /// { + /// ServiceName = "nsxxxxxxx.ip-xx-xx-xx.eu", + /// }); + /// + /// var rescue = Ovh.Dedicated.GetServerBoots.Invoke(new() + /// { + /// ServiceName = "nsxxxxxxx.ip-xx-xx-xx.eu", + /// BootType = "rescue", + /// }); + /// + /// var serverInstall = new Ovh.Dedicated.ServerInstallTask("serverInstall", new() + /// { + /// ServiceName = server.Apply(getServerResult => getServerResult.ServiceName), + /// TemplateName = "win2019-std_64", + /// BootidOnDestroy = rescue.Apply(getServerBootsResult => getServerBootsResult.Results[0]), + /// Details = new Ovh.Dedicated.Inputs.ServerInstallTaskDetailsArgs + /// { + /// CustomHostname = "mytest", + /// }, + /// UserMetadatas = new[] + /// { + /// new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs + /// { + /// Key = "language", + /// Value = "fr-fr", + /// }, + /// }, /// }); /// /// }); @@ -138,6 +278,12 @@ public partial class ServerInstallTask : global::Pulumi.CustomResource [Output("templateName")] public Output TemplateName { get; private set; } = null!; + /// + /// see `user_metadata` block below. + /// + [Output("userMetadatas")] + public Output> UserMetadatas { get; private set; } = null!; + /// /// Create a ServerInstallTask resource with the given unique name, arguments, and options. @@ -215,6 +361,18 @@ public sealed class ServerInstallTaskArgs : global::Pulumi.ResourceArgs [Input("templateName", required: true)] public Input TemplateName { get; set; } = null!; + [Input("userMetadatas")] + private InputList? _userMetadatas; + + /// + /// see `user_metadata` block below. + /// + public InputList UserMetadatas + { + get => _userMetadatas ?? (_userMetadatas = new InputList()); + set => _userMetadatas = value; + } + public ServerInstallTaskArgs() { } @@ -289,6 +447,18 @@ public sealed class ServerInstallTaskState : global::Pulumi.ResourceArgs [Input("templateName")] public Input? TemplateName { get; set; } + [Input("userMetadatas")] + private InputList? _userMetadatas; + + /// + /// see `user_metadata` block below. + /// + public InputList UserMetadatas + { + get => _userMetadatas ?? (_userMetadatas = new InputList()); + set => _userMetadatas = value; + } + public ServerInstallTaskState() { } diff --git a/sdk/dotnet/Me/GetInstallationTemplate.cs b/sdk/dotnet/Me/GetInstallationTemplate.cs index a62f034b..f318e476 100644 --- a/sdk/dotnet/Me/GetInstallationTemplate.cs +++ b/sdk/dotnet/Me/GetInstallationTemplate.cs @@ -98,14 +98,10 @@ public GetInstallationTemplateInvokeArgs() public sealed class GetInstallationTemplateResult { /// - /// List of all language available for this template. + /// List of all language available for this template. Deprecated, will be removed in next release. /// public readonly ImmutableArray AvailableLanguages; /// - /// This distribution is new and, although tested and functional, may still display odd behaviour. - /// - public readonly bool Beta; - /// /// This template bit format (32 or 64). /// public readonly int BitFormat; @@ -115,14 +111,10 @@ public sealed class GetInstallationTemplateResult public readonly string Category; public readonly ImmutableArray Customizations; /// - /// The default language of this template. + /// The default language of this template. Deprecated, will be removed in next release. /// public readonly string DefaultLanguage; /// - /// is this distribution deprecated. - /// - public readonly bool Deprecated; - /// /// information about this template. /// public readonly string Description; @@ -146,24 +138,14 @@ public sealed class GetInstallationTemplateResult /// The provider-assigned unique ID for this managed resource. /// public readonly string Id; - /// - /// Date of last modification of the base image. - /// - public readonly string LastModification; public readonly bool LvmReady; public readonly ImmutableArray PartitionSchemes; - /// - /// This distribution supports the microsoft SQL server. - /// - public readonly bool SupportsSqlServer; public readonly string TemplateName; [OutputConstructor] private GetInstallationTemplateResult( ImmutableArray availableLanguages, - bool beta, - int bitFormat, string category, @@ -172,8 +154,6 @@ private GetInstallationTemplateResult( string defaultLanguage, - bool deprecated, - string description, string distribution, @@ -186,33 +166,25 @@ private GetInstallationTemplateResult( string id, - string lastModification, - bool lvmReady, ImmutableArray partitionSchemes, - bool supportsSqlServer, - string templateName) { AvailableLanguages = availableLanguages; - Beta = beta; BitFormat = bitFormat; Category = category; Customizations = customizations; DefaultLanguage = defaultLanguage; - Deprecated = deprecated; Description = description; Distribution = distribution; Family = family; Filesystems = filesystems; HardRaidConfiguration = hardRaidConfiguration; Id = id; - LastModification = lastModification; LvmReady = lvmReady; PartitionSchemes = partitionSchemes; - SupportsSqlServer = supportsSqlServer; TemplateName = templateName; } } diff --git a/sdk/dotnet/Me/GetSshKey.cs b/sdk/dotnet/Me/GetSshKey.cs index e2946bba..66b3fb49 100644 --- a/sdk/dotnet/Me/GetSshKey.cs +++ b/sdk/dotnet/Me/GetSshKey.cs @@ -12,6 +12,8 @@ namespace Pulumi.Ovh.Me public static class GetSshKey { /// + /// > __NOTE__ This data source will be removed in next release. + /// /// Use this data source to retrieve information about an SSH key. /// /// ## Example Usage @@ -38,6 +40,8 @@ public static Task InvokeAsync(GetSshKeyArgs args, InvokeOption => global::Pulumi.Deployment.Instance.InvokeAsync("ovh:Me/getSshKey:getSshKey", args ?? new GetSshKeyArgs(), options.WithDefaults()); /// + /// > __NOTE__ This data source will be removed in next release. + /// /// Use this data source to retrieve information about an SSH key. /// /// ## Example Usage diff --git a/sdk/dotnet/Me/Inputs/InstallationTemplateCustomizationArgs.cs b/sdk/dotnet/Me/Inputs/InstallationTemplateCustomizationArgs.cs index 0834d0f1..dbc6c769 100644 --- a/sdk/dotnet/Me/Inputs/InstallationTemplateCustomizationArgs.cs +++ b/sdk/dotnet/Me/Inputs/InstallationTemplateCustomizationArgs.cs @@ -31,13 +31,7 @@ public sealed class InstallationTemplateCustomizationArgs : global::Pulumi.Resou public Input? PostInstallationScriptReturn { get; set; } /// - /// Rating. - /// - [Input("rating")] - public Input? Rating { get; set; } - - /// - /// Name of the ssh key that should be installed. Password login will be disabled. + /// Deprecated. /// [Input("sshKeyName")] public Input? SshKeyName { get; set; } diff --git a/sdk/dotnet/Me/Inputs/InstallationTemplateCustomizationGetArgs.cs b/sdk/dotnet/Me/Inputs/InstallationTemplateCustomizationGetArgs.cs index 3581a70d..7f1eba80 100644 --- a/sdk/dotnet/Me/Inputs/InstallationTemplateCustomizationGetArgs.cs +++ b/sdk/dotnet/Me/Inputs/InstallationTemplateCustomizationGetArgs.cs @@ -31,13 +31,7 @@ public sealed class InstallationTemplateCustomizationGetArgs : global::Pulumi.Re public Input? PostInstallationScriptReturn { get; set; } /// - /// Rating. - /// - [Input("rating")] - public Input? Rating { get; set; } - - /// - /// Name of the ssh key that should be installed. Password login will be disabled. + /// Deprecated. /// [Input("sshKeyName")] public Input? SshKeyName { get; set; } diff --git a/sdk/dotnet/Me/InstallationTemplate.cs b/sdk/dotnet/Me/InstallationTemplate.cs index a3752a64..aa09cd39 100644 --- a/sdk/dotnet/Me/InstallationTemplate.cs +++ b/sdk/dotnet/Me/InstallationTemplate.cs @@ -12,28 +12,6 @@ namespace Pulumi.Ovh.Me /// /// Use this resource to create a custom installation template available for dedicated servers. /// - /// ## Example Usage - /// - /// <!--Start PulumiCodeChooser --> - /// ```csharp - /// using System.Collections.Generic; - /// using System.Linq; - /// using Pulumi; - /// using Ovh = Pulumi.Ovh; - /// - /// return await Deployment.RunAsync(() => - /// { - /// var mytemplate = new Ovh.Me.InstallationTemplate("mytemplate", new() - /// { - /// BaseTemplateName = "centos7_64", - /// DefaultLanguage = "en", - /// TemplateName = "mytemplate", - /// }); - /// - /// }); - /// ``` - /// <!--End PulumiCodeChooser --> - /// /// ## Import /// /// Custom installation template available for dedicated servers can be imported using the `base_template_name`, `template_name` of the cluster, separated by "/" E.g., @@ -48,7 +26,7 @@ namespace Pulumi.Ovh.Me public partial class InstallationTemplate : global::Pulumi.CustomResource { /// - /// List of all language available for this template. + /// Deprecated. /// [Output("availableLanguages")] public Output> AvailableLanguages { get; private set; } = null!; @@ -59,12 +37,6 @@ public partial class InstallationTemplate : global::Pulumi.CustomResource [Output("baseTemplateName")] public Output BaseTemplateName { get; private set; } = null!; - /// - /// This distribution is new and, although tested and functional, may still display odd behaviour. - /// - [Output("beta")] - public Output Beta { get; private set; } = null!; - /// /// This template bit format (32 or 64). /// @@ -81,16 +53,10 @@ public partial class InstallationTemplate : global::Pulumi.CustomResource public Output Customization { get; private set; } = null!; /// - /// The default language of this template. + /// Deprecated, use language in userMetadata instead. /// [Output("defaultLanguage")] - public Output DefaultLanguage { get; private set; } = null!; - - /// - /// is this distribution deprecated. - /// - [Output("deprecated")] - public Output Deprecated { get; private set; } = null!; + public Output DefaultLanguage { get; private set; } = null!; /// /// information about this template. @@ -122,12 +88,6 @@ public partial class InstallationTemplate : global::Pulumi.CustomResource [Output("hardRaidConfiguration")] public Output HardRaidConfiguration { get; private set; } = null!; - /// - /// Date of last modification of the base image. - /// - [Output("lastModification")] - public Output LastModification { get; private set; } = null!; - /// /// This distribution supports Logical Volumes (Linux LVM) /// @@ -140,12 +100,6 @@ public partial class InstallationTemplate : global::Pulumi.CustomResource [Output("removeDefaultPartitionSchemes")] public Output RemoveDefaultPartitionSchemes { get; private set; } = null!; - /// - /// This distribution supports the microsoft SQL server. - /// - [Output("supportsSqlServer")] - public Output SupportsSqlServer { get; private set; } = null!; - /// /// This template name. /// @@ -209,10 +163,10 @@ public sealed class InstallationTemplateArgs : global::Pulumi.ResourceArgs public Input? Customization { get; set; } /// - /// The default language of this template. + /// Deprecated, use language in userMetadata instead. /// - [Input("defaultLanguage", required: true)] - public Input DefaultLanguage { get; set; } = null!; + [Input("defaultLanguage")] + public Input? DefaultLanguage { get; set; } /// /// Remove default partition schemes at creation. @@ -238,7 +192,7 @@ public sealed class InstallationTemplateState : global::Pulumi.ResourceArgs private InputList? _availableLanguages; /// - /// List of all language available for this template. + /// Deprecated. /// public InputList AvailableLanguages { @@ -252,12 +206,6 @@ public InputList AvailableLanguages [Input("baseTemplateName")] public Input? BaseTemplateName { get; set; } - /// - /// This distribution is new and, although tested and functional, may still display odd behaviour. - /// - [Input("beta")] - public Input? Beta { get; set; } - /// /// This template bit format (32 or 64). /// @@ -274,17 +222,11 @@ public InputList AvailableLanguages public Input? Customization { get; set; } /// - /// The default language of this template. + /// Deprecated, use language in userMetadata instead. /// [Input("defaultLanguage")] public Input? DefaultLanguage { get; set; } - /// - /// is this distribution deprecated. - /// - [Input("deprecated")] - public Input? Deprecated { get; set; } - /// /// information about this template. /// @@ -321,12 +263,6 @@ public InputList Filesystems [Input("hardRaidConfiguration")] public Input? HardRaidConfiguration { get; set; } - /// - /// Date of last modification of the base image. - /// - [Input("lastModification")] - public Input? LastModification { get; set; } - /// /// This distribution supports Logical Volumes (Linux LVM) /// @@ -339,12 +275,6 @@ public InputList Filesystems [Input("removeDefaultPartitionSchemes")] public Input? RemoveDefaultPartitionSchemes { get; set; } - /// - /// This distribution supports the microsoft SQL server. - /// - [Input("supportsSqlServer")] - public Input? SupportsSqlServer { get; set; } - /// /// This template name. /// diff --git a/sdk/dotnet/Me/InstallationTemplatePartitionScheme.cs b/sdk/dotnet/Me/InstallationTemplatePartitionScheme.cs index 2c47aa63..451164c6 100644 --- a/sdk/dotnet/Me/InstallationTemplatePartitionScheme.cs +++ b/sdk/dotnet/Me/InstallationTemplatePartitionScheme.cs @@ -25,9 +25,8 @@ namespace Pulumi.Ovh.Me /// { /// var mytemplate = new Ovh.Me.InstallationTemplate("mytemplate", new() /// { - /// BaseTemplateName = "centos7_64", + /// BaseTemplateName = "debian12_64", /// TemplateName = "mytemplate", - /// DefaultLanguage = "fr", /// }); /// /// var scheme = new Ovh.Me.InstallationTemplatePartitionScheme("scheme", new() diff --git a/sdk/dotnet/Me/InstallationTemplatePartitionSchemeHardwareRaid.cs b/sdk/dotnet/Me/InstallationTemplatePartitionSchemeHardwareRaid.cs index ce8706ca..ef5ff8b2 100644 --- a/sdk/dotnet/Me/InstallationTemplatePartitionSchemeHardwareRaid.cs +++ b/sdk/dotnet/Me/InstallationTemplatePartitionSchemeHardwareRaid.cs @@ -25,9 +25,8 @@ namespace Pulumi.Ovh.Me /// { /// var mytemplate = new Ovh.Me.InstallationTemplate("mytemplate", new() /// { - /// BaseTemplateName = "centos7_64", + /// BaseTemplateName = "debian12_64", /// TemplateName = "mytemplate", - /// DefaultLanguage = "fr", /// }); /// /// var scheme = new Ovh.Me.InstallationTemplatePartitionScheme("scheme", new() diff --git a/sdk/dotnet/Me/InstallationTemplatePartitionSchemePartition.cs b/sdk/dotnet/Me/InstallationTemplatePartitionSchemePartition.cs index 07a555cb..2b131008 100644 --- a/sdk/dotnet/Me/InstallationTemplatePartitionSchemePartition.cs +++ b/sdk/dotnet/Me/InstallationTemplatePartitionSchemePartition.cs @@ -25,9 +25,8 @@ namespace Pulumi.Ovh.Me /// { /// var mytemplate = new Ovh.Me.InstallationTemplate("mytemplate", new() /// { - /// BaseTemplateName = "centos7_64", + /// BaseTemplateName = "debian12_64", /// TemplateName = "mytemplate", - /// DefaultLanguage = "fr", /// }); /// /// var scheme = new Ovh.Me.InstallationTemplatePartitionScheme("scheme", new() diff --git a/sdk/dotnet/Me/Outputs/GetInstallationTemplateCustomizationResult.cs b/sdk/dotnet/Me/Outputs/GetInstallationTemplateCustomizationResult.cs index 81b9535e..483faad7 100644 --- a/sdk/dotnet/Me/Outputs/GetInstallationTemplateCustomizationResult.cs +++ b/sdk/dotnet/Me/Outputs/GetInstallationTemplateCustomizationResult.cs @@ -26,11 +26,7 @@ public sealed class GetInstallationTemplateCustomizationResult /// public readonly string PostInstallationScriptReturn; /// - /// (DEPRECATED) Rating. - /// - public readonly int Rating; - /// - /// Name of the ssh key that should be installed. Password login will be disabled. + /// Name of the ssh key that should be installed. Password login will be disabled. Deprecated, will be removed in next release, use userMetada instead. /// public readonly string SshKeyName; @@ -42,14 +38,11 @@ private GetInstallationTemplateCustomizationResult( string postInstallationScriptReturn, - int rating, - string sshKeyName) { CustomHostname = customHostname; PostInstallationScriptLink = postInstallationScriptLink; PostInstallationScriptReturn = postInstallationScriptReturn; - Rating = rating; SshKeyName = sshKeyName; } } diff --git a/sdk/dotnet/Me/Outputs/InstallationTemplateCustomization.cs b/sdk/dotnet/Me/Outputs/InstallationTemplateCustomization.cs index 9dd51bb9..b14361e8 100644 --- a/sdk/dotnet/Me/Outputs/InstallationTemplateCustomization.cs +++ b/sdk/dotnet/Me/Outputs/InstallationTemplateCustomization.cs @@ -26,11 +26,7 @@ public sealed class InstallationTemplateCustomization /// public readonly string? PostInstallationScriptReturn; /// - /// Rating. - /// - public readonly int? Rating; - /// - /// Name of the ssh key that should be installed. Password login will be disabled. + /// Deprecated. /// public readonly string? SshKeyName; @@ -42,14 +38,11 @@ private InstallationTemplateCustomization( string? postInstallationScriptReturn, - int? rating, - string? sshKeyName) { CustomHostname = customHostname; PostInstallationScriptLink = postInstallationScriptLink; PostInstallationScriptReturn = postInstallationScriptReturn; - Rating = rating; SshKeyName = sshKeyName; } } diff --git a/sdk/dotnet/Me/SshKey.cs b/sdk/dotnet/Me/SshKey.cs index 63fb5415..ee065a13 100644 --- a/sdk/dotnet/Me/SshKey.cs +++ b/sdk/dotnet/Me/SshKey.cs @@ -12,6 +12,8 @@ namespace Pulumi.Ovh.Me /// /// ## Example Usage /// + /// > __NOTE__ This resource will be removed in next release, please use userMetada instead. + /// /// <!--Start PulumiCodeChooser --> /// ```csharp /// using System.Collections.Generic; diff --git a/sdk/dotnet/Provider.cs b/sdk/dotnet/Provider.cs index 0eefda7d..8c1accd2 100644 --- a/sdk/dotnet/Provider.cs +++ b/sdk/dotnet/Provider.cs @@ -19,25 +19,37 @@ namespace Pulumi.Ovh public partial class Provider : global::Pulumi.ProviderResource { /// - /// The OVH API Application Key. + /// The OVH API Application Key /// [Output("applicationKey")] public Output ApplicationKey { get; private set; } = null!; /// - /// The OVH API Application Secret. + /// The OVH API Application Secret /// [Output("applicationSecret")] public Output ApplicationSecret { get; private set; } = null!; /// - /// The OVH API Consumer key. + /// OAuth 2.0 application's ID + /// + [Output("clientId")] + public Output ClientId { get; private set; } = null!; + + /// + /// OAuth 2.0 application's secret + /// + [Output("clientSecret")] + public Output ClientSecret { get; private set; } = null!; + + /// + /// The OVH API Consumer Key /// [Output("consumerKey")] public Output ConsumerKey { get; private set; } = null!; /// - /// The OVH API endpoint to target (ex: "ovh-eu"). + /// The OVH API endpoint to target (ex: "ovh-eu") /// [Output("endpoint")] public Output Endpoint { get; private set; } = null!; @@ -76,7 +88,7 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? public sealed class ProviderArgs : global::Pulumi.ResourceArgs { /// - /// The OVH API Application Key. + /// The OVH API Application Key /// [Input("applicationKey")] public Input? ApplicationKey { get; set; } @@ -85,7 +97,7 @@ public sealed class ProviderArgs : global::Pulumi.ResourceArgs private Input? _applicationSecret; /// - /// The OVH API Application Secret. + /// The OVH API Application Secret /// public Input? ApplicationSecret { @@ -98,13 +110,25 @@ public Input? ApplicationSecret } /// - /// The OVH API Consumer key. + /// OAuth 2.0 application's ID + /// + [Input("clientId")] + public Input? ClientId { get; set; } + + /// + /// OAuth 2.0 application's secret + /// + [Input("clientSecret")] + public Input? ClientSecret { get; set; } + + /// + /// The OVH API Consumer Key /// [Input("consumerKey")] public Input? ConsumerKey { get; set; } /// - /// The OVH API endpoint to target (ex: "ovh-eu"). + /// The OVH API endpoint to target (ex: "ovh-eu") /// [Input("endpoint")] public Input? Endpoint { get; set; } diff --git a/sdk/dotnet/Vrack/DedicatedServer.cs b/sdk/dotnet/Vrack/DedicatedServer.cs index abf8ca99..1f7d3ed9 100644 --- a/sdk/dotnet/Vrack/DedicatedServer.cs +++ b/sdk/dotnet/Vrack/DedicatedServer.cs @@ -10,10 +10,10 @@ namespace Pulumi.Ovh.Vrack { /// - /// > **NOTE:** The resource `ovh.Vrack.DedicatedServer` is DEPRECATED and will be removed in a future version. - /// Use the resource `ovh.Vrack.DedicatedServerInterface` instead. + /// Attach a legacy dedicated server to a vRack. /// - /// Attach a dedicated server to a VRack. + /// > **NOTE:** The resource `ovh.Vrack.DedicatedServer` is intended to be used for legacy dedicated servers.<br /> + /// Dedicated servers that have configurable network interfaces MUST use the resource `ovh.Vrack.DedicatedServerInterface` instead. /// /// ## Example Usage /// diff --git a/sdk/dotnet/Vrack/DedicatedServerInterface.cs b/sdk/dotnet/Vrack/DedicatedServerInterface.cs index c762376c..1dd00a35 100644 --- a/sdk/dotnet/Vrack/DedicatedServerInterface.cs +++ b/sdk/dotnet/Vrack/DedicatedServerInterface.cs @@ -10,7 +10,10 @@ namespace Pulumi.Ovh.Vrack { /// - /// Attach a Dedicated Server Network Interface to a VRack. + /// Attach a Dedicated Server Network Interface to a vRack. + /// + /// > **NOTE:** The resource `ovh.Vrack.DedicatedServerInterface` is intended to be used for dedicated servers that have configurable network interfaces.<br /> + /// Legacy Dedicated servers that do not have configurable network interfaces MUST use the resource `ovh.Vrack.DedicatedServer` instead. /// /// ## Example Usage /// diff --git a/sdk/go/ovh/cloudproject/database.go b/sdk/go/ovh/cloudproject/database.go index df994cdf..a4335412 100644 --- a/sdk/go/ovh/cloudproject/database.go +++ b/sdk/go/ovh/cloudproject/database.go @@ -52,12 +52,13 @@ import ( // return err // } // _, err = CloudProject.NewDatabase(ctx, "kafkadb", &CloudProject.DatabaseArgs{ -// ServiceName: pulumi.String("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"), -// Description: pulumi.String("my-first-kafka"), -// Engine: pulumi.String("kafka"), -// Version: pulumi.String("3.4"), -// Plan: pulumi.String("business"), -// KafkaRestApi: pulumi.Bool(true), +// ServiceName: pulumi.String("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"), +// Description: pulumi.String("my-first-kafka"), +// Engine: pulumi.String("kafka"), +// Version: pulumi.String("3.4"), +// Plan: pulumi.String("business"), +// KafkaRestApi: pulumi.Bool(true), +// KafkaSchemaRegistry: pulumi.Bool(true), // Nodes: cloudproject.DatabaseNodeArray{ // &cloudproject.DatabaseNodeArgs{ // Region: pulumi.String("DE"), @@ -338,6 +339,8 @@ type Database struct { IpRestrictions DatabaseIpRestrictionArrayOutput `pulumi:"ipRestrictions"` // Defines whether the REST API is enabled on a kafka cluster KafkaRestApi pulumi.BoolPtrOutput `pulumi:"kafkaRestApi"` + // Defines whether the schema registry is enabled on a Kafka cluster + KafkaSchemaRegistry pulumi.BoolPtrOutput `pulumi:"kafkaSchemaRegistry"` // Time on which maintenances can start every day. MaintenanceTime pulumi.StringOutput `pulumi:"maintenanceTime"` // Type of network of the cluster. @@ -437,6 +440,8 @@ type databaseState struct { IpRestrictions []DatabaseIpRestriction `pulumi:"ipRestrictions"` // Defines whether the REST API is enabled on a kafka cluster KafkaRestApi *bool `pulumi:"kafkaRestApi"` + // Defines whether the schema registry is enabled on a Kafka cluster + KafkaSchemaRegistry *bool `pulumi:"kafkaSchemaRegistry"` // Time on which maintenances can start every day. MaintenanceTime *string `pulumi:"maintenanceTime"` // Type of network of the cluster. @@ -489,6 +494,8 @@ type DatabaseState struct { IpRestrictions DatabaseIpRestrictionArrayInput // Defines whether the REST API is enabled on a kafka cluster KafkaRestApi pulumi.BoolPtrInput + // Defines whether the schema registry is enabled on a Kafka cluster + KafkaSchemaRegistry pulumi.BoolPtrInput // Time on which maintenances can start every day. MaintenanceTime pulumi.StringPtrInput // Type of network of the cluster. @@ -539,6 +546,8 @@ type databaseArgs struct { IpRestrictions []DatabaseIpRestriction `pulumi:"ipRestrictions"` // Defines whether the REST API is enabled on a kafka cluster KafkaRestApi *bool `pulumi:"kafkaRestApi"` + // Defines whether the schema registry is enabled on a Kafka cluster + KafkaSchemaRegistry *bool `pulumi:"kafkaSchemaRegistry"` // List of nodes object. // Multi region cluster are not yet available, all node should be identical. Nodes []DatabaseNode `pulumi:"nodes"` @@ -580,6 +589,8 @@ type DatabaseArgs struct { IpRestrictions DatabaseIpRestrictionArrayInput // Defines whether the REST API is enabled on a kafka cluster KafkaRestApi pulumi.BoolPtrInput + // Defines whether the schema registry is enabled on a Kafka cluster + KafkaSchemaRegistry pulumi.BoolPtrInput // List of nodes object. // Multi region cluster are not yet available, all node should be identical. Nodes DatabaseNodeArrayInput @@ -748,6 +759,11 @@ func (o DatabaseOutput) KafkaRestApi() pulumi.BoolPtrOutput { return o.ApplyT(func(v *Database) pulumi.BoolPtrOutput { return v.KafkaRestApi }).(pulumi.BoolPtrOutput) } +// Defines whether the schema registry is enabled on a Kafka cluster +func (o DatabaseOutput) KafkaSchemaRegistry() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Database) pulumi.BoolPtrOutput { return v.KafkaSchemaRegistry }).(pulumi.BoolPtrOutput) +} + // Time on which maintenances can start every day. func (o DatabaseOutput) MaintenanceTime() pulumi.StringOutput { return o.ApplyT(func(v *Database) pulumi.StringOutput { return v.MaintenanceTime }).(pulumi.StringOutput) diff --git a/sdk/go/ovh/cloudproject/getKubeOidc.go b/sdk/go/ovh/cloudproject/getKubeOidc.go index e3b8044a..d1be6e5a 100644 --- a/sdk/go/ovh/cloudproject/getKubeOidc.go +++ b/sdk/go/ovh/cloudproject/getKubeOidc.go @@ -59,14 +59,21 @@ type LookupKubeOidcArgs struct { // The OIDC issuer url. IssuerUrl *string `pulumi:"issuerUrl"` // The id of the managed kubernetes cluster. - KubeId string `pulumi:"kubeId"` - OidcCaContent *string `pulumi:"oidcCaContent"` - OidcGroupsClaims []string `pulumi:"oidcGroupsClaims"` - OidcGroupsPrefix *string `pulumi:"oidcGroupsPrefix"` + KubeId string `pulumi:"kubeId"` + // Content of the certificate for the CA, in base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + OidcCaContent *string `pulumi:"oidcCaContent"` + // Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + OidcGroupsClaims []string `pulumi:"oidcGroupsClaims"` + // Prefix prepended to group claims to prevent clashes with existing names (such as system: groups). For example, the value oidc: will create group names like oidc:engineering and oidc:infra. + OidcGroupsPrefix *string `pulumi:"oidcGroupsPrefix"` + // Array of key=value pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." OidcRequiredClaims []string `pulumi:"oidcRequiredClaims"` - OidcSigningAlgs []string `pulumi:"oidcSigningAlgs"` - OidcUsernameClaim *string `pulumi:"oidcUsernameClaim"` - OidcUsernamePrefix *string `pulumi:"oidcUsernamePrefix"` + // Array of signing algorithms accepted. Default is \"RS256\". + OidcSigningAlgs []string `pulumi:"oidcSigningAlgs"` + // JWT claim to use as the user name. By default sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + OidcUsernameClaim *string `pulumi:"oidcUsernameClaim"` + // Prefix prepended to username claims to prevent clashes with existing names (such as system: users). For example, the value oidc: will create usernames like oidc:jane.doe. If this field isn't set and `oidcUsernameClaim` is a value other than email the prefix defaults to ( Issuer URL )# where ( Issuer URL ) is the value of oidcIssuerUrl. The value - can be used to disable all prefixing. + OidcUsernamePrefix *string `pulumi:"oidcUsernamePrefix"` // The id of the public cloud project. If omitted, // the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. ServiceName string `pulumi:"serviceName"` @@ -81,14 +88,21 @@ type LookupKubeOidcResult struct { // The OIDC issuer url. IssuerUrl *string `pulumi:"issuerUrl"` // See Argument Reference above. - KubeId string `pulumi:"kubeId"` - OidcCaContent *string `pulumi:"oidcCaContent"` - OidcGroupsClaims []string `pulumi:"oidcGroupsClaims"` - OidcGroupsPrefix *string `pulumi:"oidcGroupsPrefix"` + KubeId string `pulumi:"kubeId"` + // Content of the certificate for the CA, in base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + OidcCaContent *string `pulumi:"oidcCaContent"` + // Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + OidcGroupsClaims []string `pulumi:"oidcGroupsClaims"` + // Prefix prepended to group claims to prevent clashes with existing names (such as system: groups). For example, the value oidc: will create group names like oidc:engineering and oidc:infra. + OidcGroupsPrefix *string `pulumi:"oidcGroupsPrefix"` + // Array of key=value pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." OidcRequiredClaims []string `pulumi:"oidcRequiredClaims"` - OidcSigningAlgs []string `pulumi:"oidcSigningAlgs"` - OidcUsernameClaim *string `pulumi:"oidcUsernameClaim"` - OidcUsernamePrefix *string `pulumi:"oidcUsernamePrefix"` + // Array of signing algorithms accepted. Default is \"RS256\". + OidcSigningAlgs []string `pulumi:"oidcSigningAlgs"` + // JWT claim to use as the user name. By default sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + OidcUsernameClaim *string `pulumi:"oidcUsernameClaim"` + // Prefix prepended to username claims to prevent clashes with existing names (such as system: users). For example, the value oidc: will create usernames like oidc:jane.doe. If this field isn't set and `oidcUsernameClaim` is a value other than email the prefix defaults to ( Issuer URL )# where ( Issuer URL ) is the value of oidcIssuerUrl. The value - can be used to disable all prefixing. + OidcUsernamePrefix *string `pulumi:"oidcUsernamePrefix"` // See Argument Reference above. ServiceName string `pulumi:"serviceName"` } @@ -113,14 +127,21 @@ type LookupKubeOidcOutputArgs struct { // The OIDC issuer url. IssuerUrl pulumi.StringPtrInput `pulumi:"issuerUrl"` // The id of the managed kubernetes cluster. - KubeId pulumi.StringInput `pulumi:"kubeId"` - OidcCaContent pulumi.StringPtrInput `pulumi:"oidcCaContent"` - OidcGroupsClaims pulumi.StringArrayInput `pulumi:"oidcGroupsClaims"` - OidcGroupsPrefix pulumi.StringPtrInput `pulumi:"oidcGroupsPrefix"` + KubeId pulumi.StringInput `pulumi:"kubeId"` + // Content of the certificate for the CA, in base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + OidcCaContent pulumi.StringPtrInput `pulumi:"oidcCaContent"` + // Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + OidcGroupsClaims pulumi.StringArrayInput `pulumi:"oidcGroupsClaims"` + // Prefix prepended to group claims to prevent clashes with existing names (such as system: groups). For example, the value oidc: will create group names like oidc:engineering and oidc:infra. + OidcGroupsPrefix pulumi.StringPtrInput `pulumi:"oidcGroupsPrefix"` + // Array of key=value pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." OidcRequiredClaims pulumi.StringArrayInput `pulumi:"oidcRequiredClaims"` - OidcSigningAlgs pulumi.StringArrayInput `pulumi:"oidcSigningAlgs"` - OidcUsernameClaim pulumi.StringPtrInput `pulumi:"oidcUsernameClaim"` - OidcUsernamePrefix pulumi.StringPtrInput `pulumi:"oidcUsernamePrefix"` + // Array of signing algorithms accepted. Default is \"RS256\". + OidcSigningAlgs pulumi.StringArrayInput `pulumi:"oidcSigningAlgs"` + // JWT claim to use as the user name. By default sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + OidcUsernameClaim pulumi.StringPtrInput `pulumi:"oidcUsernameClaim"` + // Prefix prepended to username claims to prevent clashes with existing names (such as system: users). For example, the value oidc: will create usernames like oidc:jane.doe. If this field isn't set and `oidcUsernameClaim` is a value other than email the prefix defaults to ( Issuer URL )# where ( Issuer URL ) is the value of oidcIssuerUrl. The value - can be used to disable all prefixing. + OidcUsernamePrefix pulumi.StringPtrInput `pulumi:"oidcUsernamePrefix"` // The id of the public cloud project. If omitted, // the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. ServiceName pulumi.StringInput `pulumi:"serviceName"` @@ -165,30 +186,37 @@ func (o LookupKubeOidcResultOutput) KubeId() pulumi.StringOutput { return o.ApplyT(func(v LookupKubeOidcResult) string { return v.KubeId }).(pulumi.StringOutput) } +// Content of the certificate for the CA, in base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. func (o LookupKubeOidcResultOutput) OidcCaContent() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupKubeOidcResult) *string { return v.OidcCaContent }).(pulumi.StringPtrOutput) } +// Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. func (o LookupKubeOidcResultOutput) OidcGroupsClaims() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupKubeOidcResult) []string { return v.OidcGroupsClaims }).(pulumi.StringArrayOutput) } +// Prefix prepended to group claims to prevent clashes with existing names (such as system: groups). For example, the value oidc: will create group names like oidc:engineering and oidc:infra. func (o LookupKubeOidcResultOutput) OidcGroupsPrefix() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupKubeOidcResult) *string { return v.OidcGroupsPrefix }).(pulumi.StringPtrOutput) } +// Array of key=value pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." func (o LookupKubeOidcResultOutput) OidcRequiredClaims() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupKubeOidcResult) []string { return v.OidcRequiredClaims }).(pulumi.StringArrayOutput) } +// Array of signing algorithms accepted. Default is \"RS256\". func (o LookupKubeOidcResultOutput) OidcSigningAlgs() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupKubeOidcResult) []string { return v.OidcSigningAlgs }).(pulumi.StringArrayOutput) } +// JWT claim to use as the user name. By default sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. func (o LookupKubeOidcResultOutput) OidcUsernameClaim() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupKubeOidcResult) *string { return v.OidcUsernameClaim }).(pulumi.StringPtrOutput) } +// Prefix prepended to username claims to prevent clashes with existing names (such as system: users). For example, the value oidc: will create usernames like oidc:jane.doe. If this field isn't set and `oidcUsernameClaim` is a value other than email the prefix defaults to ( Issuer URL )# where ( Issuer URL ) is the value of oidcIssuerUrl. The value - can be used to disable all prefixing. func (o LookupKubeOidcResultOutput) OidcUsernamePrefix() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupKubeOidcResult) *string { return v.OidcUsernamePrefix }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/ovh/cloudproject/kubeOidc.go b/sdk/go/ovh/cloudproject/kubeOidc.go index 60cd8cc9..8fb9c32b 100644 --- a/sdk/go/ovh/cloudproject/kubeOidc.go +++ b/sdk/go/ovh/cloudproject/kubeOidc.go @@ -75,14 +75,21 @@ type KubeOidc struct { // The OIDC issuer url. IssuerUrl pulumi.StringOutput `pulumi:"issuerUrl"` // The ID of the managed kubernetes cluster. **Changing this value recreates the resource.** - KubeId pulumi.StringOutput `pulumi:"kubeId"` - OidcCaContent pulumi.StringPtrOutput `pulumi:"oidcCaContent"` - OidcGroupsClaims pulumi.StringArrayOutput `pulumi:"oidcGroupsClaims"` - OidcGroupsPrefix pulumi.StringPtrOutput `pulumi:"oidcGroupsPrefix"` + KubeId pulumi.StringOutput `pulumi:"kubeId"` + // Content of the certificate for the CA, in Base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + OidcCaContent pulumi.StringPtrOutput `pulumi:"oidcCaContent"` + // Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + OidcGroupsClaims pulumi.StringArrayOutput `pulumi:"oidcGroupsClaims"` + // Prefix prepended to group claims to prevent clashes with existing names (such as `system:groups`). For example, the value `oidc:` will create group names like `oidc:engineering` and `oidc:infra`. + OidcGroupsPrefix pulumi.StringPtrOutput `pulumi:"oidcGroupsPrefix"` + // Array of `key=value` pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." OidcRequiredClaims pulumi.StringArrayOutput `pulumi:"oidcRequiredClaims"` - OidcSigningAlgs pulumi.StringArrayOutput `pulumi:"oidcSigningAlgs"` - OidcUsernameClaim pulumi.StringPtrOutput `pulumi:"oidcUsernameClaim"` - OidcUsernamePrefix pulumi.StringPtrOutput `pulumi:"oidcUsernamePrefix"` + // Array of signing algorithms accepted. Default is `RS256`. + OidcSigningAlgs pulumi.StringArrayOutput `pulumi:"oidcSigningAlgs"` + // JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + OidcUsernameClaim pulumi.StringPtrOutput `pulumi:"oidcUsernameClaim"` + // Prefix prepended to username claims to prevent clashes with existing names (such as `system:users`). For example, the value `oidc:` will create usernames like `oidc:jane.doe`. If this field isn't set and `oidcUsernameClaim` is a value other than email the prefix defaults to `issuerUrl` where `issuerUrl` is the value of `issuer_url.` The value - can be used to disable all prefixing. + OidcUsernamePrefix pulumi.StringPtrOutput `pulumi:"oidcUsernamePrefix"` // The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.** ServiceName pulumi.StringOutput `pulumi:"serviceName"` } @@ -134,14 +141,21 @@ type kubeOidcState struct { // The OIDC issuer url. IssuerUrl *string `pulumi:"issuerUrl"` // The ID of the managed kubernetes cluster. **Changing this value recreates the resource.** - KubeId *string `pulumi:"kubeId"` - OidcCaContent *string `pulumi:"oidcCaContent"` - OidcGroupsClaims []string `pulumi:"oidcGroupsClaims"` - OidcGroupsPrefix *string `pulumi:"oidcGroupsPrefix"` + KubeId *string `pulumi:"kubeId"` + // Content of the certificate for the CA, in Base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + OidcCaContent *string `pulumi:"oidcCaContent"` + // Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + OidcGroupsClaims []string `pulumi:"oidcGroupsClaims"` + // Prefix prepended to group claims to prevent clashes with existing names (such as `system:groups`). For example, the value `oidc:` will create group names like `oidc:engineering` and `oidc:infra`. + OidcGroupsPrefix *string `pulumi:"oidcGroupsPrefix"` + // Array of `key=value` pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." OidcRequiredClaims []string `pulumi:"oidcRequiredClaims"` - OidcSigningAlgs []string `pulumi:"oidcSigningAlgs"` - OidcUsernameClaim *string `pulumi:"oidcUsernameClaim"` - OidcUsernamePrefix *string `pulumi:"oidcUsernamePrefix"` + // Array of signing algorithms accepted. Default is `RS256`. + OidcSigningAlgs []string `pulumi:"oidcSigningAlgs"` + // JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + OidcUsernameClaim *string `pulumi:"oidcUsernameClaim"` + // Prefix prepended to username claims to prevent clashes with existing names (such as `system:users`). For example, the value `oidc:` will create usernames like `oidc:jane.doe`. If this field isn't set and `oidcUsernameClaim` is a value other than email the prefix defaults to `issuerUrl` where `issuerUrl` is the value of `issuer_url.` The value - can be used to disable all prefixing. + OidcUsernamePrefix *string `pulumi:"oidcUsernamePrefix"` // The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.** ServiceName *string `pulumi:"serviceName"` } @@ -152,13 +166,20 @@ type KubeOidcState struct { // The OIDC issuer url. IssuerUrl pulumi.StringPtrInput // The ID of the managed kubernetes cluster. **Changing this value recreates the resource.** - KubeId pulumi.StringPtrInput - OidcCaContent pulumi.StringPtrInput - OidcGroupsClaims pulumi.StringArrayInput - OidcGroupsPrefix pulumi.StringPtrInput + KubeId pulumi.StringPtrInput + // Content of the certificate for the CA, in Base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + OidcCaContent pulumi.StringPtrInput + // Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + OidcGroupsClaims pulumi.StringArrayInput + // Prefix prepended to group claims to prevent clashes with existing names (such as `system:groups`). For example, the value `oidc:` will create group names like `oidc:engineering` and `oidc:infra`. + OidcGroupsPrefix pulumi.StringPtrInput + // Array of `key=value` pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." OidcRequiredClaims pulumi.StringArrayInput - OidcSigningAlgs pulumi.StringArrayInput - OidcUsernameClaim pulumi.StringPtrInput + // Array of signing algorithms accepted. Default is `RS256`. + OidcSigningAlgs pulumi.StringArrayInput + // JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + OidcUsernameClaim pulumi.StringPtrInput + // Prefix prepended to username claims to prevent clashes with existing names (such as `system:users`). For example, the value `oidc:` will create usernames like `oidc:jane.doe`. If this field isn't set and `oidcUsernameClaim` is a value other than email the prefix defaults to `issuerUrl` where `issuerUrl` is the value of `issuer_url.` The value - can be used to disable all prefixing. OidcUsernamePrefix pulumi.StringPtrInput // The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.** ServiceName pulumi.StringPtrInput @@ -174,14 +195,21 @@ type kubeOidcArgs struct { // The OIDC issuer url. IssuerUrl string `pulumi:"issuerUrl"` // The ID of the managed kubernetes cluster. **Changing this value recreates the resource.** - KubeId string `pulumi:"kubeId"` - OidcCaContent *string `pulumi:"oidcCaContent"` - OidcGroupsClaims []string `pulumi:"oidcGroupsClaims"` - OidcGroupsPrefix *string `pulumi:"oidcGroupsPrefix"` + KubeId string `pulumi:"kubeId"` + // Content of the certificate for the CA, in Base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + OidcCaContent *string `pulumi:"oidcCaContent"` + // Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + OidcGroupsClaims []string `pulumi:"oidcGroupsClaims"` + // Prefix prepended to group claims to prevent clashes with existing names (such as `system:groups`). For example, the value `oidc:` will create group names like `oidc:engineering` and `oidc:infra`. + OidcGroupsPrefix *string `pulumi:"oidcGroupsPrefix"` + // Array of `key=value` pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." OidcRequiredClaims []string `pulumi:"oidcRequiredClaims"` - OidcSigningAlgs []string `pulumi:"oidcSigningAlgs"` - OidcUsernameClaim *string `pulumi:"oidcUsernameClaim"` - OidcUsernamePrefix *string `pulumi:"oidcUsernamePrefix"` + // Array of signing algorithms accepted. Default is `RS256`. + OidcSigningAlgs []string `pulumi:"oidcSigningAlgs"` + // JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + OidcUsernameClaim *string `pulumi:"oidcUsernameClaim"` + // Prefix prepended to username claims to prevent clashes with existing names (such as `system:users`). For example, the value `oidc:` will create usernames like `oidc:jane.doe`. If this field isn't set and `oidcUsernameClaim` is a value other than email the prefix defaults to `issuerUrl` where `issuerUrl` is the value of `issuer_url.` The value - can be used to disable all prefixing. + OidcUsernamePrefix *string `pulumi:"oidcUsernamePrefix"` // The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.** ServiceName string `pulumi:"serviceName"` } @@ -193,13 +221,20 @@ type KubeOidcArgs struct { // The OIDC issuer url. IssuerUrl pulumi.StringInput // The ID of the managed kubernetes cluster. **Changing this value recreates the resource.** - KubeId pulumi.StringInput - OidcCaContent pulumi.StringPtrInput - OidcGroupsClaims pulumi.StringArrayInput - OidcGroupsPrefix pulumi.StringPtrInput + KubeId pulumi.StringInput + // Content of the certificate for the CA, in Base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + OidcCaContent pulumi.StringPtrInput + // Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + OidcGroupsClaims pulumi.StringArrayInput + // Prefix prepended to group claims to prevent clashes with existing names (such as `system:groups`). For example, the value `oidc:` will create group names like `oidc:engineering` and `oidc:infra`. + OidcGroupsPrefix pulumi.StringPtrInput + // Array of `key=value` pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." OidcRequiredClaims pulumi.StringArrayInput - OidcSigningAlgs pulumi.StringArrayInput - OidcUsernameClaim pulumi.StringPtrInput + // Array of signing algorithms accepted. Default is `RS256`. + OidcSigningAlgs pulumi.StringArrayInput + // JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + OidcUsernameClaim pulumi.StringPtrInput + // Prefix prepended to username claims to prevent clashes with existing names (such as `system:users`). For example, the value `oidc:` will create usernames like `oidc:jane.doe`. If this field isn't set and `oidcUsernameClaim` is a value other than email the prefix defaults to `issuerUrl` where `issuerUrl` is the value of `issuer_url.` The value - can be used to disable all prefixing. OidcUsernamePrefix pulumi.StringPtrInput // The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.** ServiceName pulumi.StringInput @@ -307,30 +342,37 @@ func (o KubeOidcOutput) KubeId() pulumi.StringOutput { return o.ApplyT(func(v *KubeOidc) pulumi.StringOutput { return v.KubeId }).(pulumi.StringOutput) } +// Content of the certificate for the CA, in Base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. func (o KubeOidcOutput) OidcCaContent() pulumi.StringPtrOutput { return o.ApplyT(func(v *KubeOidc) pulumi.StringPtrOutput { return v.OidcCaContent }).(pulumi.StringPtrOutput) } +// Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. func (o KubeOidcOutput) OidcGroupsClaims() pulumi.StringArrayOutput { return o.ApplyT(func(v *KubeOidc) pulumi.StringArrayOutput { return v.OidcGroupsClaims }).(pulumi.StringArrayOutput) } +// Prefix prepended to group claims to prevent clashes with existing names (such as `system:groups`). For example, the value `oidc:` will create group names like `oidc:engineering` and `oidc:infra`. func (o KubeOidcOutput) OidcGroupsPrefix() pulumi.StringPtrOutput { return o.ApplyT(func(v *KubeOidc) pulumi.StringPtrOutput { return v.OidcGroupsPrefix }).(pulumi.StringPtrOutput) } +// Array of `key=value` pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." func (o KubeOidcOutput) OidcRequiredClaims() pulumi.StringArrayOutput { return o.ApplyT(func(v *KubeOidc) pulumi.StringArrayOutput { return v.OidcRequiredClaims }).(pulumi.StringArrayOutput) } +// Array of signing algorithms accepted. Default is `RS256`. func (o KubeOidcOutput) OidcSigningAlgs() pulumi.StringArrayOutput { return o.ApplyT(func(v *KubeOidc) pulumi.StringArrayOutput { return v.OidcSigningAlgs }).(pulumi.StringArrayOutput) } +// JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. func (o KubeOidcOutput) OidcUsernameClaim() pulumi.StringPtrOutput { return o.ApplyT(func(v *KubeOidc) pulumi.StringPtrOutput { return v.OidcUsernameClaim }).(pulumi.StringPtrOutput) } +// Prefix prepended to username claims to prevent clashes with existing names (such as `system:users`). For example, the value `oidc:` will create usernames like `oidc:jane.doe`. If this field isn't set and `oidcUsernameClaim` is a value other than email the prefix defaults to `issuerUrl` where `issuerUrl` is the value of `issuer_url.` The value - can be used to disable all prefixing. func (o KubeOidcOutput) OidcUsernamePrefix() pulumi.StringPtrOutput { return o.ApplyT(func(v *KubeOidc) pulumi.StringPtrOutput { return v.OidcUsernamePrefix }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/ovh/cloudprojectdatabase/getDatabase.go b/sdk/go/ovh/cloudprojectdatabase/getDatabase.go index 39ffe934..834ec958 100644 --- a/sdk/go/ovh/cloudprojectdatabase/getDatabase.go +++ b/sdk/go/ovh/cloudprojectdatabase/getDatabase.go @@ -95,6 +95,8 @@ type GetDatabaseResult struct { IpRestrictions []GetDatabaseIpRestriction `pulumi:"ipRestrictions"` // Defines whether the REST API is enabled on a kafka cluster. KafkaRestApi bool `pulumi:"kafkaRestApi"` + // Defines whether the schema registry is enabled on a Kafka cluster + KafkaSchemaRegistry bool `pulumi:"kafkaSchemaRegistry"` // Time on which maintenances can start every day. MaintenanceTime string `pulumi:"maintenanceTime"` // Type of network of the cluster. @@ -221,6 +223,11 @@ func (o GetDatabaseResultOutput) KafkaRestApi() pulumi.BoolOutput { return o.ApplyT(func(v GetDatabaseResult) bool { return v.KafkaRestApi }).(pulumi.BoolOutput) } +// Defines whether the schema registry is enabled on a Kafka cluster +func (o GetDatabaseResultOutput) KafkaSchemaRegistry() pulumi.BoolOutput { + return o.ApplyT(func(v GetDatabaseResult) bool { return v.KafkaSchemaRegistry }).(pulumi.BoolOutput) +} + // Time on which maintenances can start every day. func (o GetDatabaseResultOutput) MaintenanceTime() pulumi.StringOutput { return o.ApplyT(func(v GetDatabaseResult) string { return v.MaintenanceTime }).(pulumi.StringOutput) diff --git a/sdk/go/ovh/cloudprojectdatabase/m3dbUser.go b/sdk/go/ovh/cloudprojectdatabase/m3dbUser.go index 4b881a9f..8de00e8d 100644 --- a/sdk/go/ovh/cloudprojectdatabase/m3dbUser.go +++ b/sdk/go/ovh/cloudprojectdatabase/m3dbUser.go @@ -30,7 +30,7 @@ type M3DbUser struct { CreatedAt pulumi.StringOutput `pulumi:"createdAt"` // Group of the user: Group pulumi.StringPtrOutput `pulumi:"group"` - // Name of the user. A user named "avnadmin" is map with already created admin user instead of create a new user. + // Name of the user. A user named "avnadmin" is mapped with already created admin user instead of creating a new user. Name pulumi.StringOutput `pulumi:"name"` // (Sensitive) Password of the user. Password pulumi.StringOutput `pulumi:"password"` @@ -89,7 +89,7 @@ type m3dbUserState struct { CreatedAt *string `pulumi:"createdAt"` // Group of the user: Group *string `pulumi:"group"` - // Name of the user. A user named "avnadmin" is map with already created admin user instead of create a new user. + // Name of the user. A user named "avnadmin" is mapped with already created admin user instead of creating a new user. Name *string `pulumi:"name"` // (Sensitive) Password of the user. Password *string `pulumi:"password"` @@ -109,7 +109,7 @@ type M3DbUserState struct { CreatedAt pulumi.StringPtrInput // Group of the user: Group pulumi.StringPtrInput - // Name of the user. A user named "avnadmin" is map with already created admin user instead of create a new user. + // Name of the user. A user named "avnadmin" is mapped with already created admin user instead of creating a new user. Name pulumi.StringPtrInput // (Sensitive) Password of the user. Password pulumi.StringPtrInput @@ -131,7 +131,7 @@ type m3dbUserArgs struct { ClusterId string `pulumi:"clusterId"` // Group of the user: Group *string `pulumi:"group"` - // Name of the user. A user named "avnadmin" is map with already created admin user instead of create a new user. + // Name of the user. A user named "avnadmin" is mapped with already created admin user instead of creating a new user. Name *string `pulumi:"name"` // Arbitrary string to change to trigger a password update PasswordReset *string `pulumi:"passwordReset"` @@ -146,7 +146,7 @@ type M3DbUserArgs struct { ClusterId pulumi.StringInput // Group of the user: Group pulumi.StringPtrInput - // Name of the user. A user named "avnadmin" is map with already created admin user instead of create a new user. + // Name of the user. A user named "avnadmin" is mapped with already created admin user instead of creating a new user. Name pulumi.StringPtrInput // Arbitrary string to change to trigger a password update PasswordReset pulumi.StringPtrInput @@ -257,7 +257,7 @@ func (o M3DbUserOutput) Group() pulumi.StringPtrOutput { return o.ApplyT(func(v *M3DbUser) pulumi.StringPtrOutput { return v.Group }).(pulumi.StringPtrOutput) } -// Name of the user. A user named "avnadmin" is map with already created admin user instead of create a new user. +// Name of the user. A user named "avnadmin" is mapped with already created admin user instead of creating a new user. func (o M3DbUserOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *M3DbUser) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } diff --git a/sdk/go/ovh/cloudprojectdatabase/mongoDbUser.go b/sdk/go/ovh/cloudprojectdatabase/mongoDbUser.go index 0c387d89..58503a6e 100644 --- a/sdk/go/ovh/cloudprojectdatabase/mongoDbUser.go +++ b/sdk/go/ovh/cloudprojectdatabase/mongoDbUser.go @@ -28,7 +28,7 @@ type MongoDbUser struct { ClusterId pulumi.StringOutput `pulumi:"clusterId"` // Date of the creation of the user. CreatedAt pulumi.StringOutput `pulumi:"createdAt"` - // Name of the user. + // Name of the user. A user named "admin" is mapped with already created admin@admin user instead of creating a new user. Name pulumi.StringOutput `pulumi:"name"` // (Sensitive) Password of the user. Password pulumi.StringOutput `pulumi:"password"` @@ -105,7 +105,7 @@ type mongoDbUserState struct { ClusterId *string `pulumi:"clusterId"` // Date of the creation of the user. CreatedAt *string `pulumi:"createdAt"` - // Name of the user. + // Name of the user. A user named "admin" is mapped with already created admin@admin user instead of creating a new user. Name *string `pulumi:"name"` // (Sensitive) Password of the user. Password *string `pulumi:"password"` @@ -143,7 +143,7 @@ type MongoDbUserState struct { ClusterId pulumi.StringPtrInput // Date of the creation of the user. CreatedAt pulumi.StringPtrInput - // Name of the user. + // Name of the user. A user named "admin" is mapped with already created admin@admin user instead of creating a new user. Name pulumi.StringPtrInput // (Sensitive) Password of the user. Password pulumi.StringPtrInput @@ -183,7 +183,7 @@ func (MongoDbUserState) ElementType() reflect.Type { type mongoDbUserArgs struct { // Cluster ID. ClusterId string `pulumi:"clusterId"` - // Name of the user. + // Name of the user. A user named "admin" is mapped with already created admin@admin user instead of creating a new user. Name *string `pulumi:"name"` // Arbitrary string to change to trigger a password update PasswordReset *string `pulumi:"passwordReset"` @@ -216,7 +216,7 @@ type mongoDbUserArgs struct { type MongoDbUserArgs struct { // Cluster ID. ClusterId pulumi.StringInput - // Name of the user. + // Name of the user. A user named "admin" is mapped with already created admin@admin user instead of creating a new user. Name pulumi.StringPtrInput // Arbitrary string to change to trigger a password update PasswordReset pulumi.StringPtrInput @@ -342,7 +342,7 @@ func (o MongoDbUserOutput) CreatedAt() pulumi.StringOutput { return o.ApplyT(func(v *MongoDbUser) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) } -// Name of the user. +// Name of the user. A user named "admin" is mapped with already created admin@admin user instead of creating a new user. func (o MongoDbUserOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *MongoDbUser) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } diff --git a/sdk/go/ovh/cloudprojectdatabase/opensearchUser.go b/sdk/go/ovh/cloudprojectdatabase/opensearchUser.go index 4080dcd2..56b64329 100644 --- a/sdk/go/ovh/cloudprojectdatabase/opensearchUser.go +++ b/sdk/go/ovh/cloudprojectdatabase/opensearchUser.go @@ -30,7 +30,7 @@ type OpensearchUser struct { ClusterId pulumi.StringOutput `pulumi:"clusterId"` // Date of the creation of the user. CreatedAt pulumi.StringOutput `pulumi:"createdAt"` - // Username affected by this acl. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + // Username affected by this acl. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. Name pulumi.StringOutput `pulumi:"name"` // (Sensitive) Password of the user. Password pulumi.StringOutput `pulumi:"password"` @@ -89,7 +89,7 @@ type opensearchUserState struct { ClusterId *string `pulumi:"clusterId"` // Date of the creation of the user. CreatedAt *string `pulumi:"createdAt"` - // Username affected by this acl. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + // Username affected by this acl. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. Name *string `pulumi:"name"` // (Sensitive) Password of the user. Password *string `pulumi:"password"` @@ -109,7 +109,7 @@ type OpensearchUserState struct { ClusterId pulumi.StringPtrInput // Date of the creation of the user. CreatedAt pulumi.StringPtrInput - // Username affected by this acl. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + // Username affected by this acl. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. Name pulumi.StringPtrInput // (Sensitive) Password of the user. Password pulumi.StringPtrInput @@ -131,7 +131,7 @@ type opensearchUserArgs struct { Acls []OpensearchUserAcl `pulumi:"acls"` // Cluster ID. ClusterId string `pulumi:"clusterId"` - // Username affected by this acl. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + // Username affected by this acl. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. Name *string `pulumi:"name"` // Arbitrary string to change to trigger a password update PasswordReset *string `pulumi:"passwordReset"` @@ -146,7 +146,7 @@ type OpensearchUserArgs struct { Acls OpensearchUserAclArrayInput // Cluster ID. ClusterId pulumi.StringInput - // Username affected by this acl. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + // Username affected by this acl. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. Name pulumi.StringPtrInput // Arbitrary string to change to trigger a password update PasswordReset pulumi.StringPtrInput @@ -257,7 +257,7 @@ func (o OpensearchUserOutput) CreatedAt() pulumi.StringOutput { return o.ApplyT(func(v *OpensearchUser) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) } -// Username affected by this acl. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. +// Username affected by this acl. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. func (o OpensearchUserOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *OpensearchUser) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } diff --git a/sdk/go/ovh/cloudprojectdatabase/postgresSqlUser.go b/sdk/go/ovh/cloudprojectdatabase/postgresSqlUser.go index b0adaa18..1f92b5d5 100644 --- a/sdk/go/ovh/cloudprojectdatabase/postgresSqlUser.go +++ b/sdk/go/ovh/cloudprojectdatabase/postgresSqlUser.go @@ -28,7 +28,7 @@ type PostgresSqlUser struct { ClusterId pulumi.StringOutput `pulumi:"clusterId"` // Date of the creation of the user. CreatedAt pulumi.StringOutput `pulumi:"createdAt"` - // Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + // Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. Name pulumi.StringOutput `pulumi:"name"` // (Sensitive) Password of the user. Password pulumi.StringOutput `pulumi:"password"` @@ -88,7 +88,7 @@ type postgresSqlUserState struct { ClusterId *string `pulumi:"clusterId"` // Date of the creation of the user. CreatedAt *string `pulumi:"createdAt"` - // Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + // Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. Name *string `pulumi:"name"` // (Sensitive) Password of the user. Password *string `pulumi:"password"` @@ -109,7 +109,7 @@ type PostgresSqlUserState struct { ClusterId pulumi.StringPtrInput // Date of the creation of the user. CreatedAt pulumi.StringPtrInput - // Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + // Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. Name pulumi.StringPtrInput // (Sensitive) Password of the user. Password pulumi.StringPtrInput @@ -132,7 +132,7 @@ func (PostgresSqlUserState) ElementType() reflect.Type { type postgresSqlUserArgs struct { // Cluster ID. ClusterId string `pulumi:"clusterId"` - // Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + // Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. Name *string `pulumi:"name"` // Arbitrary string to change to trigger a password update PasswordReset *string `pulumi:"passwordReset"` @@ -148,7 +148,7 @@ type postgresSqlUserArgs struct { type PostgresSqlUserArgs struct { // Cluster ID. ClusterId pulumi.StringInput - // Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + // Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. Name pulumi.StringPtrInput // Arbitrary string to change to trigger a password update PasswordReset pulumi.StringPtrInput @@ -257,7 +257,7 @@ func (o PostgresSqlUserOutput) CreatedAt() pulumi.StringOutput { return o.ApplyT(func(v *PostgresSqlUser) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) } -// Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. +// Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. func (o PostgresSqlUserOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *PostgresSqlUser) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } diff --git a/sdk/go/ovh/cloudprojectdatabase/redisUser.go b/sdk/go/ovh/cloudprojectdatabase/redisUser.go index d881abb1..91b1771c 100644 --- a/sdk/go/ovh/cloudprojectdatabase/redisUser.go +++ b/sdk/go/ovh/cloudprojectdatabase/redisUser.go @@ -36,7 +36,7 @@ type RedisUser struct { CreatedAt pulumi.StringOutput `pulumi:"createdAt"` // Keys of the user. Keys pulumi.StringArrayOutput `pulumi:"keys"` - // Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + // Name of the user. Name pulumi.StringOutput `pulumi:"name"` // (Sensitive) Password of the user. Password pulumi.StringOutput `pulumi:"password"` @@ -101,7 +101,7 @@ type redisUserState struct { CreatedAt *string `pulumi:"createdAt"` // Keys of the user. Keys []string `pulumi:"keys"` - // Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + // Name of the user. Name *string `pulumi:"name"` // (Sensitive) Password of the user. Password *string `pulumi:"password"` @@ -127,7 +127,7 @@ type RedisUserState struct { CreatedAt pulumi.StringPtrInput // Keys of the user. Keys pulumi.StringArrayInput - // Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + // Name of the user. Name pulumi.StringPtrInput // (Sensitive) Password of the user. Password pulumi.StringPtrInput @@ -155,7 +155,7 @@ type redisUserArgs struct { Commands []string `pulumi:"commands"` // Keys of the user. Keys []string `pulumi:"keys"` - // Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + // Name of the user. Name *string `pulumi:"name"` // Arbitrary string to change to trigger a password update PasswordReset *string `pulumi:"passwordReset"` @@ -176,7 +176,7 @@ type RedisUserArgs struct { Commands pulumi.StringArrayInput // Keys of the user. Keys pulumi.StringArrayInput - // Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + // Name of the user. Name pulumi.StringPtrInput // Arbitrary string to change to trigger a password update PasswordReset pulumi.StringPtrInput @@ -302,7 +302,7 @@ func (o RedisUserOutput) Keys() pulumi.StringArrayOutput { return o.ApplyT(func(v *RedisUser) pulumi.StringArrayOutput { return v.Keys }).(pulumi.StringArrayOutput) } -// Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. +// Name of the user. func (o RedisUserOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *RedisUser) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } diff --git a/sdk/go/ovh/cloudprojectdatabase/user.go b/sdk/go/ovh/cloudprojectdatabase/user.go index 38eade30..3bec3bd0 100644 --- a/sdk/go/ovh/cloudprojectdatabase/user.go +++ b/sdk/go/ovh/cloudprojectdatabase/user.go @@ -31,7 +31,7 @@ type User struct { // The engine of the database cluster you want to add. You can find the complete list of available engine in the [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases). // Available engines: Engine pulumi.StringOutput `pulumi:"engine"` - // Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. The "Grafana" engine only allows the "avnadmin" mapping. + // Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. The "Grafana" engine only allows the "avnadmin" mapping. Name pulumi.StringOutput `pulumi:"name"` // (Sensitive) Password of the user. Password pulumi.StringOutput `pulumi:"password"` @@ -94,7 +94,7 @@ type userState struct { // The engine of the database cluster you want to add. You can find the complete list of available engine in the [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases). // Available engines: Engine *string `pulumi:"engine"` - // Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. The "Grafana" engine only allows the "avnadmin" mapping. + // Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. The "Grafana" engine only allows the "avnadmin" mapping. Name *string `pulumi:"name"` // (Sensitive) Password of the user. Password *string `pulumi:"password"` @@ -115,7 +115,7 @@ type UserState struct { // The engine of the database cluster you want to add. You can find the complete list of available engine in the [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases). // Available engines: Engine pulumi.StringPtrInput - // Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. The "Grafana" engine only allows the "avnadmin" mapping. + // Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. The "Grafana" engine only allows the "avnadmin" mapping. Name pulumi.StringPtrInput // (Sensitive) Password of the user. Password pulumi.StringPtrInput @@ -138,7 +138,7 @@ type userArgs struct { // The engine of the database cluster you want to add. You can find the complete list of available engine in the [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases). // Available engines: Engine string `pulumi:"engine"` - // Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. The "Grafana" engine only allows the "avnadmin" mapping. + // Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. The "Grafana" engine only allows the "avnadmin" mapping. Name *string `pulumi:"name"` // Arbitrary string to change to trigger a password update PasswordReset *string `pulumi:"passwordReset"` @@ -154,7 +154,7 @@ type UserArgs struct { // The engine of the database cluster you want to add. You can find the complete list of available engine in the [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases). // Available engines: Engine pulumi.StringInput - // Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. The "Grafana" engine only allows the "avnadmin" mapping. + // Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. The "Grafana" engine only allows the "avnadmin" mapping. Name pulumi.StringPtrInput // Arbitrary string to change to trigger a password update PasswordReset pulumi.StringPtrInput @@ -266,7 +266,7 @@ func (o UserOutput) Engine() pulumi.StringOutput { return o.ApplyT(func(v *User) pulumi.StringOutput { return v.Engine }).(pulumi.StringOutput) } -// Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. The "Grafana" engine only allows the "avnadmin" mapping. +// Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. The "Grafana" engine only allows the "avnadmin" mapping. func (o UserOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *User) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } diff --git a/sdk/go/ovh/config/config.go b/sdk/go/ovh/config/config.go index c0a6ab9c..1ed4a930 100644 --- a/sdk/go/ovh/config/config.go +++ b/sdk/go/ovh/config/config.go @@ -11,7 +11,7 @@ import ( var _ = internal.GetEnvOrDefault -// The OVH API Application Key. +// The OVH API Application Key func GetApplicationKey(ctx *pulumi.Context) string { v, err := config.Try(ctx, "ovh:applicationKey") if err == nil { @@ -24,7 +24,7 @@ func GetApplicationKey(ctx *pulumi.Context) string { return value } -// The OVH API Application Secret. +// The OVH API Application Secret func GetApplicationSecret(ctx *pulumi.Context) string { v, err := config.Try(ctx, "ovh:applicationSecret") if err == nil { @@ -37,7 +37,17 @@ func GetApplicationSecret(ctx *pulumi.Context) string { return value } -// The OVH API Consumer key. +// OAuth 2.0 application's ID +func GetClientId(ctx *pulumi.Context) string { + return config.Get(ctx, "ovh:clientId") +} + +// OAuth 2.0 application's secret +func GetClientSecret(ctx *pulumi.Context) string { + return config.Get(ctx, "ovh:clientSecret") +} + +// The OVH API Consumer Key func GetConsumerKey(ctx *pulumi.Context) string { v, err := config.Try(ctx, "ovh:consumerKey") if err == nil { @@ -50,7 +60,7 @@ func GetConsumerKey(ctx *pulumi.Context) string { return value } -// The OVH API endpoint to target (ex: "ovh-eu"). +// The OVH API endpoint to target (ex: "ovh-eu") func GetEndpoint(ctx *pulumi.Context) string { v, err := config.Try(ctx, "ovh:endpoint") if err == nil { diff --git a/sdk/go/ovh/dedicated/getServerSpecificationsNetwork.go b/sdk/go/ovh/dedicated/getServerSpecificationsNetwork.go new file mode 100644 index 00000000..a9446427 --- /dev/null +++ b/sdk/go/ovh/dedicated/getServerSpecificationsNetwork.go @@ -0,0 +1,177 @@ +// 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 network 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.GetServerSpecificationsNetwork(ctx, &dedicated.GetServerSpecificationsNetworkArgs{ +// ServiceName: "myserver", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +func GetServerSpecificationsNetwork(ctx *pulumi.Context, args *GetServerSpecificationsNetworkArgs, opts ...pulumi.InvokeOption) (*GetServerSpecificationsNetworkResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetServerSpecificationsNetworkResult + err := ctx.Invoke("ovh:Dedicated/getServerSpecificationsNetwork:getServerSpecificationsNetwork", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getServerSpecificationsNetwork. +type GetServerSpecificationsNetworkArgs struct { + // The internal name of your dedicated server. + ServiceName string `pulumi:"serviceName"` +} + +// A collection of values returned by getServerSpecificationsNetwork. +type GetServerSpecificationsNetworkResult struct { + // vrack bandwidth limitation + Bandwidth GetServerSpecificationsNetworkBandwidth `pulumi:"bandwidth"` + // Network connection flow rate + ConnectionVal GetServerSpecificationsNetworkConnectionVal `pulumi:"connectionVal"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // OLA details + Ola GetServerSpecificationsNetworkOla `pulumi:"ola"` + // Routing details + Routing GetServerSpecificationsNetworkRouting `pulumi:"routing"` + ServiceName string `pulumi:"serviceName"` + // Switching details + Switching GetServerSpecificationsNetworkSwitching `pulumi:"switching"` + // Traffic details + Traffic GetServerSpecificationsNetworkTraffic `pulumi:"traffic"` + // VMAC information for this dedicated server + Vmac GetServerSpecificationsNetworkVmac `pulumi:"vmac"` + // vRack details + Vrack GetServerSpecificationsNetworkVrack `pulumi:"vrack"` +} + +func GetServerSpecificationsNetworkOutput(ctx *pulumi.Context, args GetServerSpecificationsNetworkOutputArgs, opts ...pulumi.InvokeOption) GetServerSpecificationsNetworkResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (GetServerSpecificationsNetworkResult, error) { + args := v.(GetServerSpecificationsNetworkArgs) + r, err := GetServerSpecificationsNetwork(ctx, &args, opts...) + var s GetServerSpecificationsNetworkResult + if r != nil { + s = *r + } + return s, err + }).(GetServerSpecificationsNetworkResultOutput) +} + +// A collection of arguments for invoking getServerSpecificationsNetwork. +type GetServerSpecificationsNetworkOutputArgs struct { + // The internal name of your dedicated server. + ServiceName pulumi.StringInput `pulumi:"serviceName"` +} + +func (GetServerSpecificationsNetworkOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkArgs)(nil)).Elem() +} + +// A collection of values returned by getServerSpecificationsNetwork. +type GetServerSpecificationsNetworkResultOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsNetworkResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkResult)(nil)).Elem() +} + +func (o GetServerSpecificationsNetworkResultOutput) ToGetServerSpecificationsNetworkResultOutput() GetServerSpecificationsNetworkResultOutput { + return o +} + +func (o GetServerSpecificationsNetworkResultOutput) ToGetServerSpecificationsNetworkResultOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkResultOutput { + return o +} + +// vrack bandwidth limitation +func (o GetServerSpecificationsNetworkResultOutput) Bandwidth() GetServerSpecificationsNetworkBandwidthOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkResult) GetServerSpecificationsNetworkBandwidth { + return v.Bandwidth + }).(GetServerSpecificationsNetworkBandwidthOutput) +} + +// Network connection flow rate +func (o GetServerSpecificationsNetworkResultOutput) ConnectionVal() GetServerSpecificationsNetworkConnectionValOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkResult) GetServerSpecificationsNetworkConnectionVal { + return v.ConnectionVal + }).(GetServerSpecificationsNetworkConnectionValOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetServerSpecificationsNetworkResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkResult) string { return v.Id }).(pulumi.StringOutput) +} + +// OLA details +func (o GetServerSpecificationsNetworkResultOutput) Ola() GetServerSpecificationsNetworkOlaOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkResult) GetServerSpecificationsNetworkOla { return v.Ola }).(GetServerSpecificationsNetworkOlaOutput) +} + +// Routing details +func (o GetServerSpecificationsNetworkResultOutput) Routing() GetServerSpecificationsNetworkRoutingOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkResult) GetServerSpecificationsNetworkRouting { return v.Routing }).(GetServerSpecificationsNetworkRoutingOutput) +} + +func (o GetServerSpecificationsNetworkResultOutput) ServiceName() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkResult) string { return v.ServiceName }).(pulumi.StringOutput) +} + +// Switching details +func (o GetServerSpecificationsNetworkResultOutput) Switching() GetServerSpecificationsNetworkSwitchingOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkResult) GetServerSpecificationsNetworkSwitching { + return v.Switching + }).(GetServerSpecificationsNetworkSwitchingOutput) +} + +// Traffic details +func (o GetServerSpecificationsNetworkResultOutput) Traffic() GetServerSpecificationsNetworkTrafficOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkResult) GetServerSpecificationsNetworkTraffic { return v.Traffic }).(GetServerSpecificationsNetworkTrafficOutput) +} + +// VMAC information for this dedicated server +func (o GetServerSpecificationsNetworkResultOutput) Vmac() GetServerSpecificationsNetworkVmacOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkResult) GetServerSpecificationsNetworkVmac { return v.Vmac }).(GetServerSpecificationsNetworkVmacOutput) +} + +// vRack details +func (o GetServerSpecificationsNetworkResultOutput) Vrack() GetServerSpecificationsNetworkVrackOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkResult) GetServerSpecificationsNetworkVrack { return v.Vrack }).(GetServerSpecificationsNetworkVrackOutput) +} + +func init() { + pulumi.RegisterOutputType(GetServerSpecificationsNetworkResultOutput{}) +} diff --git a/sdk/go/ovh/dedicated/pulumiTypes.go b/sdk/go/ovh/dedicated/pulumiTypes.go index 67bb5450..5ef8edc3 100644 --- a/sdk/go/ovh/dedicated/pulumiTypes.go +++ b/sdk/go/ovh/dedicated/pulumiTypes.go @@ -18,11 +18,11 @@ type ServerInstallTaskDetails struct { CustomHostname *string `pulumi:"customHostname"` // Disk group id. DiskGroupId *int `pulumi:"diskGroupId"` - // set to true to install sql server (Windows template only). - InstallSqlServer *bool `pulumi:"installSqlServer"` - // language. + // Deprecated, will be removed in next release. + // + // Deprecated: This field is deprecated and will be removed in a future release Language *string `pulumi:"language"` - // set to true to disable RAID. + // Set to true to disable RAID. NoRaid *bool `pulumi:"noRaid"` // Indicate the URL where your postinstall customisation script is located. PostInstallationScriptLink *string `pulumi:"postInstallationScriptLink"` @@ -30,9 +30,17 @@ type ServerInstallTaskDetails struct { PostInstallationScriptReturn *string `pulumi:"postInstallationScriptReturn"` // soft raid devices. SoftRaidDevices *int `pulumi:"softRaidDevices"` - // Name of the ssh key that should be installed. Password login will be disabled. - SshKeyName *string `pulumi:"sshKeyName"` - // set to true to use SPLA. + // Deprecated, will be removed in next release. + // + // The `userMetadata` block supports many arguments, here is a non-exhaustive list depending on the OS: + // + // -[see OS questions](https://help.ovhcloud.com/csm/en-dedicated-servers-api-os-installation?id=kb_article_view&sysparm_article=KB0061951#os-questions) + // + // -[see api](https://eu.api.ovh.com/console-preview/?section=%2Fdedicated%2FinstallationTemplate&branch=v1#get-/dedicated/installationTemplate/-templateName-) + // + // -[see documentation](https://help.ovhcloud.com/csm/en-ie-dedicated-servers-api-os-installation?id=kb_article_view&sysparm_article=KB0061950#create-an-os-installation-task) to get more information + // + // Deprecated: This field is deprecated and will be removed in a future release UseSpla *bool `pulumi:"useSpla"` } @@ -52,11 +60,11 @@ type ServerInstallTaskDetailsArgs struct { CustomHostname pulumi.StringPtrInput `pulumi:"customHostname"` // Disk group id. DiskGroupId pulumi.IntPtrInput `pulumi:"diskGroupId"` - // set to true to install sql server (Windows template only). - InstallSqlServer pulumi.BoolPtrInput `pulumi:"installSqlServer"` - // language. + // Deprecated, will be removed in next release. + // + // Deprecated: This field is deprecated and will be removed in a future release Language pulumi.StringPtrInput `pulumi:"language"` - // set to true to disable RAID. + // Set to true to disable RAID. NoRaid pulumi.BoolPtrInput `pulumi:"noRaid"` // Indicate the URL where your postinstall customisation script is located. PostInstallationScriptLink pulumi.StringPtrInput `pulumi:"postInstallationScriptLink"` @@ -64,9 +72,17 @@ type ServerInstallTaskDetailsArgs struct { PostInstallationScriptReturn pulumi.StringPtrInput `pulumi:"postInstallationScriptReturn"` // soft raid devices. SoftRaidDevices pulumi.IntPtrInput `pulumi:"softRaidDevices"` - // Name of the ssh key that should be installed. Password login will be disabled. - SshKeyName pulumi.StringPtrInput `pulumi:"sshKeyName"` - // set to true to use SPLA. + // Deprecated, will be removed in next release. + // + // The `userMetadata` block supports many arguments, here is a non-exhaustive list depending on the OS: + // + // -[see OS questions](https://help.ovhcloud.com/csm/en-dedicated-servers-api-os-installation?id=kb_article_view&sysparm_article=KB0061951#os-questions) + // + // -[see api](https://eu.api.ovh.com/console-preview/?section=%2Fdedicated%2FinstallationTemplate&branch=v1#get-/dedicated/installationTemplate/-templateName-) + // + // -[see documentation](https://help.ovhcloud.com/csm/en-ie-dedicated-servers-api-os-installation?id=kb_article_view&sysparm_article=KB0061950#create-an-os-installation-task) to get more information + // + // Deprecated: This field is deprecated and will be removed in a future release UseSpla pulumi.BoolPtrInput `pulumi:"useSpla"` } @@ -157,17 +173,14 @@ func (o ServerInstallTaskDetailsOutput) DiskGroupId() pulumi.IntPtrOutput { return o.ApplyT(func(v ServerInstallTaskDetails) *int { return v.DiskGroupId }).(pulumi.IntPtrOutput) } -// set to true to install sql server (Windows template only). -func (o ServerInstallTaskDetailsOutput) InstallSqlServer() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ServerInstallTaskDetails) *bool { return v.InstallSqlServer }).(pulumi.BoolPtrOutput) -} - -// language. +// Deprecated, will be removed in next release. +// +// Deprecated: This field is deprecated and will be removed in a future release func (o ServerInstallTaskDetailsOutput) Language() pulumi.StringPtrOutput { return o.ApplyT(func(v ServerInstallTaskDetails) *string { return v.Language }).(pulumi.StringPtrOutput) } -// set to true to disable RAID. +// Set to true to disable RAID. func (o ServerInstallTaskDetailsOutput) NoRaid() pulumi.BoolPtrOutput { return o.ApplyT(func(v ServerInstallTaskDetails) *bool { return v.NoRaid }).(pulumi.BoolPtrOutput) } @@ -187,12 +200,17 @@ func (o ServerInstallTaskDetailsOutput) SoftRaidDevices() pulumi.IntPtrOutput { return o.ApplyT(func(v ServerInstallTaskDetails) *int { return v.SoftRaidDevices }).(pulumi.IntPtrOutput) } -// Name of the ssh key that should be installed. Password login will be disabled. -func (o ServerInstallTaskDetailsOutput) SshKeyName() pulumi.StringPtrOutput { - return o.ApplyT(func(v ServerInstallTaskDetails) *string { return v.SshKeyName }).(pulumi.StringPtrOutput) -} - -// set to true to use SPLA. +// Deprecated, will be removed in next release. +// +// The `userMetadata` block supports many arguments, here is a non-exhaustive list depending on the OS: +// +// -[see OS questions](https://help.ovhcloud.com/csm/en-dedicated-servers-api-os-installation?id=kb_article_view&sysparm_article=KB0061951#os-questions) +// +// -[see api](https://eu.api.ovh.com/console-preview/?section=%2Fdedicated%2FinstallationTemplate&branch=v1#get-/dedicated/installationTemplate/-templateName-) +// +// -[see documentation](https://help.ovhcloud.com/csm/en-ie-dedicated-servers-api-os-installation?id=kb_article_view&sysparm_article=KB0061950#create-an-os-installation-task) to get more information +// +// Deprecated: This field is deprecated and will be removed in a future release func (o ServerInstallTaskDetailsOutput) UseSpla() pulumi.BoolPtrOutput { return o.ApplyT(func(v ServerInstallTaskDetails) *bool { return v.UseSpla }).(pulumi.BoolPtrOutput) } @@ -241,17 +259,9 @@ func (o ServerInstallTaskDetailsPtrOutput) DiskGroupId() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } -// set to true to install sql server (Windows template only). -func (o ServerInstallTaskDetailsPtrOutput) InstallSqlServer() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *ServerInstallTaskDetails) *bool { - if v == nil { - return nil - } - return v.InstallSqlServer - }).(pulumi.BoolPtrOutput) -} - -// language. +// Deprecated, will be removed in next release. +// +// Deprecated: This field is deprecated and will be removed in a future release func (o ServerInstallTaskDetailsPtrOutput) Language() pulumi.StringPtrOutput { return o.ApplyT(func(v *ServerInstallTaskDetails) *string { if v == nil { @@ -261,7 +271,7 @@ func (o ServerInstallTaskDetailsPtrOutput) Language() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// set to true to disable RAID. +// Set to true to disable RAID. func (o ServerInstallTaskDetailsPtrOutput) NoRaid() pulumi.BoolPtrOutput { return o.ApplyT(func(v *ServerInstallTaskDetails) *bool { if v == nil { @@ -301,17 +311,17 @@ func (o ServerInstallTaskDetailsPtrOutput) SoftRaidDevices() pulumi.IntPtrOutput }).(pulumi.IntPtrOutput) } -// Name of the ssh key that should be installed. Password login will be disabled. -func (o ServerInstallTaskDetailsPtrOutput) SshKeyName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ServerInstallTaskDetails) *string { - if v == nil { - return nil - } - return v.SshKeyName - }).(pulumi.StringPtrOutput) -} - -// set to true to use SPLA. +// Deprecated, will be removed in next release. +// +// The `userMetadata` block supports many arguments, here is a non-exhaustive list depending on the OS: +// +// -[see OS questions](https://help.ovhcloud.com/csm/en-dedicated-servers-api-os-installation?id=kb_article_view&sysparm_article=KB0061951#os-questions) +// +// -[see api](https://eu.api.ovh.com/console-preview/?section=%2Fdedicated%2FinstallationTemplate&branch=v1#get-/dedicated/installationTemplate/-templateName-) +// +// -[see documentation](https://help.ovhcloud.com/csm/en-ie-dedicated-servers-api-os-installation?id=kb_article_view&sysparm_article=KB0061950#create-an-os-installation-task) to get more information +// +// Deprecated: This field is deprecated and will be removed in a future release func (o ServerInstallTaskDetailsPtrOutput) UseSpla() pulumi.BoolPtrOutput { return o.ApplyT(func(v *ServerInstallTaskDetails) *bool { if v == nil { @@ -321,6 +331,112 @@ func (o ServerInstallTaskDetailsPtrOutput) UseSpla() pulumi.BoolPtrOutput { }).(pulumi.BoolPtrOutput) } +type ServerInstallTaskUserMetadata struct { + // The key for the user_metadata + Key string `pulumi:"key"` + // The value for the user_metadata + Value string `pulumi:"value"` +} + +// ServerInstallTaskUserMetadataInput is an input type that accepts ServerInstallTaskUserMetadataArgs and ServerInstallTaskUserMetadataOutput values. +// You can construct a concrete instance of `ServerInstallTaskUserMetadataInput` via: +// +// ServerInstallTaskUserMetadataArgs{...} +type ServerInstallTaskUserMetadataInput interface { + pulumi.Input + + ToServerInstallTaskUserMetadataOutput() ServerInstallTaskUserMetadataOutput + ToServerInstallTaskUserMetadataOutputWithContext(context.Context) ServerInstallTaskUserMetadataOutput +} + +type ServerInstallTaskUserMetadataArgs struct { + // The key for the user_metadata + Key pulumi.StringInput `pulumi:"key"` + // The value for the user_metadata + Value pulumi.StringInput `pulumi:"value"` +} + +func (ServerInstallTaskUserMetadataArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServerInstallTaskUserMetadata)(nil)).Elem() +} + +func (i ServerInstallTaskUserMetadataArgs) ToServerInstallTaskUserMetadataOutput() ServerInstallTaskUserMetadataOutput { + return i.ToServerInstallTaskUserMetadataOutputWithContext(context.Background()) +} + +func (i ServerInstallTaskUserMetadataArgs) ToServerInstallTaskUserMetadataOutputWithContext(ctx context.Context) ServerInstallTaskUserMetadataOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerInstallTaskUserMetadataOutput) +} + +// ServerInstallTaskUserMetadataArrayInput is an input type that accepts ServerInstallTaskUserMetadataArray and ServerInstallTaskUserMetadataArrayOutput values. +// You can construct a concrete instance of `ServerInstallTaskUserMetadataArrayInput` via: +// +// ServerInstallTaskUserMetadataArray{ ServerInstallTaskUserMetadataArgs{...} } +type ServerInstallTaskUserMetadataArrayInput interface { + pulumi.Input + + ToServerInstallTaskUserMetadataArrayOutput() ServerInstallTaskUserMetadataArrayOutput + ToServerInstallTaskUserMetadataArrayOutputWithContext(context.Context) ServerInstallTaskUserMetadataArrayOutput +} + +type ServerInstallTaskUserMetadataArray []ServerInstallTaskUserMetadataInput + +func (ServerInstallTaskUserMetadataArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServerInstallTaskUserMetadata)(nil)).Elem() +} + +func (i ServerInstallTaskUserMetadataArray) ToServerInstallTaskUserMetadataArrayOutput() ServerInstallTaskUserMetadataArrayOutput { + return i.ToServerInstallTaskUserMetadataArrayOutputWithContext(context.Background()) +} + +func (i ServerInstallTaskUserMetadataArray) ToServerInstallTaskUserMetadataArrayOutputWithContext(ctx context.Context) ServerInstallTaskUserMetadataArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerInstallTaskUserMetadataArrayOutput) +} + +type ServerInstallTaskUserMetadataOutput struct{ *pulumi.OutputState } + +func (ServerInstallTaskUserMetadataOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServerInstallTaskUserMetadata)(nil)).Elem() +} + +func (o ServerInstallTaskUserMetadataOutput) ToServerInstallTaskUserMetadataOutput() ServerInstallTaskUserMetadataOutput { + return o +} + +func (o ServerInstallTaskUserMetadataOutput) ToServerInstallTaskUserMetadataOutputWithContext(ctx context.Context) ServerInstallTaskUserMetadataOutput { + return o +} + +// The key for the user_metadata +func (o ServerInstallTaskUserMetadataOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v ServerInstallTaskUserMetadata) string { return v.Key }).(pulumi.StringOutput) +} + +// The value for the user_metadata +func (o ServerInstallTaskUserMetadataOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v ServerInstallTaskUserMetadata) string { return v.Value }).(pulumi.StringOutput) +} + +type ServerInstallTaskUserMetadataArrayOutput struct{ *pulumi.OutputState } + +func (ServerInstallTaskUserMetadataArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServerInstallTaskUserMetadata)(nil)).Elem() +} + +func (o ServerInstallTaskUserMetadataArrayOutput) ToServerInstallTaskUserMetadataArrayOutput() ServerInstallTaskUserMetadataArrayOutput { + return o +} + +func (o ServerInstallTaskUserMetadataArrayOutput) ToServerInstallTaskUserMetadataArrayOutputWithContext(ctx context.Context) ServerInstallTaskUserMetadataArrayOutput { + return o +} + +func (o ServerInstallTaskUserMetadataArrayOutput) Index(i pulumi.IntInput) ServerInstallTaskUserMetadataOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServerInstallTaskUserMetadata { + return vs[0].([]ServerInstallTaskUserMetadata)[vs[1].(int)] + }).(ServerInstallTaskUserMetadataOutput) +} + type ServerNetworkingInterface struct { // Interface Mac address Macs []string `pulumi:"macs"` @@ -1017,9 +1133,1368 @@ func (o GetServerSpecificationsHardwareUsbKeyArrayOutput) Index(i pulumi.IntInpu }).(GetServerSpecificationsHardwareUsbKeyOutput) } +type GetServerSpecificationsNetworkBandwidth struct { + // Bandwidth limitation Internet to OVH + InternetToOvh GetServerSpecificationsNetworkBandwidthInternetToOvh `pulumi:"internetToOvh"` + // Bandwidth limitation OVH to Internet + OvhToInternet GetServerSpecificationsNetworkBandwidthOvhToInternet `pulumi:"ovhToInternet"` + // Bandwidth limitation OVH to OVH + OvhToOvh GetServerSpecificationsNetworkBandwidthOvhToOvh `pulumi:"ovhToOvh"` + // Bandwidth offer type (included┃standard) + Type string `pulumi:"type"` +} + +// GetServerSpecificationsNetworkBandwidthInput is an input type that accepts GetServerSpecificationsNetworkBandwidthArgs and GetServerSpecificationsNetworkBandwidthOutput values. +// You can construct a concrete instance of `GetServerSpecificationsNetworkBandwidthInput` via: +// +// GetServerSpecificationsNetworkBandwidthArgs{...} +type GetServerSpecificationsNetworkBandwidthInput interface { + pulumi.Input + + ToGetServerSpecificationsNetworkBandwidthOutput() GetServerSpecificationsNetworkBandwidthOutput + ToGetServerSpecificationsNetworkBandwidthOutputWithContext(context.Context) GetServerSpecificationsNetworkBandwidthOutput +} + +type GetServerSpecificationsNetworkBandwidthArgs struct { + // Bandwidth limitation Internet to OVH + InternetToOvh GetServerSpecificationsNetworkBandwidthInternetToOvhInput `pulumi:"internetToOvh"` + // Bandwidth limitation OVH to Internet + OvhToInternet GetServerSpecificationsNetworkBandwidthOvhToInternetInput `pulumi:"ovhToInternet"` + // Bandwidth limitation OVH to OVH + OvhToOvh GetServerSpecificationsNetworkBandwidthOvhToOvhInput `pulumi:"ovhToOvh"` + // Bandwidth offer type (included┃standard) + Type pulumi.StringInput `pulumi:"type"` +} + +func (GetServerSpecificationsNetworkBandwidthArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkBandwidth)(nil)).Elem() +} + +func (i GetServerSpecificationsNetworkBandwidthArgs) ToGetServerSpecificationsNetworkBandwidthOutput() GetServerSpecificationsNetworkBandwidthOutput { + return i.ToGetServerSpecificationsNetworkBandwidthOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsNetworkBandwidthArgs) ToGetServerSpecificationsNetworkBandwidthOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkBandwidthOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsNetworkBandwidthOutput) +} + +type GetServerSpecificationsNetworkBandwidthOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsNetworkBandwidthOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkBandwidth)(nil)).Elem() +} + +func (o GetServerSpecificationsNetworkBandwidthOutput) ToGetServerSpecificationsNetworkBandwidthOutput() GetServerSpecificationsNetworkBandwidthOutput { + return o +} + +func (o GetServerSpecificationsNetworkBandwidthOutput) ToGetServerSpecificationsNetworkBandwidthOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkBandwidthOutput { + return o +} + +// Bandwidth limitation Internet to OVH +func (o GetServerSpecificationsNetworkBandwidthOutput) InternetToOvh() GetServerSpecificationsNetworkBandwidthInternetToOvhOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkBandwidth) GetServerSpecificationsNetworkBandwidthInternetToOvh { + return v.InternetToOvh + }).(GetServerSpecificationsNetworkBandwidthInternetToOvhOutput) +} + +// Bandwidth limitation OVH to Internet +func (o GetServerSpecificationsNetworkBandwidthOutput) OvhToInternet() GetServerSpecificationsNetworkBandwidthOvhToInternetOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkBandwidth) GetServerSpecificationsNetworkBandwidthOvhToInternet { + return v.OvhToInternet + }).(GetServerSpecificationsNetworkBandwidthOvhToInternetOutput) +} + +// Bandwidth limitation OVH to OVH +func (o GetServerSpecificationsNetworkBandwidthOutput) OvhToOvh() GetServerSpecificationsNetworkBandwidthOvhToOvhOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkBandwidth) GetServerSpecificationsNetworkBandwidthOvhToOvh { + return v.OvhToOvh + }).(GetServerSpecificationsNetworkBandwidthOvhToOvhOutput) +} + +// Bandwidth offer type (included┃standard) +func (o GetServerSpecificationsNetworkBandwidthOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkBandwidth) string { return v.Type }).(pulumi.StringOutput) +} + +type GetServerSpecificationsNetworkBandwidthInternetToOvh struct { + Unit string `pulumi:"unit"` + Value float64 `pulumi:"value"` +} + +// GetServerSpecificationsNetworkBandwidthInternetToOvhInput is an input type that accepts GetServerSpecificationsNetworkBandwidthInternetToOvhArgs and GetServerSpecificationsNetworkBandwidthInternetToOvhOutput values. +// You can construct a concrete instance of `GetServerSpecificationsNetworkBandwidthInternetToOvhInput` via: +// +// GetServerSpecificationsNetworkBandwidthInternetToOvhArgs{...} +type GetServerSpecificationsNetworkBandwidthInternetToOvhInput interface { + pulumi.Input + + ToGetServerSpecificationsNetworkBandwidthInternetToOvhOutput() GetServerSpecificationsNetworkBandwidthInternetToOvhOutput + ToGetServerSpecificationsNetworkBandwidthInternetToOvhOutputWithContext(context.Context) GetServerSpecificationsNetworkBandwidthInternetToOvhOutput +} + +type GetServerSpecificationsNetworkBandwidthInternetToOvhArgs struct { + Unit pulumi.StringInput `pulumi:"unit"` + Value pulumi.Float64Input `pulumi:"value"` +} + +func (GetServerSpecificationsNetworkBandwidthInternetToOvhArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkBandwidthInternetToOvh)(nil)).Elem() +} + +func (i GetServerSpecificationsNetworkBandwidthInternetToOvhArgs) ToGetServerSpecificationsNetworkBandwidthInternetToOvhOutput() GetServerSpecificationsNetworkBandwidthInternetToOvhOutput { + return i.ToGetServerSpecificationsNetworkBandwidthInternetToOvhOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsNetworkBandwidthInternetToOvhArgs) ToGetServerSpecificationsNetworkBandwidthInternetToOvhOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkBandwidthInternetToOvhOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsNetworkBandwidthInternetToOvhOutput) +} + +type GetServerSpecificationsNetworkBandwidthInternetToOvhOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsNetworkBandwidthInternetToOvhOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkBandwidthInternetToOvh)(nil)).Elem() +} + +func (o GetServerSpecificationsNetworkBandwidthInternetToOvhOutput) ToGetServerSpecificationsNetworkBandwidthInternetToOvhOutput() GetServerSpecificationsNetworkBandwidthInternetToOvhOutput { + return o +} + +func (o GetServerSpecificationsNetworkBandwidthInternetToOvhOutput) ToGetServerSpecificationsNetworkBandwidthInternetToOvhOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkBandwidthInternetToOvhOutput { + return o +} + +func (o GetServerSpecificationsNetworkBandwidthInternetToOvhOutput) Unit() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkBandwidthInternetToOvh) string { return v.Unit }).(pulumi.StringOutput) +} + +func (o GetServerSpecificationsNetworkBandwidthInternetToOvhOutput) Value() pulumi.Float64Output { + return o.ApplyT(func(v GetServerSpecificationsNetworkBandwidthInternetToOvh) float64 { return v.Value }).(pulumi.Float64Output) +} + +type GetServerSpecificationsNetworkBandwidthOvhToInternet struct { + Unit string `pulumi:"unit"` + Value float64 `pulumi:"value"` +} + +// GetServerSpecificationsNetworkBandwidthOvhToInternetInput is an input type that accepts GetServerSpecificationsNetworkBandwidthOvhToInternetArgs and GetServerSpecificationsNetworkBandwidthOvhToInternetOutput values. +// You can construct a concrete instance of `GetServerSpecificationsNetworkBandwidthOvhToInternetInput` via: +// +// GetServerSpecificationsNetworkBandwidthOvhToInternetArgs{...} +type GetServerSpecificationsNetworkBandwidthOvhToInternetInput interface { + pulumi.Input + + ToGetServerSpecificationsNetworkBandwidthOvhToInternetOutput() GetServerSpecificationsNetworkBandwidthOvhToInternetOutput + ToGetServerSpecificationsNetworkBandwidthOvhToInternetOutputWithContext(context.Context) GetServerSpecificationsNetworkBandwidthOvhToInternetOutput +} + +type GetServerSpecificationsNetworkBandwidthOvhToInternetArgs struct { + Unit pulumi.StringInput `pulumi:"unit"` + Value pulumi.Float64Input `pulumi:"value"` +} + +func (GetServerSpecificationsNetworkBandwidthOvhToInternetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkBandwidthOvhToInternet)(nil)).Elem() +} + +func (i GetServerSpecificationsNetworkBandwidthOvhToInternetArgs) ToGetServerSpecificationsNetworkBandwidthOvhToInternetOutput() GetServerSpecificationsNetworkBandwidthOvhToInternetOutput { + return i.ToGetServerSpecificationsNetworkBandwidthOvhToInternetOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsNetworkBandwidthOvhToInternetArgs) ToGetServerSpecificationsNetworkBandwidthOvhToInternetOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkBandwidthOvhToInternetOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsNetworkBandwidthOvhToInternetOutput) +} + +type GetServerSpecificationsNetworkBandwidthOvhToInternetOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsNetworkBandwidthOvhToInternetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkBandwidthOvhToInternet)(nil)).Elem() +} + +func (o GetServerSpecificationsNetworkBandwidthOvhToInternetOutput) ToGetServerSpecificationsNetworkBandwidthOvhToInternetOutput() GetServerSpecificationsNetworkBandwidthOvhToInternetOutput { + return o +} + +func (o GetServerSpecificationsNetworkBandwidthOvhToInternetOutput) ToGetServerSpecificationsNetworkBandwidthOvhToInternetOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkBandwidthOvhToInternetOutput { + return o +} + +func (o GetServerSpecificationsNetworkBandwidthOvhToInternetOutput) Unit() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkBandwidthOvhToInternet) string { return v.Unit }).(pulumi.StringOutput) +} + +func (o GetServerSpecificationsNetworkBandwidthOvhToInternetOutput) Value() pulumi.Float64Output { + return o.ApplyT(func(v GetServerSpecificationsNetworkBandwidthOvhToInternet) float64 { return v.Value }).(pulumi.Float64Output) +} + +type GetServerSpecificationsNetworkBandwidthOvhToOvh struct { + Unit string `pulumi:"unit"` + Value float64 `pulumi:"value"` +} + +// GetServerSpecificationsNetworkBandwidthOvhToOvhInput is an input type that accepts GetServerSpecificationsNetworkBandwidthOvhToOvhArgs and GetServerSpecificationsNetworkBandwidthOvhToOvhOutput values. +// You can construct a concrete instance of `GetServerSpecificationsNetworkBandwidthOvhToOvhInput` via: +// +// GetServerSpecificationsNetworkBandwidthOvhToOvhArgs{...} +type GetServerSpecificationsNetworkBandwidthOvhToOvhInput interface { + pulumi.Input + + ToGetServerSpecificationsNetworkBandwidthOvhToOvhOutput() GetServerSpecificationsNetworkBandwidthOvhToOvhOutput + ToGetServerSpecificationsNetworkBandwidthOvhToOvhOutputWithContext(context.Context) GetServerSpecificationsNetworkBandwidthOvhToOvhOutput +} + +type GetServerSpecificationsNetworkBandwidthOvhToOvhArgs struct { + Unit pulumi.StringInput `pulumi:"unit"` + Value pulumi.Float64Input `pulumi:"value"` +} + +func (GetServerSpecificationsNetworkBandwidthOvhToOvhArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkBandwidthOvhToOvh)(nil)).Elem() +} + +func (i GetServerSpecificationsNetworkBandwidthOvhToOvhArgs) ToGetServerSpecificationsNetworkBandwidthOvhToOvhOutput() GetServerSpecificationsNetworkBandwidthOvhToOvhOutput { + return i.ToGetServerSpecificationsNetworkBandwidthOvhToOvhOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsNetworkBandwidthOvhToOvhArgs) ToGetServerSpecificationsNetworkBandwidthOvhToOvhOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkBandwidthOvhToOvhOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsNetworkBandwidthOvhToOvhOutput) +} + +type GetServerSpecificationsNetworkBandwidthOvhToOvhOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsNetworkBandwidthOvhToOvhOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkBandwidthOvhToOvh)(nil)).Elem() +} + +func (o GetServerSpecificationsNetworkBandwidthOvhToOvhOutput) ToGetServerSpecificationsNetworkBandwidthOvhToOvhOutput() GetServerSpecificationsNetworkBandwidthOvhToOvhOutput { + return o +} + +func (o GetServerSpecificationsNetworkBandwidthOvhToOvhOutput) ToGetServerSpecificationsNetworkBandwidthOvhToOvhOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkBandwidthOvhToOvhOutput { + return o +} + +func (o GetServerSpecificationsNetworkBandwidthOvhToOvhOutput) Unit() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkBandwidthOvhToOvh) string { return v.Unit }).(pulumi.StringOutput) +} + +func (o GetServerSpecificationsNetworkBandwidthOvhToOvhOutput) Value() pulumi.Float64Output { + return o.ApplyT(func(v GetServerSpecificationsNetworkBandwidthOvhToOvh) float64 { return v.Value }).(pulumi.Float64Output) +} + +type GetServerSpecificationsNetworkConnectionVal struct { + Unit string `pulumi:"unit"` + Value float64 `pulumi:"value"` +} + +// GetServerSpecificationsNetworkConnectionValInput is an input type that accepts GetServerSpecificationsNetworkConnectionValArgs and GetServerSpecificationsNetworkConnectionValOutput values. +// You can construct a concrete instance of `GetServerSpecificationsNetworkConnectionValInput` via: +// +// GetServerSpecificationsNetworkConnectionValArgs{...} +type GetServerSpecificationsNetworkConnectionValInput interface { + pulumi.Input + + ToGetServerSpecificationsNetworkConnectionValOutput() GetServerSpecificationsNetworkConnectionValOutput + ToGetServerSpecificationsNetworkConnectionValOutputWithContext(context.Context) GetServerSpecificationsNetworkConnectionValOutput +} + +type GetServerSpecificationsNetworkConnectionValArgs struct { + Unit pulumi.StringInput `pulumi:"unit"` + Value pulumi.Float64Input `pulumi:"value"` +} + +func (GetServerSpecificationsNetworkConnectionValArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkConnectionVal)(nil)).Elem() +} + +func (i GetServerSpecificationsNetworkConnectionValArgs) ToGetServerSpecificationsNetworkConnectionValOutput() GetServerSpecificationsNetworkConnectionValOutput { + return i.ToGetServerSpecificationsNetworkConnectionValOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsNetworkConnectionValArgs) ToGetServerSpecificationsNetworkConnectionValOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkConnectionValOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsNetworkConnectionValOutput) +} + +type GetServerSpecificationsNetworkConnectionValOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsNetworkConnectionValOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkConnectionVal)(nil)).Elem() +} + +func (o GetServerSpecificationsNetworkConnectionValOutput) ToGetServerSpecificationsNetworkConnectionValOutput() GetServerSpecificationsNetworkConnectionValOutput { + return o +} + +func (o GetServerSpecificationsNetworkConnectionValOutput) ToGetServerSpecificationsNetworkConnectionValOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkConnectionValOutput { + return o +} + +func (o GetServerSpecificationsNetworkConnectionValOutput) Unit() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkConnectionVal) string { return v.Unit }).(pulumi.StringOutput) +} + +func (o GetServerSpecificationsNetworkConnectionValOutput) Value() pulumi.Float64Output { + return o.ApplyT(func(v GetServerSpecificationsNetworkConnectionVal) float64 { return v.Value }).(pulumi.Float64Output) +} + +type GetServerSpecificationsNetworkOla struct { + // Is the OLA feature available + Available bool `pulumi:"available"` + // Supported modes + AvailableModes []GetServerSpecificationsNetworkOlaAvailableMode `pulumi:"availableModes"` + // Supported modes (DEPRECATED) + SupportedModes []string `pulumi:"supportedModes"` +} + +// GetServerSpecificationsNetworkOlaInput is an input type that accepts GetServerSpecificationsNetworkOlaArgs and GetServerSpecificationsNetworkOlaOutput values. +// You can construct a concrete instance of `GetServerSpecificationsNetworkOlaInput` via: +// +// GetServerSpecificationsNetworkOlaArgs{...} +type GetServerSpecificationsNetworkOlaInput interface { + pulumi.Input + + ToGetServerSpecificationsNetworkOlaOutput() GetServerSpecificationsNetworkOlaOutput + ToGetServerSpecificationsNetworkOlaOutputWithContext(context.Context) GetServerSpecificationsNetworkOlaOutput +} + +type GetServerSpecificationsNetworkOlaArgs struct { + // Is the OLA feature available + Available pulumi.BoolInput `pulumi:"available"` + // Supported modes + AvailableModes GetServerSpecificationsNetworkOlaAvailableModeArrayInput `pulumi:"availableModes"` + // Supported modes (DEPRECATED) + SupportedModes pulumi.StringArrayInput `pulumi:"supportedModes"` +} + +func (GetServerSpecificationsNetworkOlaArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkOla)(nil)).Elem() +} + +func (i GetServerSpecificationsNetworkOlaArgs) ToGetServerSpecificationsNetworkOlaOutput() GetServerSpecificationsNetworkOlaOutput { + return i.ToGetServerSpecificationsNetworkOlaOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsNetworkOlaArgs) ToGetServerSpecificationsNetworkOlaOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkOlaOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsNetworkOlaOutput) +} + +type GetServerSpecificationsNetworkOlaOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsNetworkOlaOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkOla)(nil)).Elem() +} + +func (o GetServerSpecificationsNetworkOlaOutput) ToGetServerSpecificationsNetworkOlaOutput() GetServerSpecificationsNetworkOlaOutput { + return o +} + +func (o GetServerSpecificationsNetworkOlaOutput) ToGetServerSpecificationsNetworkOlaOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkOlaOutput { + return o +} + +// Is the OLA feature available +func (o GetServerSpecificationsNetworkOlaOutput) Available() pulumi.BoolOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkOla) bool { return v.Available }).(pulumi.BoolOutput) +} + +// Supported modes +func (o GetServerSpecificationsNetworkOlaOutput) AvailableModes() GetServerSpecificationsNetworkOlaAvailableModeArrayOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkOla) []GetServerSpecificationsNetworkOlaAvailableMode { + return v.AvailableModes + }).(GetServerSpecificationsNetworkOlaAvailableModeArrayOutput) +} + +// Supported modes (DEPRECATED) +func (o GetServerSpecificationsNetworkOlaOutput) SupportedModes() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkOla) []string { return v.SupportedModes }).(pulumi.StringArrayOutput) +} + +type GetServerSpecificationsNetworkOlaAvailableMode struct { + // Whether it is the default configuration of the server + Default bool `pulumi:"default"` + // Interface layout + Interfaces []GetServerSpecificationsNetworkOlaAvailableModeInterface `pulumi:"interfaces"` + // Switch name + Name string `pulumi:"name"` +} + +// GetServerSpecificationsNetworkOlaAvailableModeInput is an input type that accepts GetServerSpecificationsNetworkOlaAvailableModeArgs and GetServerSpecificationsNetworkOlaAvailableModeOutput values. +// You can construct a concrete instance of `GetServerSpecificationsNetworkOlaAvailableModeInput` via: +// +// GetServerSpecificationsNetworkOlaAvailableModeArgs{...} +type GetServerSpecificationsNetworkOlaAvailableModeInput interface { + pulumi.Input + + ToGetServerSpecificationsNetworkOlaAvailableModeOutput() GetServerSpecificationsNetworkOlaAvailableModeOutput + ToGetServerSpecificationsNetworkOlaAvailableModeOutputWithContext(context.Context) GetServerSpecificationsNetworkOlaAvailableModeOutput +} + +type GetServerSpecificationsNetworkOlaAvailableModeArgs struct { + // Whether it is the default configuration of the server + Default pulumi.BoolInput `pulumi:"default"` + // Interface layout + Interfaces GetServerSpecificationsNetworkOlaAvailableModeInterfaceArrayInput `pulumi:"interfaces"` + // Switch name + Name pulumi.StringInput `pulumi:"name"` +} + +func (GetServerSpecificationsNetworkOlaAvailableModeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkOlaAvailableMode)(nil)).Elem() +} + +func (i GetServerSpecificationsNetworkOlaAvailableModeArgs) ToGetServerSpecificationsNetworkOlaAvailableModeOutput() GetServerSpecificationsNetworkOlaAvailableModeOutput { + return i.ToGetServerSpecificationsNetworkOlaAvailableModeOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsNetworkOlaAvailableModeArgs) ToGetServerSpecificationsNetworkOlaAvailableModeOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkOlaAvailableModeOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsNetworkOlaAvailableModeOutput) +} + +// GetServerSpecificationsNetworkOlaAvailableModeArrayInput is an input type that accepts GetServerSpecificationsNetworkOlaAvailableModeArray and GetServerSpecificationsNetworkOlaAvailableModeArrayOutput values. +// You can construct a concrete instance of `GetServerSpecificationsNetworkOlaAvailableModeArrayInput` via: +// +// GetServerSpecificationsNetworkOlaAvailableModeArray{ GetServerSpecificationsNetworkOlaAvailableModeArgs{...} } +type GetServerSpecificationsNetworkOlaAvailableModeArrayInput interface { + pulumi.Input + + ToGetServerSpecificationsNetworkOlaAvailableModeArrayOutput() GetServerSpecificationsNetworkOlaAvailableModeArrayOutput + ToGetServerSpecificationsNetworkOlaAvailableModeArrayOutputWithContext(context.Context) GetServerSpecificationsNetworkOlaAvailableModeArrayOutput +} + +type GetServerSpecificationsNetworkOlaAvailableModeArray []GetServerSpecificationsNetworkOlaAvailableModeInput + +func (GetServerSpecificationsNetworkOlaAvailableModeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetServerSpecificationsNetworkOlaAvailableMode)(nil)).Elem() +} + +func (i GetServerSpecificationsNetworkOlaAvailableModeArray) ToGetServerSpecificationsNetworkOlaAvailableModeArrayOutput() GetServerSpecificationsNetworkOlaAvailableModeArrayOutput { + return i.ToGetServerSpecificationsNetworkOlaAvailableModeArrayOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsNetworkOlaAvailableModeArray) ToGetServerSpecificationsNetworkOlaAvailableModeArrayOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkOlaAvailableModeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsNetworkOlaAvailableModeArrayOutput) +} + +type GetServerSpecificationsNetworkOlaAvailableModeOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsNetworkOlaAvailableModeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkOlaAvailableMode)(nil)).Elem() +} + +func (o GetServerSpecificationsNetworkOlaAvailableModeOutput) ToGetServerSpecificationsNetworkOlaAvailableModeOutput() GetServerSpecificationsNetworkOlaAvailableModeOutput { + return o +} + +func (o GetServerSpecificationsNetworkOlaAvailableModeOutput) ToGetServerSpecificationsNetworkOlaAvailableModeOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkOlaAvailableModeOutput { + return o +} + +// Whether it is the default configuration of the server +func (o GetServerSpecificationsNetworkOlaAvailableModeOutput) Default() pulumi.BoolOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkOlaAvailableMode) bool { return v.Default }).(pulumi.BoolOutput) +} + +// Interface layout +func (o GetServerSpecificationsNetworkOlaAvailableModeOutput) Interfaces() GetServerSpecificationsNetworkOlaAvailableModeInterfaceArrayOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkOlaAvailableMode) []GetServerSpecificationsNetworkOlaAvailableModeInterface { + return v.Interfaces + }).(GetServerSpecificationsNetworkOlaAvailableModeInterfaceArrayOutput) +} + +// Switch name +func (o GetServerSpecificationsNetworkOlaAvailableModeOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkOlaAvailableMode) string { return v.Name }).(pulumi.StringOutput) +} + +type GetServerSpecificationsNetworkOlaAvailableModeArrayOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsNetworkOlaAvailableModeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetServerSpecificationsNetworkOlaAvailableMode)(nil)).Elem() +} + +func (o GetServerSpecificationsNetworkOlaAvailableModeArrayOutput) ToGetServerSpecificationsNetworkOlaAvailableModeArrayOutput() GetServerSpecificationsNetworkOlaAvailableModeArrayOutput { + return o +} + +func (o GetServerSpecificationsNetworkOlaAvailableModeArrayOutput) ToGetServerSpecificationsNetworkOlaAvailableModeArrayOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkOlaAvailableModeArrayOutput { + return o +} + +func (o GetServerSpecificationsNetworkOlaAvailableModeArrayOutput) Index(i pulumi.IntInput) GetServerSpecificationsNetworkOlaAvailableModeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetServerSpecificationsNetworkOlaAvailableMode { + return vs[0].([]GetServerSpecificationsNetworkOlaAvailableMode)[vs[1].(int)] + }).(GetServerSpecificationsNetworkOlaAvailableModeOutput) +} + +type GetServerSpecificationsNetworkOlaAvailableModeInterface struct { + // Interface aggregation status + Aggregation bool `pulumi:"aggregation"` + // Interface count + Count float64 `pulumi:"count"` + // Bandwidth offer type (included┃standard) + Type string `pulumi:"type"` +} + +// GetServerSpecificationsNetworkOlaAvailableModeInterfaceInput is an input type that accepts GetServerSpecificationsNetworkOlaAvailableModeInterfaceArgs and GetServerSpecificationsNetworkOlaAvailableModeInterfaceOutput values. +// You can construct a concrete instance of `GetServerSpecificationsNetworkOlaAvailableModeInterfaceInput` via: +// +// GetServerSpecificationsNetworkOlaAvailableModeInterfaceArgs{...} +type GetServerSpecificationsNetworkOlaAvailableModeInterfaceInput interface { + pulumi.Input + + ToGetServerSpecificationsNetworkOlaAvailableModeInterfaceOutput() GetServerSpecificationsNetworkOlaAvailableModeInterfaceOutput + ToGetServerSpecificationsNetworkOlaAvailableModeInterfaceOutputWithContext(context.Context) GetServerSpecificationsNetworkOlaAvailableModeInterfaceOutput +} + +type GetServerSpecificationsNetworkOlaAvailableModeInterfaceArgs struct { + // Interface aggregation status + Aggregation pulumi.BoolInput `pulumi:"aggregation"` + // Interface count + Count pulumi.Float64Input `pulumi:"count"` + // Bandwidth offer type (included┃standard) + Type pulumi.StringInput `pulumi:"type"` +} + +func (GetServerSpecificationsNetworkOlaAvailableModeInterfaceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkOlaAvailableModeInterface)(nil)).Elem() +} + +func (i GetServerSpecificationsNetworkOlaAvailableModeInterfaceArgs) ToGetServerSpecificationsNetworkOlaAvailableModeInterfaceOutput() GetServerSpecificationsNetworkOlaAvailableModeInterfaceOutput { + return i.ToGetServerSpecificationsNetworkOlaAvailableModeInterfaceOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsNetworkOlaAvailableModeInterfaceArgs) ToGetServerSpecificationsNetworkOlaAvailableModeInterfaceOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkOlaAvailableModeInterfaceOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsNetworkOlaAvailableModeInterfaceOutput) +} + +// GetServerSpecificationsNetworkOlaAvailableModeInterfaceArrayInput is an input type that accepts GetServerSpecificationsNetworkOlaAvailableModeInterfaceArray and GetServerSpecificationsNetworkOlaAvailableModeInterfaceArrayOutput values. +// You can construct a concrete instance of `GetServerSpecificationsNetworkOlaAvailableModeInterfaceArrayInput` via: +// +// GetServerSpecificationsNetworkOlaAvailableModeInterfaceArray{ GetServerSpecificationsNetworkOlaAvailableModeInterfaceArgs{...} } +type GetServerSpecificationsNetworkOlaAvailableModeInterfaceArrayInput interface { + pulumi.Input + + ToGetServerSpecificationsNetworkOlaAvailableModeInterfaceArrayOutput() GetServerSpecificationsNetworkOlaAvailableModeInterfaceArrayOutput + ToGetServerSpecificationsNetworkOlaAvailableModeInterfaceArrayOutputWithContext(context.Context) GetServerSpecificationsNetworkOlaAvailableModeInterfaceArrayOutput +} + +type GetServerSpecificationsNetworkOlaAvailableModeInterfaceArray []GetServerSpecificationsNetworkOlaAvailableModeInterfaceInput + +func (GetServerSpecificationsNetworkOlaAvailableModeInterfaceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetServerSpecificationsNetworkOlaAvailableModeInterface)(nil)).Elem() +} + +func (i GetServerSpecificationsNetworkOlaAvailableModeInterfaceArray) ToGetServerSpecificationsNetworkOlaAvailableModeInterfaceArrayOutput() GetServerSpecificationsNetworkOlaAvailableModeInterfaceArrayOutput { + return i.ToGetServerSpecificationsNetworkOlaAvailableModeInterfaceArrayOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsNetworkOlaAvailableModeInterfaceArray) ToGetServerSpecificationsNetworkOlaAvailableModeInterfaceArrayOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkOlaAvailableModeInterfaceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsNetworkOlaAvailableModeInterfaceArrayOutput) +} + +type GetServerSpecificationsNetworkOlaAvailableModeInterfaceOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsNetworkOlaAvailableModeInterfaceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkOlaAvailableModeInterface)(nil)).Elem() +} + +func (o GetServerSpecificationsNetworkOlaAvailableModeInterfaceOutput) ToGetServerSpecificationsNetworkOlaAvailableModeInterfaceOutput() GetServerSpecificationsNetworkOlaAvailableModeInterfaceOutput { + return o +} + +func (o GetServerSpecificationsNetworkOlaAvailableModeInterfaceOutput) ToGetServerSpecificationsNetworkOlaAvailableModeInterfaceOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkOlaAvailableModeInterfaceOutput { + return o +} + +// Interface aggregation status +func (o GetServerSpecificationsNetworkOlaAvailableModeInterfaceOutput) Aggregation() pulumi.BoolOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkOlaAvailableModeInterface) bool { return v.Aggregation }).(pulumi.BoolOutput) +} + +// Interface count +func (o GetServerSpecificationsNetworkOlaAvailableModeInterfaceOutput) Count() pulumi.Float64Output { + return o.ApplyT(func(v GetServerSpecificationsNetworkOlaAvailableModeInterface) float64 { return v.Count }).(pulumi.Float64Output) +} + +// Bandwidth offer type (included┃standard) +func (o GetServerSpecificationsNetworkOlaAvailableModeInterfaceOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkOlaAvailableModeInterface) string { return v.Type }).(pulumi.StringOutput) +} + +type GetServerSpecificationsNetworkOlaAvailableModeInterfaceArrayOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsNetworkOlaAvailableModeInterfaceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetServerSpecificationsNetworkOlaAvailableModeInterface)(nil)).Elem() +} + +func (o GetServerSpecificationsNetworkOlaAvailableModeInterfaceArrayOutput) ToGetServerSpecificationsNetworkOlaAvailableModeInterfaceArrayOutput() GetServerSpecificationsNetworkOlaAvailableModeInterfaceArrayOutput { + return o +} + +func (o GetServerSpecificationsNetworkOlaAvailableModeInterfaceArrayOutput) ToGetServerSpecificationsNetworkOlaAvailableModeInterfaceArrayOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkOlaAvailableModeInterfaceArrayOutput { + return o +} + +func (o GetServerSpecificationsNetworkOlaAvailableModeInterfaceArrayOutput) Index(i pulumi.IntInput) GetServerSpecificationsNetworkOlaAvailableModeInterfaceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetServerSpecificationsNetworkOlaAvailableModeInterface { + return vs[0].([]GetServerSpecificationsNetworkOlaAvailableModeInterface)[vs[1].(int)] + }).(GetServerSpecificationsNetworkOlaAvailableModeInterfaceOutput) +} + +type GetServerSpecificationsNetworkRouting struct { + // Ipv4 routing details + Ipv4 GetServerSpecificationsNetworkRoutingIpv4 `pulumi:"ipv4"` + // Ipv6 routing details + Ipv6 GetServerSpecificationsNetworkRoutingIpv6 `pulumi:"ipv6"` +} + +// GetServerSpecificationsNetworkRoutingInput is an input type that accepts GetServerSpecificationsNetworkRoutingArgs and GetServerSpecificationsNetworkRoutingOutput values. +// You can construct a concrete instance of `GetServerSpecificationsNetworkRoutingInput` via: +// +// GetServerSpecificationsNetworkRoutingArgs{...} +type GetServerSpecificationsNetworkRoutingInput interface { + pulumi.Input + + ToGetServerSpecificationsNetworkRoutingOutput() GetServerSpecificationsNetworkRoutingOutput + ToGetServerSpecificationsNetworkRoutingOutputWithContext(context.Context) GetServerSpecificationsNetworkRoutingOutput +} + +type GetServerSpecificationsNetworkRoutingArgs struct { + // Ipv4 routing details + Ipv4 GetServerSpecificationsNetworkRoutingIpv4Input `pulumi:"ipv4"` + // Ipv6 routing details + Ipv6 GetServerSpecificationsNetworkRoutingIpv6Input `pulumi:"ipv6"` +} + +func (GetServerSpecificationsNetworkRoutingArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkRouting)(nil)).Elem() +} + +func (i GetServerSpecificationsNetworkRoutingArgs) ToGetServerSpecificationsNetworkRoutingOutput() GetServerSpecificationsNetworkRoutingOutput { + return i.ToGetServerSpecificationsNetworkRoutingOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsNetworkRoutingArgs) ToGetServerSpecificationsNetworkRoutingOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkRoutingOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsNetworkRoutingOutput) +} + +type GetServerSpecificationsNetworkRoutingOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsNetworkRoutingOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkRouting)(nil)).Elem() +} + +func (o GetServerSpecificationsNetworkRoutingOutput) ToGetServerSpecificationsNetworkRoutingOutput() GetServerSpecificationsNetworkRoutingOutput { + return o +} + +func (o GetServerSpecificationsNetworkRoutingOutput) ToGetServerSpecificationsNetworkRoutingOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkRoutingOutput { + return o +} + +// Ipv4 routing details +func (o GetServerSpecificationsNetworkRoutingOutput) Ipv4() GetServerSpecificationsNetworkRoutingIpv4Output { + return o.ApplyT(func(v GetServerSpecificationsNetworkRouting) GetServerSpecificationsNetworkRoutingIpv4 { return v.Ipv4 }).(GetServerSpecificationsNetworkRoutingIpv4Output) +} + +// Ipv6 routing details +func (o GetServerSpecificationsNetworkRoutingOutput) Ipv6() GetServerSpecificationsNetworkRoutingIpv6Output { + return o.ApplyT(func(v GetServerSpecificationsNetworkRouting) GetServerSpecificationsNetworkRoutingIpv6 { return v.Ipv6 }).(GetServerSpecificationsNetworkRoutingIpv6Output) +} + +type GetServerSpecificationsNetworkRoutingIpv4 struct { + // Server gateway + Gateway string `pulumi:"gateway"` + // Server main IP + Ip string `pulumi:"ip"` + // Server network + Network string `pulumi:"network"` +} + +// GetServerSpecificationsNetworkRoutingIpv4Input is an input type that accepts GetServerSpecificationsNetworkRoutingIpv4Args and GetServerSpecificationsNetworkRoutingIpv4Output values. +// You can construct a concrete instance of `GetServerSpecificationsNetworkRoutingIpv4Input` via: +// +// GetServerSpecificationsNetworkRoutingIpv4Args{...} +type GetServerSpecificationsNetworkRoutingIpv4Input interface { + pulumi.Input + + ToGetServerSpecificationsNetworkRoutingIpv4Output() GetServerSpecificationsNetworkRoutingIpv4Output + ToGetServerSpecificationsNetworkRoutingIpv4OutputWithContext(context.Context) GetServerSpecificationsNetworkRoutingIpv4Output +} + +type GetServerSpecificationsNetworkRoutingIpv4Args struct { + // Server gateway + Gateway pulumi.StringInput `pulumi:"gateway"` + // Server main IP + Ip pulumi.StringInput `pulumi:"ip"` + // Server network + Network pulumi.StringInput `pulumi:"network"` +} + +func (GetServerSpecificationsNetworkRoutingIpv4Args) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkRoutingIpv4)(nil)).Elem() +} + +func (i GetServerSpecificationsNetworkRoutingIpv4Args) ToGetServerSpecificationsNetworkRoutingIpv4Output() GetServerSpecificationsNetworkRoutingIpv4Output { + return i.ToGetServerSpecificationsNetworkRoutingIpv4OutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsNetworkRoutingIpv4Args) ToGetServerSpecificationsNetworkRoutingIpv4OutputWithContext(ctx context.Context) GetServerSpecificationsNetworkRoutingIpv4Output { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsNetworkRoutingIpv4Output) +} + +type GetServerSpecificationsNetworkRoutingIpv4Output struct{ *pulumi.OutputState } + +func (GetServerSpecificationsNetworkRoutingIpv4Output) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkRoutingIpv4)(nil)).Elem() +} + +func (o GetServerSpecificationsNetworkRoutingIpv4Output) ToGetServerSpecificationsNetworkRoutingIpv4Output() GetServerSpecificationsNetworkRoutingIpv4Output { + return o +} + +func (o GetServerSpecificationsNetworkRoutingIpv4Output) ToGetServerSpecificationsNetworkRoutingIpv4OutputWithContext(ctx context.Context) GetServerSpecificationsNetworkRoutingIpv4Output { + return o +} + +// Server gateway +func (o GetServerSpecificationsNetworkRoutingIpv4Output) Gateway() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkRoutingIpv4) string { return v.Gateway }).(pulumi.StringOutput) +} + +// Server main IP +func (o GetServerSpecificationsNetworkRoutingIpv4Output) Ip() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkRoutingIpv4) string { return v.Ip }).(pulumi.StringOutput) +} + +// Server network +func (o GetServerSpecificationsNetworkRoutingIpv4Output) Network() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkRoutingIpv4) string { return v.Network }).(pulumi.StringOutput) +} + +type GetServerSpecificationsNetworkRoutingIpv6 struct { + // Server gateway + Gateway string `pulumi:"gateway"` + // Server main IP + Ip string `pulumi:"ip"` + // Server network + Network string `pulumi:"network"` +} + +// GetServerSpecificationsNetworkRoutingIpv6Input is an input type that accepts GetServerSpecificationsNetworkRoutingIpv6Args and GetServerSpecificationsNetworkRoutingIpv6Output values. +// You can construct a concrete instance of `GetServerSpecificationsNetworkRoutingIpv6Input` via: +// +// GetServerSpecificationsNetworkRoutingIpv6Args{...} +type GetServerSpecificationsNetworkRoutingIpv6Input interface { + pulumi.Input + + ToGetServerSpecificationsNetworkRoutingIpv6Output() GetServerSpecificationsNetworkRoutingIpv6Output + ToGetServerSpecificationsNetworkRoutingIpv6OutputWithContext(context.Context) GetServerSpecificationsNetworkRoutingIpv6Output +} + +type GetServerSpecificationsNetworkRoutingIpv6Args struct { + // Server gateway + Gateway pulumi.StringInput `pulumi:"gateway"` + // Server main IP + Ip pulumi.StringInput `pulumi:"ip"` + // Server network + Network pulumi.StringInput `pulumi:"network"` +} + +func (GetServerSpecificationsNetworkRoutingIpv6Args) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkRoutingIpv6)(nil)).Elem() +} + +func (i GetServerSpecificationsNetworkRoutingIpv6Args) ToGetServerSpecificationsNetworkRoutingIpv6Output() GetServerSpecificationsNetworkRoutingIpv6Output { + return i.ToGetServerSpecificationsNetworkRoutingIpv6OutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsNetworkRoutingIpv6Args) ToGetServerSpecificationsNetworkRoutingIpv6OutputWithContext(ctx context.Context) GetServerSpecificationsNetworkRoutingIpv6Output { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsNetworkRoutingIpv6Output) +} + +type GetServerSpecificationsNetworkRoutingIpv6Output struct{ *pulumi.OutputState } + +func (GetServerSpecificationsNetworkRoutingIpv6Output) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkRoutingIpv6)(nil)).Elem() +} + +func (o GetServerSpecificationsNetworkRoutingIpv6Output) ToGetServerSpecificationsNetworkRoutingIpv6Output() GetServerSpecificationsNetworkRoutingIpv6Output { + return o +} + +func (o GetServerSpecificationsNetworkRoutingIpv6Output) ToGetServerSpecificationsNetworkRoutingIpv6OutputWithContext(ctx context.Context) GetServerSpecificationsNetworkRoutingIpv6Output { + return o +} + +// Server gateway +func (o GetServerSpecificationsNetworkRoutingIpv6Output) Gateway() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkRoutingIpv6) string { return v.Gateway }).(pulumi.StringOutput) +} + +// Server main IP +func (o GetServerSpecificationsNetworkRoutingIpv6Output) Ip() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkRoutingIpv6) string { return v.Ip }).(pulumi.StringOutput) +} + +// Server network +func (o GetServerSpecificationsNetworkRoutingIpv6Output) Network() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkRoutingIpv6) string { return v.Network }).(pulumi.StringOutput) +} + +type GetServerSpecificationsNetworkSwitching struct { + // Switch name + Name string `pulumi:"name"` +} + +// GetServerSpecificationsNetworkSwitchingInput is an input type that accepts GetServerSpecificationsNetworkSwitchingArgs and GetServerSpecificationsNetworkSwitchingOutput values. +// You can construct a concrete instance of `GetServerSpecificationsNetworkSwitchingInput` via: +// +// GetServerSpecificationsNetworkSwitchingArgs{...} +type GetServerSpecificationsNetworkSwitchingInput interface { + pulumi.Input + + ToGetServerSpecificationsNetworkSwitchingOutput() GetServerSpecificationsNetworkSwitchingOutput + ToGetServerSpecificationsNetworkSwitchingOutputWithContext(context.Context) GetServerSpecificationsNetworkSwitchingOutput +} + +type GetServerSpecificationsNetworkSwitchingArgs struct { + // Switch name + Name pulumi.StringInput `pulumi:"name"` +} + +func (GetServerSpecificationsNetworkSwitchingArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkSwitching)(nil)).Elem() +} + +func (i GetServerSpecificationsNetworkSwitchingArgs) ToGetServerSpecificationsNetworkSwitchingOutput() GetServerSpecificationsNetworkSwitchingOutput { + return i.ToGetServerSpecificationsNetworkSwitchingOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsNetworkSwitchingArgs) ToGetServerSpecificationsNetworkSwitchingOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkSwitchingOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsNetworkSwitchingOutput) +} + +type GetServerSpecificationsNetworkSwitchingOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsNetworkSwitchingOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkSwitching)(nil)).Elem() +} + +func (o GetServerSpecificationsNetworkSwitchingOutput) ToGetServerSpecificationsNetworkSwitchingOutput() GetServerSpecificationsNetworkSwitchingOutput { + return o +} + +func (o GetServerSpecificationsNetworkSwitchingOutput) ToGetServerSpecificationsNetworkSwitchingOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkSwitchingOutput { + return o +} + +// Switch name +func (o GetServerSpecificationsNetworkSwitchingOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkSwitching) string { return v.Name }).(pulumi.StringOutput) +} + +type GetServerSpecificationsNetworkTraffic struct { + // Monthly input traffic quota allowed + InputQuotaSize GetServerSpecificationsNetworkTrafficInputQuotaSize `pulumi:"inputQuotaSize"` + // Monthly input traffic consumed this month + InputQuotaUsed GetServerSpecificationsNetworkTrafficInputQuotaUsed `pulumi:"inputQuotaUsed"` + // Whether bandwidth is throttleted for being over quota + IsThrottled bool `pulumi:"isThrottled"` + // Monthly output traffic quota allowed + OutputQuotaSize GetServerSpecificationsNetworkTrafficOutputQuotaSize `pulumi:"outputQuotaSize"` + // Monthly output traffic consumed this month + OutputQuotaUsed GetServerSpecificationsNetworkTrafficOutputQuotaUsed `pulumi:"outputQuotaUsed"` + // Next reset quota date for traffic counter + ResetQuotaDate string `pulumi:"resetQuotaDate"` +} + +// GetServerSpecificationsNetworkTrafficInput is an input type that accepts GetServerSpecificationsNetworkTrafficArgs and GetServerSpecificationsNetworkTrafficOutput values. +// You can construct a concrete instance of `GetServerSpecificationsNetworkTrafficInput` via: +// +// GetServerSpecificationsNetworkTrafficArgs{...} +type GetServerSpecificationsNetworkTrafficInput interface { + pulumi.Input + + ToGetServerSpecificationsNetworkTrafficOutput() GetServerSpecificationsNetworkTrafficOutput + ToGetServerSpecificationsNetworkTrafficOutputWithContext(context.Context) GetServerSpecificationsNetworkTrafficOutput +} + +type GetServerSpecificationsNetworkTrafficArgs struct { + // Monthly input traffic quota allowed + InputQuotaSize GetServerSpecificationsNetworkTrafficInputQuotaSizeInput `pulumi:"inputQuotaSize"` + // Monthly input traffic consumed this month + InputQuotaUsed GetServerSpecificationsNetworkTrafficInputQuotaUsedInput `pulumi:"inputQuotaUsed"` + // Whether bandwidth is throttleted for being over quota + IsThrottled pulumi.BoolInput `pulumi:"isThrottled"` + // Monthly output traffic quota allowed + OutputQuotaSize GetServerSpecificationsNetworkTrafficOutputQuotaSizeInput `pulumi:"outputQuotaSize"` + // Monthly output traffic consumed this month + OutputQuotaUsed GetServerSpecificationsNetworkTrafficOutputQuotaUsedInput `pulumi:"outputQuotaUsed"` + // Next reset quota date for traffic counter + ResetQuotaDate pulumi.StringInput `pulumi:"resetQuotaDate"` +} + +func (GetServerSpecificationsNetworkTrafficArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkTraffic)(nil)).Elem() +} + +func (i GetServerSpecificationsNetworkTrafficArgs) ToGetServerSpecificationsNetworkTrafficOutput() GetServerSpecificationsNetworkTrafficOutput { + return i.ToGetServerSpecificationsNetworkTrafficOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsNetworkTrafficArgs) ToGetServerSpecificationsNetworkTrafficOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkTrafficOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsNetworkTrafficOutput) +} + +type GetServerSpecificationsNetworkTrafficOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsNetworkTrafficOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkTraffic)(nil)).Elem() +} + +func (o GetServerSpecificationsNetworkTrafficOutput) ToGetServerSpecificationsNetworkTrafficOutput() GetServerSpecificationsNetworkTrafficOutput { + return o +} + +func (o GetServerSpecificationsNetworkTrafficOutput) ToGetServerSpecificationsNetworkTrafficOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkTrafficOutput { + return o +} + +// Monthly input traffic quota allowed +func (o GetServerSpecificationsNetworkTrafficOutput) InputQuotaSize() GetServerSpecificationsNetworkTrafficInputQuotaSizeOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkTraffic) GetServerSpecificationsNetworkTrafficInputQuotaSize { + return v.InputQuotaSize + }).(GetServerSpecificationsNetworkTrafficInputQuotaSizeOutput) +} + +// Monthly input traffic consumed this month +func (o GetServerSpecificationsNetworkTrafficOutput) InputQuotaUsed() GetServerSpecificationsNetworkTrafficInputQuotaUsedOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkTraffic) GetServerSpecificationsNetworkTrafficInputQuotaUsed { + return v.InputQuotaUsed + }).(GetServerSpecificationsNetworkTrafficInputQuotaUsedOutput) +} + +// Whether bandwidth is throttleted for being over quota +func (o GetServerSpecificationsNetworkTrafficOutput) IsThrottled() pulumi.BoolOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkTraffic) bool { return v.IsThrottled }).(pulumi.BoolOutput) +} + +// Monthly output traffic quota allowed +func (o GetServerSpecificationsNetworkTrafficOutput) OutputQuotaSize() GetServerSpecificationsNetworkTrafficOutputQuotaSizeOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkTraffic) GetServerSpecificationsNetworkTrafficOutputQuotaSize { + return v.OutputQuotaSize + }).(GetServerSpecificationsNetworkTrafficOutputQuotaSizeOutput) +} + +// Monthly output traffic consumed this month +func (o GetServerSpecificationsNetworkTrafficOutput) OutputQuotaUsed() GetServerSpecificationsNetworkTrafficOutputQuotaUsedOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkTraffic) GetServerSpecificationsNetworkTrafficOutputQuotaUsed { + return v.OutputQuotaUsed + }).(GetServerSpecificationsNetworkTrafficOutputQuotaUsedOutput) +} + +// Next reset quota date for traffic counter +func (o GetServerSpecificationsNetworkTrafficOutput) ResetQuotaDate() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkTraffic) string { return v.ResetQuotaDate }).(pulumi.StringOutput) +} + +type GetServerSpecificationsNetworkTrafficInputQuotaSize struct { + Unit string `pulumi:"unit"` + Value float64 `pulumi:"value"` +} + +// GetServerSpecificationsNetworkTrafficInputQuotaSizeInput is an input type that accepts GetServerSpecificationsNetworkTrafficInputQuotaSizeArgs and GetServerSpecificationsNetworkTrafficInputQuotaSizeOutput values. +// You can construct a concrete instance of `GetServerSpecificationsNetworkTrafficInputQuotaSizeInput` via: +// +// GetServerSpecificationsNetworkTrafficInputQuotaSizeArgs{...} +type GetServerSpecificationsNetworkTrafficInputQuotaSizeInput interface { + pulumi.Input + + ToGetServerSpecificationsNetworkTrafficInputQuotaSizeOutput() GetServerSpecificationsNetworkTrafficInputQuotaSizeOutput + ToGetServerSpecificationsNetworkTrafficInputQuotaSizeOutputWithContext(context.Context) GetServerSpecificationsNetworkTrafficInputQuotaSizeOutput +} + +type GetServerSpecificationsNetworkTrafficInputQuotaSizeArgs struct { + Unit pulumi.StringInput `pulumi:"unit"` + Value pulumi.Float64Input `pulumi:"value"` +} + +func (GetServerSpecificationsNetworkTrafficInputQuotaSizeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkTrafficInputQuotaSize)(nil)).Elem() +} + +func (i GetServerSpecificationsNetworkTrafficInputQuotaSizeArgs) ToGetServerSpecificationsNetworkTrafficInputQuotaSizeOutput() GetServerSpecificationsNetworkTrafficInputQuotaSizeOutput { + return i.ToGetServerSpecificationsNetworkTrafficInputQuotaSizeOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsNetworkTrafficInputQuotaSizeArgs) ToGetServerSpecificationsNetworkTrafficInputQuotaSizeOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkTrafficInputQuotaSizeOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsNetworkTrafficInputQuotaSizeOutput) +} + +type GetServerSpecificationsNetworkTrafficInputQuotaSizeOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsNetworkTrafficInputQuotaSizeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkTrafficInputQuotaSize)(nil)).Elem() +} + +func (o GetServerSpecificationsNetworkTrafficInputQuotaSizeOutput) ToGetServerSpecificationsNetworkTrafficInputQuotaSizeOutput() GetServerSpecificationsNetworkTrafficInputQuotaSizeOutput { + return o +} + +func (o GetServerSpecificationsNetworkTrafficInputQuotaSizeOutput) ToGetServerSpecificationsNetworkTrafficInputQuotaSizeOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkTrafficInputQuotaSizeOutput { + return o +} + +func (o GetServerSpecificationsNetworkTrafficInputQuotaSizeOutput) Unit() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkTrafficInputQuotaSize) string { return v.Unit }).(pulumi.StringOutput) +} + +func (o GetServerSpecificationsNetworkTrafficInputQuotaSizeOutput) Value() pulumi.Float64Output { + return o.ApplyT(func(v GetServerSpecificationsNetworkTrafficInputQuotaSize) float64 { return v.Value }).(pulumi.Float64Output) +} + +type GetServerSpecificationsNetworkTrafficInputQuotaUsed struct { + Unit string `pulumi:"unit"` + Value float64 `pulumi:"value"` +} + +// GetServerSpecificationsNetworkTrafficInputQuotaUsedInput is an input type that accepts GetServerSpecificationsNetworkTrafficInputQuotaUsedArgs and GetServerSpecificationsNetworkTrafficInputQuotaUsedOutput values. +// You can construct a concrete instance of `GetServerSpecificationsNetworkTrafficInputQuotaUsedInput` via: +// +// GetServerSpecificationsNetworkTrafficInputQuotaUsedArgs{...} +type GetServerSpecificationsNetworkTrafficInputQuotaUsedInput interface { + pulumi.Input + + ToGetServerSpecificationsNetworkTrafficInputQuotaUsedOutput() GetServerSpecificationsNetworkTrafficInputQuotaUsedOutput + ToGetServerSpecificationsNetworkTrafficInputQuotaUsedOutputWithContext(context.Context) GetServerSpecificationsNetworkTrafficInputQuotaUsedOutput +} + +type GetServerSpecificationsNetworkTrafficInputQuotaUsedArgs struct { + Unit pulumi.StringInput `pulumi:"unit"` + Value pulumi.Float64Input `pulumi:"value"` +} + +func (GetServerSpecificationsNetworkTrafficInputQuotaUsedArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkTrafficInputQuotaUsed)(nil)).Elem() +} + +func (i GetServerSpecificationsNetworkTrafficInputQuotaUsedArgs) ToGetServerSpecificationsNetworkTrafficInputQuotaUsedOutput() GetServerSpecificationsNetworkTrafficInputQuotaUsedOutput { + return i.ToGetServerSpecificationsNetworkTrafficInputQuotaUsedOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsNetworkTrafficInputQuotaUsedArgs) ToGetServerSpecificationsNetworkTrafficInputQuotaUsedOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkTrafficInputQuotaUsedOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsNetworkTrafficInputQuotaUsedOutput) +} + +type GetServerSpecificationsNetworkTrafficInputQuotaUsedOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsNetworkTrafficInputQuotaUsedOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkTrafficInputQuotaUsed)(nil)).Elem() +} + +func (o GetServerSpecificationsNetworkTrafficInputQuotaUsedOutput) ToGetServerSpecificationsNetworkTrafficInputQuotaUsedOutput() GetServerSpecificationsNetworkTrafficInputQuotaUsedOutput { + return o +} + +func (o GetServerSpecificationsNetworkTrafficInputQuotaUsedOutput) ToGetServerSpecificationsNetworkTrafficInputQuotaUsedOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkTrafficInputQuotaUsedOutput { + return o +} + +func (o GetServerSpecificationsNetworkTrafficInputQuotaUsedOutput) Unit() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkTrafficInputQuotaUsed) string { return v.Unit }).(pulumi.StringOutput) +} + +func (o GetServerSpecificationsNetworkTrafficInputQuotaUsedOutput) Value() pulumi.Float64Output { + return o.ApplyT(func(v GetServerSpecificationsNetworkTrafficInputQuotaUsed) float64 { return v.Value }).(pulumi.Float64Output) +} + +type GetServerSpecificationsNetworkTrafficOutputQuotaSize struct { + Unit string `pulumi:"unit"` + Value float64 `pulumi:"value"` +} + +// GetServerSpecificationsNetworkTrafficOutputQuotaSizeInput is an input type that accepts GetServerSpecificationsNetworkTrafficOutputQuotaSizeArgs and GetServerSpecificationsNetworkTrafficOutputQuotaSizeOutput values. +// You can construct a concrete instance of `GetServerSpecificationsNetworkTrafficOutputQuotaSizeInput` via: +// +// GetServerSpecificationsNetworkTrafficOutputQuotaSizeArgs{...} +type GetServerSpecificationsNetworkTrafficOutputQuotaSizeInput interface { + pulumi.Input + + ToGetServerSpecificationsNetworkTrafficOutputQuotaSizeOutput() GetServerSpecificationsNetworkTrafficOutputQuotaSizeOutput + ToGetServerSpecificationsNetworkTrafficOutputQuotaSizeOutputWithContext(context.Context) GetServerSpecificationsNetworkTrafficOutputQuotaSizeOutput +} + +type GetServerSpecificationsNetworkTrafficOutputQuotaSizeArgs struct { + Unit pulumi.StringInput `pulumi:"unit"` + Value pulumi.Float64Input `pulumi:"value"` +} + +func (GetServerSpecificationsNetworkTrafficOutputQuotaSizeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkTrafficOutputQuotaSize)(nil)).Elem() +} + +func (i GetServerSpecificationsNetworkTrafficOutputQuotaSizeArgs) ToGetServerSpecificationsNetworkTrafficOutputQuotaSizeOutput() GetServerSpecificationsNetworkTrafficOutputQuotaSizeOutput { + return i.ToGetServerSpecificationsNetworkTrafficOutputQuotaSizeOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsNetworkTrafficOutputQuotaSizeArgs) ToGetServerSpecificationsNetworkTrafficOutputQuotaSizeOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkTrafficOutputQuotaSizeOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsNetworkTrafficOutputQuotaSizeOutput) +} + +type GetServerSpecificationsNetworkTrafficOutputQuotaSizeOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsNetworkTrafficOutputQuotaSizeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkTrafficOutputQuotaSize)(nil)).Elem() +} + +func (o GetServerSpecificationsNetworkTrafficOutputQuotaSizeOutput) ToGetServerSpecificationsNetworkTrafficOutputQuotaSizeOutput() GetServerSpecificationsNetworkTrafficOutputQuotaSizeOutput { + return o +} + +func (o GetServerSpecificationsNetworkTrafficOutputQuotaSizeOutput) ToGetServerSpecificationsNetworkTrafficOutputQuotaSizeOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkTrafficOutputQuotaSizeOutput { + return o +} + +func (o GetServerSpecificationsNetworkTrafficOutputQuotaSizeOutput) Unit() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkTrafficOutputQuotaSize) string { return v.Unit }).(pulumi.StringOutput) +} + +func (o GetServerSpecificationsNetworkTrafficOutputQuotaSizeOutput) Value() pulumi.Float64Output { + return o.ApplyT(func(v GetServerSpecificationsNetworkTrafficOutputQuotaSize) float64 { return v.Value }).(pulumi.Float64Output) +} + +type GetServerSpecificationsNetworkTrafficOutputQuotaUsed struct { + Unit string `pulumi:"unit"` + Value float64 `pulumi:"value"` +} + +// GetServerSpecificationsNetworkTrafficOutputQuotaUsedInput is an input type that accepts GetServerSpecificationsNetworkTrafficOutputQuotaUsedArgs and GetServerSpecificationsNetworkTrafficOutputQuotaUsedOutput values. +// You can construct a concrete instance of `GetServerSpecificationsNetworkTrafficOutputQuotaUsedInput` via: +// +// GetServerSpecificationsNetworkTrafficOutputQuotaUsedArgs{...} +type GetServerSpecificationsNetworkTrafficOutputQuotaUsedInput interface { + pulumi.Input + + ToGetServerSpecificationsNetworkTrafficOutputQuotaUsedOutput() GetServerSpecificationsNetworkTrafficOutputQuotaUsedOutput + ToGetServerSpecificationsNetworkTrafficOutputQuotaUsedOutputWithContext(context.Context) GetServerSpecificationsNetworkTrafficOutputQuotaUsedOutput +} + +type GetServerSpecificationsNetworkTrafficOutputQuotaUsedArgs struct { + Unit pulumi.StringInput `pulumi:"unit"` + Value pulumi.Float64Input `pulumi:"value"` +} + +func (GetServerSpecificationsNetworkTrafficOutputQuotaUsedArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkTrafficOutputQuotaUsed)(nil)).Elem() +} + +func (i GetServerSpecificationsNetworkTrafficOutputQuotaUsedArgs) ToGetServerSpecificationsNetworkTrafficOutputQuotaUsedOutput() GetServerSpecificationsNetworkTrafficOutputQuotaUsedOutput { + return i.ToGetServerSpecificationsNetworkTrafficOutputQuotaUsedOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsNetworkTrafficOutputQuotaUsedArgs) ToGetServerSpecificationsNetworkTrafficOutputQuotaUsedOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkTrafficOutputQuotaUsedOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsNetworkTrafficOutputQuotaUsedOutput) +} + +type GetServerSpecificationsNetworkTrafficOutputQuotaUsedOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsNetworkTrafficOutputQuotaUsedOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkTrafficOutputQuotaUsed)(nil)).Elem() +} + +func (o GetServerSpecificationsNetworkTrafficOutputQuotaUsedOutput) ToGetServerSpecificationsNetworkTrafficOutputQuotaUsedOutput() GetServerSpecificationsNetworkTrafficOutputQuotaUsedOutput { + return o +} + +func (o GetServerSpecificationsNetworkTrafficOutputQuotaUsedOutput) ToGetServerSpecificationsNetworkTrafficOutputQuotaUsedOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkTrafficOutputQuotaUsedOutput { + return o +} + +func (o GetServerSpecificationsNetworkTrafficOutputQuotaUsedOutput) Unit() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkTrafficOutputQuotaUsed) string { return v.Unit }).(pulumi.StringOutput) +} + +func (o GetServerSpecificationsNetworkTrafficOutputQuotaUsedOutput) Value() pulumi.Float64Output { + return o.ApplyT(func(v GetServerSpecificationsNetworkTrafficOutputQuotaUsed) float64 { return v.Value }).(pulumi.Float64Output) +} + +type GetServerSpecificationsNetworkVmac struct { + // Whether server is compatible vmac + Supported bool `pulumi:"supported"` +} + +// GetServerSpecificationsNetworkVmacInput is an input type that accepts GetServerSpecificationsNetworkVmacArgs and GetServerSpecificationsNetworkVmacOutput values. +// You can construct a concrete instance of `GetServerSpecificationsNetworkVmacInput` via: +// +// GetServerSpecificationsNetworkVmacArgs{...} +type GetServerSpecificationsNetworkVmacInput interface { + pulumi.Input + + ToGetServerSpecificationsNetworkVmacOutput() GetServerSpecificationsNetworkVmacOutput + ToGetServerSpecificationsNetworkVmacOutputWithContext(context.Context) GetServerSpecificationsNetworkVmacOutput +} + +type GetServerSpecificationsNetworkVmacArgs struct { + // Whether server is compatible vmac + Supported pulumi.BoolInput `pulumi:"supported"` +} + +func (GetServerSpecificationsNetworkVmacArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkVmac)(nil)).Elem() +} + +func (i GetServerSpecificationsNetworkVmacArgs) ToGetServerSpecificationsNetworkVmacOutput() GetServerSpecificationsNetworkVmacOutput { + return i.ToGetServerSpecificationsNetworkVmacOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsNetworkVmacArgs) ToGetServerSpecificationsNetworkVmacOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkVmacOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsNetworkVmacOutput) +} + +type GetServerSpecificationsNetworkVmacOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsNetworkVmacOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkVmac)(nil)).Elem() +} + +func (o GetServerSpecificationsNetworkVmacOutput) ToGetServerSpecificationsNetworkVmacOutput() GetServerSpecificationsNetworkVmacOutput { + return o +} + +func (o GetServerSpecificationsNetworkVmacOutput) ToGetServerSpecificationsNetworkVmacOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkVmacOutput { + return o +} + +// Whether server is compatible vmac +func (o GetServerSpecificationsNetworkVmacOutput) Supported() pulumi.BoolOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkVmac) bool { return v.Supported }).(pulumi.BoolOutput) +} + +type GetServerSpecificationsNetworkVrack struct { + // vrack bandwidth limitation + Bandwidth GetServerSpecificationsNetworkVrackBandwidth `pulumi:"bandwidth"` + // Bandwidth offer type (included┃standard) + Type string `pulumi:"type"` +} + +// GetServerSpecificationsNetworkVrackInput is an input type that accepts GetServerSpecificationsNetworkVrackArgs and GetServerSpecificationsNetworkVrackOutput values. +// You can construct a concrete instance of `GetServerSpecificationsNetworkVrackInput` via: +// +// GetServerSpecificationsNetworkVrackArgs{...} +type GetServerSpecificationsNetworkVrackInput interface { + pulumi.Input + + ToGetServerSpecificationsNetworkVrackOutput() GetServerSpecificationsNetworkVrackOutput + ToGetServerSpecificationsNetworkVrackOutputWithContext(context.Context) GetServerSpecificationsNetworkVrackOutput +} + +type GetServerSpecificationsNetworkVrackArgs struct { + // vrack bandwidth limitation + Bandwidth GetServerSpecificationsNetworkVrackBandwidthInput `pulumi:"bandwidth"` + // Bandwidth offer type (included┃standard) + Type pulumi.StringInput `pulumi:"type"` +} + +func (GetServerSpecificationsNetworkVrackArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkVrack)(nil)).Elem() +} + +func (i GetServerSpecificationsNetworkVrackArgs) ToGetServerSpecificationsNetworkVrackOutput() GetServerSpecificationsNetworkVrackOutput { + return i.ToGetServerSpecificationsNetworkVrackOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsNetworkVrackArgs) ToGetServerSpecificationsNetworkVrackOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkVrackOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsNetworkVrackOutput) +} + +type GetServerSpecificationsNetworkVrackOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsNetworkVrackOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkVrack)(nil)).Elem() +} + +func (o GetServerSpecificationsNetworkVrackOutput) ToGetServerSpecificationsNetworkVrackOutput() GetServerSpecificationsNetworkVrackOutput { + return o +} + +func (o GetServerSpecificationsNetworkVrackOutput) ToGetServerSpecificationsNetworkVrackOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkVrackOutput { + return o +} + +// vrack bandwidth limitation +func (o GetServerSpecificationsNetworkVrackOutput) Bandwidth() GetServerSpecificationsNetworkVrackBandwidthOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkVrack) GetServerSpecificationsNetworkVrackBandwidth { + return v.Bandwidth + }).(GetServerSpecificationsNetworkVrackBandwidthOutput) +} + +// Bandwidth offer type (included┃standard) +func (o GetServerSpecificationsNetworkVrackOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkVrack) string { return v.Type }).(pulumi.StringOutput) +} + +type GetServerSpecificationsNetworkVrackBandwidth struct { + Unit string `pulumi:"unit"` + Value float64 `pulumi:"value"` +} + +// GetServerSpecificationsNetworkVrackBandwidthInput is an input type that accepts GetServerSpecificationsNetworkVrackBandwidthArgs and GetServerSpecificationsNetworkVrackBandwidthOutput values. +// You can construct a concrete instance of `GetServerSpecificationsNetworkVrackBandwidthInput` via: +// +// GetServerSpecificationsNetworkVrackBandwidthArgs{...} +type GetServerSpecificationsNetworkVrackBandwidthInput interface { + pulumi.Input + + ToGetServerSpecificationsNetworkVrackBandwidthOutput() GetServerSpecificationsNetworkVrackBandwidthOutput + ToGetServerSpecificationsNetworkVrackBandwidthOutputWithContext(context.Context) GetServerSpecificationsNetworkVrackBandwidthOutput +} + +type GetServerSpecificationsNetworkVrackBandwidthArgs struct { + Unit pulumi.StringInput `pulumi:"unit"` + Value pulumi.Float64Input `pulumi:"value"` +} + +func (GetServerSpecificationsNetworkVrackBandwidthArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkVrackBandwidth)(nil)).Elem() +} + +func (i GetServerSpecificationsNetworkVrackBandwidthArgs) ToGetServerSpecificationsNetworkVrackBandwidthOutput() GetServerSpecificationsNetworkVrackBandwidthOutput { + return i.ToGetServerSpecificationsNetworkVrackBandwidthOutputWithContext(context.Background()) +} + +func (i GetServerSpecificationsNetworkVrackBandwidthArgs) ToGetServerSpecificationsNetworkVrackBandwidthOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkVrackBandwidthOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServerSpecificationsNetworkVrackBandwidthOutput) +} + +type GetServerSpecificationsNetworkVrackBandwidthOutput struct{ *pulumi.OutputState } + +func (GetServerSpecificationsNetworkVrackBandwidthOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServerSpecificationsNetworkVrackBandwidth)(nil)).Elem() +} + +func (o GetServerSpecificationsNetworkVrackBandwidthOutput) ToGetServerSpecificationsNetworkVrackBandwidthOutput() GetServerSpecificationsNetworkVrackBandwidthOutput { + return o +} + +func (o GetServerSpecificationsNetworkVrackBandwidthOutput) ToGetServerSpecificationsNetworkVrackBandwidthOutputWithContext(ctx context.Context) GetServerSpecificationsNetworkVrackBandwidthOutput { + return o +} + +func (o GetServerSpecificationsNetworkVrackBandwidthOutput) Unit() pulumi.StringOutput { + return o.ApplyT(func(v GetServerSpecificationsNetworkVrackBandwidth) string { return v.Unit }).(pulumi.StringOutput) +} + +func (o GetServerSpecificationsNetworkVrackBandwidthOutput) Value() pulumi.Float64Output { + return o.ApplyT(func(v GetServerSpecificationsNetworkVrackBandwidth) float64 { return v.Value }).(pulumi.Float64Output) +} + func init() { pulumi.RegisterInputType(reflect.TypeOf((*ServerInstallTaskDetailsInput)(nil)).Elem(), ServerInstallTaskDetailsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServerInstallTaskDetailsPtrInput)(nil)).Elem(), ServerInstallTaskDetailsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServerInstallTaskUserMetadataInput)(nil)).Elem(), ServerInstallTaskUserMetadataArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServerInstallTaskUserMetadataArrayInput)(nil)).Elem(), ServerInstallTaskUserMetadataArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ServerNetworkingInterfaceInput)(nil)).Elem(), ServerNetworkingInterfaceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServerNetworkingInterfaceArrayInput)(nil)).Elem(), ServerNetworkingInterfaceArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsHardwareDefaultHardwareRaidSizeInput)(nil)).Elem(), GetServerSpecificationsHardwareDefaultHardwareRaidSizeArgs{}) @@ -1032,8 +2507,32 @@ func init() { 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.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsNetworkBandwidthInput)(nil)).Elem(), GetServerSpecificationsNetworkBandwidthArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsNetworkBandwidthInternetToOvhInput)(nil)).Elem(), GetServerSpecificationsNetworkBandwidthInternetToOvhArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsNetworkBandwidthOvhToInternetInput)(nil)).Elem(), GetServerSpecificationsNetworkBandwidthOvhToInternetArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsNetworkBandwidthOvhToOvhInput)(nil)).Elem(), GetServerSpecificationsNetworkBandwidthOvhToOvhArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsNetworkConnectionValInput)(nil)).Elem(), GetServerSpecificationsNetworkConnectionValArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsNetworkOlaInput)(nil)).Elem(), GetServerSpecificationsNetworkOlaArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsNetworkOlaAvailableModeInput)(nil)).Elem(), GetServerSpecificationsNetworkOlaAvailableModeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsNetworkOlaAvailableModeArrayInput)(nil)).Elem(), GetServerSpecificationsNetworkOlaAvailableModeArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsNetworkOlaAvailableModeInterfaceInput)(nil)).Elem(), GetServerSpecificationsNetworkOlaAvailableModeInterfaceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsNetworkOlaAvailableModeInterfaceArrayInput)(nil)).Elem(), GetServerSpecificationsNetworkOlaAvailableModeInterfaceArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsNetworkRoutingInput)(nil)).Elem(), GetServerSpecificationsNetworkRoutingArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsNetworkRoutingIpv4Input)(nil)).Elem(), GetServerSpecificationsNetworkRoutingIpv4Args{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsNetworkRoutingIpv6Input)(nil)).Elem(), GetServerSpecificationsNetworkRoutingIpv6Args{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsNetworkSwitchingInput)(nil)).Elem(), GetServerSpecificationsNetworkSwitchingArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsNetworkTrafficInput)(nil)).Elem(), GetServerSpecificationsNetworkTrafficArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsNetworkTrafficInputQuotaSizeInput)(nil)).Elem(), GetServerSpecificationsNetworkTrafficInputQuotaSizeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsNetworkTrafficInputQuotaUsedInput)(nil)).Elem(), GetServerSpecificationsNetworkTrafficInputQuotaUsedArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsNetworkTrafficOutputQuotaSizeInput)(nil)).Elem(), GetServerSpecificationsNetworkTrafficOutputQuotaSizeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsNetworkTrafficOutputQuotaUsedInput)(nil)).Elem(), GetServerSpecificationsNetworkTrafficOutputQuotaUsedArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsNetworkVmacInput)(nil)).Elem(), GetServerSpecificationsNetworkVmacArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsNetworkVrackInput)(nil)).Elem(), GetServerSpecificationsNetworkVrackArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsNetworkVrackBandwidthInput)(nil)).Elem(), GetServerSpecificationsNetworkVrackBandwidthArgs{}) pulumi.RegisterOutputType(ServerInstallTaskDetailsOutput{}) pulumi.RegisterOutputType(ServerInstallTaskDetailsPtrOutput{}) + pulumi.RegisterOutputType(ServerInstallTaskUserMetadataOutput{}) + pulumi.RegisterOutputType(ServerInstallTaskUserMetadataArrayOutput{}) pulumi.RegisterOutputType(ServerNetworkingInterfaceOutput{}) pulumi.RegisterOutputType(ServerNetworkingInterfaceArrayOutput{}) pulumi.RegisterOutputType(GetServerSpecificationsHardwareDefaultHardwareRaidSizeOutput{}) @@ -1046,4 +2545,26 @@ func init() { pulumi.RegisterOutputType(GetServerSpecificationsHardwareMemorySizeOutput{}) pulumi.RegisterOutputType(GetServerSpecificationsHardwareUsbKeyOutput{}) pulumi.RegisterOutputType(GetServerSpecificationsHardwareUsbKeyArrayOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsNetworkBandwidthOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsNetworkBandwidthInternetToOvhOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsNetworkBandwidthOvhToInternetOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsNetworkBandwidthOvhToOvhOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsNetworkConnectionValOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsNetworkOlaOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsNetworkOlaAvailableModeOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsNetworkOlaAvailableModeArrayOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsNetworkOlaAvailableModeInterfaceOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsNetworkOlaAvailableModeInterfaceArrayOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsNetworkRoutingOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsNetworkRoutingIpv4Output{}) + pulumi.RegisterOutputType(GetServerSpecificationsNetworkRoutingIpv6Output{}) + pulumi.RegisterOutputType(GetServerSpecificationsNetworkSwitchingOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsNetworkTrafficOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsNetworkTrafficInputQuotaSizeOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsNetworkTrafficInputQuotaUsedOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsNetworkTrafficOutputQuotaSizeOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsNetworkTrafficOutputQuotaUsedOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsNetworkVmacOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsNetworkVrackOutput{}) + pulumi.RegisterOutputType(GetServerSpecificationsNetworkVrackBandwidthOutput{}) } diff --git a/sdk/go/ovh/dedicated/serverInstallTask.go b/sdk/go/ovh/dedicated/serverInstallTask.go index 2224eed0..337d9aed 100644 --- a/sdk/go/ovh/dedicated/serverInstallTask.go +++ b/sdk/go/ovh/dedicated/serverInstallTask.go @@ -14,6 +14,7 @@ import ( // ## Example Usage // +// Using a custom template based on an OVHCloud template // // ```go // package main @@ -35,19 +36,12 @@ import ( // if err != nil { // return err // } -// key, err := Me.NewSshKey(ctx, "key", &Me.SshKeyArgs{ -// KeyName: pulumi.String("mykey"), -// Key: pulumi.String("ssh-ed25519 AAAAC3..."), -// }) -// if err != nil { -// return err -// } // debian, err := Me.NewInstallationTemplate(ctx, "debian", &Me.InstallationTemplateArgs{ -// BaseTemplateName: pulumi.String("debian11_64"), -// TemplateName: pulumi.String("mydebian11"), -// DefaultLanguage: pulumi.String("en"), +// BaseTemplateName: pulumi.String("debian12_64"), +// TemplateName: pulumi.String("mydebian12"), // Customization: &me.InstallationTemplateCustomizationArgs{ -// SshKeyName: key.KeyName, +// PostInstallationScriptLink: pulumi.String("http://test"), +// PostInstallationScriptReturn: pulumi.String("ok"), // }, // }) // if err != nil { @@ -60,6 +54,165 @@ import ( // Details: &dedicated.ServerInstallTaskDetailsArgs{ // CustomHostname: pulumi.String("mytest"), // }, +// UserMetadatas: dedicated.ServerInstallTaskUserMetadataArray{ +// &dedicated.ServerInstallTaskUserMetadataArgs{ +// Key: pulumi.String("sshKey"), +// Value: pulumi.String("ssh-ed25519 AAAAC3..."), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// +// Using a BringYourOwnLinux (BYOLinux) template (with userMetadata) +// +// +// ```go +// package main +// +// import ( +// +// "fmt" +// +// "github.com/ovh/pulumi-ovh/sdk/go/ovh" +// "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 { +// server, err := ovh.GetServer(ctx, &ovh.GetServerArgs{ +// ServiceName: "nsxxxxxxx.ip-xx-xx-xx.eu", +// }, nil) +// if err != nil { +// return err +// } +// rescue, err := Dedicated.GetServerBoots(ctx, &dedicated.GetServerBootsArgs{ +// ServiceName: "nsxxxxxxx.ip-xx-xx-xx.eu", +// BootType: pulumi.StringRef("rescue"), +// }, nil) +// if err != nil { +// return err +// } +// _, err = Dedicated.NewServerInstallTask(ctx, "serverInstall", &Dedicated.ServerInstallTaskArgs{ +// ServiceName: pulumi.String(server.ServiceName), +// TemplateName: pulumi.String("byolinux_64"), +// BootidOnDestroy: pulumi.Int(rescue.Results[0]), +// Details: &dedicated.ServerInstallTaskDetailsArgs{ +// CustomHostname: pulumi.String("mytest"), +// }, +// UserMetadatas: dedicated.ServerInstallTaskUserMetadataArray{ +// &dedicated.ServerInstallTaskUserMetadataArgs{ +// Key: pulumi.String("imageURL"), +// Value: pulumi.String("https://myimage.qcow2"), +// }, +// &dedicated.ServerInstallTaskUserMetadataArgs{ +// Key: pulumi.String("imageType"), +// Value: pulumi.String("qcow2"), +// }, +// &dedicated.ServerInstallTaskUserMetadataArgs{ +// Key: pulumi.String("httpHeaders0Key"), +// Value: pulumi.String("Authorization"), +// }, +// &dedicated.ServerInstallTaskUserMetadataArgs{ +// Key: pulumi.String("httpHeaders0Value"), +// Value: pulumi.String("Basic bG9naW46xxxxxxx="), +// }, +// &dedicated.ServerInstallTaskUserMetadataArgs{ +// Key: pulumi.String("imageChecksumType"), +// Value: pulumi.String("sha512"), +// }, +// &dedicated.ServerInstallTaskUserMetadataArgs{ +// Key: pulumi.String("imageCheckSum"), +// Value: pulumi.String("047122c9ff4d2a69512212104b06c678f5a9cdb22b75467353613ff87ccd03b57b38967e56d810e61366f9d22d6bd39ac0addf4e00a4c6445112a2416af8f225"), +// }, +// &dedicated.ServerInstallTaskUserMetadataArgs{ +// Key: pulumi.String("configDriveUserData"), +// Value: pulumi.String(fmt.Sprintf(`#cloud-config +// +// ssh_authorized_keys: +// - %v +// +// users: +// - name: patient0 +// sudo: ALL=(ALL) NOPASSWD:ALL +// groups: users, sudo +// shell: /bin/bash +// lock_passwd: false +// ssh_authorized_keys: +// - %v +// +// disable_root: false +// packages: +// - vim +// - tree +// +// final_message: The system is finally up, after $UPTIME seconds +// `, data.Ovh_me_ssh_key.Mykey.Key, data.Ovh_me_ssh_key.Mykey.Key)), +// +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// +// # Using a Microsoft Windows server OVHcloud template with a specific language +// +// +// ```go +// package main +// +// import ( +// +// "github.com/ovh/pulumi-ovh/sdk/go/ovh" +// "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 { +// server, err := ovh.GetServer(ctx, &ovh.GetServerArgs{ +// ServiceName: "nsxxxxxxx.ip-xx-xx-xx.eu", +// }, nil) +// if err != nil { +// return err +// } +// rescue, err := Dedicated.GetServerBoots(ctx, &dedicated.GetServerBootsArgs{ +// ServiceName: "nsxxxxxxx.ip-xx-xx-xx.eu", +// BootType: pulumi.StringRef("rescue"), +// }, nil) +// if err != nil { +// return err +// } +// _, err = Dedicated.NewServerInstallTask(ctx, "serverInstall", &Dedicated.ServerInstallTaskArgs{ +// ServiceName: pulumi.String(server.ServiceName), +// TemplateName: pulumi.String("win2019-std_64"), +// BootidOnDestroy: pulumi.Int(rescue.Results[0]), +// Details: &dedicated.ServerInstallTaskDetailsArgs{ +// CustomHostname: pulumi.String("mytest"), +// }, +// UserMetadatas: dedicated.ServerInstallTaskUserMetadataArray{ +// &dedicated.ServerInstallTaskUserMetadataArgs{ +// Key: pulumi.String("language"), +// Value: pulumi.String("fr-fr"), +// }, +// }, // }) // if err != nil { // return err @@ -105,6 +258,8 @@ type ServerInstallTask struct { Status pulumi.StringOutput `pulumi:"status"` // Template name. TemplateName pulumi.StringOutput `pulumi:"templateName"` + // see `userMetadata` block below. + UserMetadatas ServerInstallTaskUserMetadataArrayOutput `pulumi:"userMetadatas"` } // NewServerInstallTask registers a new resource with the given unique name, arguments, and options. @@ -165,6 +320,8 @@ type serverInstallTaskState struct { Status *string `pulumi:"status"` // Template name. TemplateName *string `pulumi:"templateName"` + // see `userMetadata` block below. + UserMetadatas []ServerInstallTaskUserMetadata `pulumi:"userMetadatas"` } type ServerInstallTaskState struct { @@ -190,6 +347,8 @@ type ServerInstallTaskState struct { Status pulumi.StringPtrInput // Template name. TemplateName pulumi.StringPtrInput + // see `userMetadata` block below. + UserMetadatas ServerInstallTaskUserMetadataArrayInput } func (ServerInstallTaskState) ElementType() reflect.Type { @@ -207,6 +366,8 @@ type serverInstallTaskArgs struct { ServiceName string `pulumi:"serviceName"` // Template name. TemplateName string `pulumi:"templateName"` + // see `userMetadata` block below. + UserMetadatas []ServerInstallTaskUserMetadata `pulumi:"userMetadatas"` } // The set of arguments for constructing a ServerInstallTask resource. @@ -221,6 +382,8 @@ type ServerInstallTaskArgs struct { ServiceName pulumi.StringInput // Template name. TemplateName pulumi.StringInput + // see `userMetadata` block below. + UserMetadatas ServerInstallTaskUserMetadataArrayInput } func (ServerInstallTaskArgs) ElementType() reflect.Type { @@ -365,6 +528,11 @@ func (o ServerInstallTaskOutput) TemplateName() pulumi.StringOutput { return o.ApplyT(func(v *ServerInstallTask) pulumi.StringOutput { return v.TemplateName }).(pulumi.StringOutput) } +// see `userMetadata` block below. +func (o ServerInstallTaskOutput) UserMetadatas() ServerInstallTaskUserMetadataArrayOutput { + return o.ApplyT(func(v *ServerInstallTask) ServerInstallTaskUserMetadataArrayOutput { return v.UserMetadatas }).(ServerInstallTaskUserMetadataArrayOutput) +} + type ServerInstallTaskArrayOutput struct{ *pulumi.OutputState } func (ServerInstallTaskArrayOutput) ElementType() reflect.Type { diff --git a/sdk/go/ovh/me/getInstallationTemplate.go b/sdk/go/ovh/me/getInstallationTemplate.go index 0a636e13..d98b3390 100644 --- a/sdk/go/ovh/me/getInstallationTemplate.go +++ b/sdk/go/ovh/me/getInstallationTemplate.go @@ -58,19 +58,17 @@ type LookupInstallationTemplateArgs struct { // A collection of values returned by getInstallationTemplate. type LookupInstallationTemplateResult struct { - // List of all language available for this template. + // List of all language available for this template. Deprecated, will be removed in next release. AvailableLanguages []string `pulumi:"availableLanguages"` - // This distribution is new and, although tested and functional, may still display odd behaviour. - Beta bool `pulumi:"beta"` // This template bit format (32 or 64). BitFormat int `pulumi:"bitFormat"` // Category of this template (informative only). (basic, customer, hosting, other, readyToUse, virtualisation). Category string `pulumi:"category"` Customizations []GetInstallationTemplateCustomization `pulumi:"customizations"` - // The default language of this template. + // The default language of this template. Deprecated, will be removed in next release. + // + // Deprecated: This field will be removed from the API, please use `userMetadata` instead. DefaultLanguage string `pulumi:"defaultLanguage"` - // is this distribution deprecated. - Deprecated bool `pulumi:"deprecated"` // information about this template. Description string `pulumi:"description"` // the distribution this template is based on. @@ -82,14 +80,10 @@ type LookupInstallationTemplateResult struct { // This distribution supports hardware raid configuration through the OVHcloud API. HardRaidConfiguration bool `pulumi:"hardRaidConfiguration"` // The provider-assigned unique ID for this managed resource. - Id string `pulumi:"id"` - // Date of last modification of the base image. - LastModification string `pulumi:"lastModification"` + Id string `pulumi:"id"` LvmReady bool `pulumi:"lvmReady"` PartitionSchemes []GetInstallationTemplatePartitionSchemeType `pulumi:"partitionSchemes"` - // This distribution supports the microsoft SQL server. - SupportsSqlServer bool `pulumi:"supportsSqlServer"` - TemplateName string `pulumi:"templateName"` + TemplateName string `pulumi:"templateName"` } func LookupInstallationTemplateOutput(ctx *pulumi.Context, args LookupInstallationTemplateOutputArgs, opts ...pulumi.InvokeOption) LookupInstallationTemplateResultOutput { @@ -130,16 +124,11 @@ func (o LookupInstallationTemplateResultOutput) ToLookupInstallationTemplateResu return o } -// List of all language available for this template. +// List of all language available for this template. Deprecated, will be removed in next release. func (o LookupInstallationTemplateResultOutput) AvailableLanguages() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupInstallationTemplateResult) []string { return v.AvailableLanguages }).(pulumi.StringArrayOutput) } -// This distribution is new and, although tested and functional, may still display odd behaviour. -func (o LookupInstallationTemplateResultOutput) Beta() pulumi.BoolOutput { - return o.ApplyT(func(v LookupInstallationTemplateResult) bool { return v.Beta }).(pulumi.BoolOutput) -} - // This template bit format (32 or 64). func (o LookupInstallationTemplateResultOutput) BitFormat() pulumi.IntOutput { return o.ApplyT(func(v LookupInstallationTemplateResult) int { return v.BitFormat }).(pulumi.IntOutput) @@ -156,16 +145,13 @@ func (o LookupInstallationTemplateResultOutput) Customizations() GetInstallation }).(GetInstallationTemplateCustomizationArrayOutput) } -// The default language of this template. +// The default language of this template. Deprecated, will be removed in next release. +// +// Deprecated: This field will be removed from the API, please use `userMetadata` instead. func (o LookupInstallationTemplateResultOutput) DefaultLanguage() pulumi.StringOutput { return o.ApplyT(func(v LookupInstallationTemplateResult) string { return v.DefaultLanguage }).(pulumi.StringOutput) } -// is this distribution deprecated. -func (o LookupInstallationTemplateResultOutput) Deprecated() pulumi.BoolOutput { - return o.ApplyT(func(v LookupInstallationTemplateResult) bool { return v.Deprecated }).(pulumi.BoolOutput) -} - // information about this template. func (o LookupInstallationTemplateResultOutput) Description() pulumi.StringOutput { return o.ApplyT(func(v LookupInstallationTemplateResult) string { return v.Description }).(pulumi.StringOutput) @@ -196,11 +182,6 @@ func (o LookupInstallationTemplateResultOutput) Id() pulumi.StringOutput { return o.ApplyT(func(v LookupInstallationTemplateResult) string { return v.Id }).(pulumi.StringOutput) } -// Date of last modification of the base image. -func (o LookupInstallationTemplateResultOutput) LastModification() pulumi.StringOutput { - return o.ApplyT(func(v LookupInstallationTemplateResult) string { return v.LastModification }).(pulumi.StringOutput) -} - func (o LookupInstallationTemplateResultOutput) LvmReady() pulumi.BoolOutput { return o.ApplyT(func(v LookupInstallationTemplateResult) bool { return v.LvmReady }).(pulumi.BoolOutput) } @@ -211,11 +192,6 @@ func (o LookupInstallationTemplateResultOutput) PartitionSchemes() GetInstallati }).(GetInstallationTemplatePartitionSchemeTypeArrayOutput) } -// This distribution supports the microsoft SQL server. -func (o LookupInstallationTemplateResultOutput) SupportsSqlServer() pulumi.BoolOutput { - return o.ApplyT(func(v LookupInstallationTemplateResult) bool { return v.SupportsSqlServer }).(pulumi.BoolOutput) -} - func (o LookupInstallationTemplateResultOutput) TemplateName() pulumi.StringOutput { return o.ApplyT(func(v LookupInstallationTemplateResult) string { return v.TemplateName }).(pulumi.StringOutput) } diff --git a/sdk/go/ovh/me/getSshKey.go b/sdk/go/ovh/me/getSshKey.go index 0d74d2d0..e8ea7296 100644 --- a/sdk/go/ovh/me/getSshKey.go +++ b/sdk/go/ovh/me/getSshKey.go @@ -11,6 +11,8 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) +// > __NOTE__ This data source will be removed in next release. +// // Use this data source to retrieve information about an SSH key. // // ## Example Usage diff --git a/sdk/go/ovh/me/installationTemplate.go b/sdk/go/ovh/me/installationTemplate.go index 3075adc0..f2ce22c0 100644 --- a/sdk/go/ovh/me/installationTemplate.go +++ b/sdk/go/ovh/me/installationTemplate.go @@ -14,36 +14,6 @@ import ( // Use this resource to create a custom installation template available for dedicated servers. // -// ## Example Usage -// -// -// ```go -// package main -// -// import ( -// -// "github.com/ovh/pulumi-ovh/sdk/go/ovh/Me" -// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" -// -// ) -// -// func main() { -// pulumi.Run(func(ctx *pulumi.Context) error { -// _, err := Me.NewInstallationTemplate(ctx, "mytemplate", &Me.InstallationTemplateArgs{ -// BaseTemplateName: pulumi.String("centos7_64"), -// DefaultLanguage: pulumi.String("en"), -// TemplateName: pulumi.String("mytemplate"), -// }) -// if err != nil { -// return err -// } -// return nil -// }) -// } -// -// ``` -// -// // ## Import // // Custom installation template available for dedicated servers can be imported using the `base_template_name`, `template_name` of the cluster, separated by "/" E.g., @@ -56,21 +26,21 @@ import ( type InstallationTemplate struct { pulumi.CustomResourceState - // List of all language available for this template. + // Deprecated. AvailableLanguages pulumi.StringArrayOutput `pulumi:"availableLanguages"` // The name of an existing installation template, choose one among the list given by `getInstallationTemplates` datasource. BaseTemplateName pulumi.StringOutput `pulumi:"baseTemplateName"` - // This distribution is new and, although tested and functional, may still display odd behaviour. - Beta pulumi.BoolOutput `pulumi:"beta"` // This template bit format (32 or 64). BitFormat pulumi.IntOutput `pulumi:"bitFormat"` // Category of this template (informative only). (basic, customer, hosting, other, readyToUse, virtualisation). + // + // Deprecated: This field is deprecated and will be removed in a future release. Category pulumi.StringOutput `pulumi:"category"` Customization InstallationTemplateCustomizationPtrOutput `pulumi:"customization"` - // The default language of this template. - DefaultLanguage pulumi.StringOutput `pulumi:"defaultLanguage"` - // is this distribution deprecated. - Deprecated pulumi.BoolOutput `pulumi:"deprecated"` + // Deprecated, use language in userMetadata instead. + // + // Deprecated: This field is deprecated and will be removed in a future release. + DefaultLanguage pulumi.StringPtrOutput `pulumi:"defaultLanguage"` // information about this template. Description pulumi.StringOutput `pulumi:"description"` // the distribution this template is based on. @@ -81,14 +51,10 @@ type InstallationTemplate struct { Filesystems pulumi.StringArrayOutput `pulumi:"filesystems"` // This distribution supports hardware raid configuration through the OVHcloud API. HardRaidConfiguration pulumi.BoolOutput `pulumi:"hardRaidConfiguration"` - // Date of last modification of the base image. - LastModification pulumi.StringOutput `pulumi:"lastModification"` // This distribution supports Logical Volumes (Linux LVM) LvmReady pulumi.BoolOutput `pulumi:"lvmReady"` // Remove default partition schemes at creation. RemoveDefaultPartitionSchemes pulumi.BoolOutput `pulumi:"removeDefaultPartitionSchemes"` - // This distribution supports the microsoft SQL server. - SupportsSqlServer pulumi.BoolOutput `pulumi:"supportsSqlServer"` // This template name. TemplateName pulumi.StringOutput `pulumi:"templateName"` } @@ -103,9 +69,6 @@ func NewInstallationTemplate(ctx *pulumi.Context, if args.BaseTemplateName == nil { return nil, errors.New("invalid value for required argument 'BaseTemplateName'") } - if args.DefaultLanguage == nil { - return nil, errors.New("invalid value for required argument 'DefaultLanguage'") - } if args.TemplateName == nil { return nil, errors.New("invalid value for required argument 'TemplateName'") } @@ -132,21 +95,21 @@ func GetInstallationTemplate(ctx *pulumi.Context, // Input properties used for looking up and filtering InstallationTemplate resources. type installationTemplateState struct { - // List of all language available for this template. + // Deprecated. AvailableLanguages []string `pulumi:"availableLanguages"` // The name of an existing installation template, choose one among the list given by `getInstallationTemplates` datasource. BaseTemplateName *string `pulumi:"baseTemplateName"` - // This distribution is new and, although tested and functional, may still display odd behaviour. - Beta *bool `pulumi:"beta"` // This template bit format (32 or 64). BitFormat *int `pulumi:"bitFormat"` // Category of this template (informative only). (basic, customer, hosting, other, readyToUse, virtualisation). + // + // Deprecated: This field is deprecated and will be removed in a future release. Category *string `pulumi:"category"` Customization *InstallationTemplateCustomization `pulumi:"customization"` - // The default language of this template. + // Deprecated, use language in userMetadata instead. + // + // Deprecated: This field is deprecated and will be removed in a future release. DefaultLanguage *string `pulumi:"defaultLanguage"` - // is this distribution deprecated. - Deprecated *bool `pulumi:"deprecated"` // information about this template. Description *string `pulumi:"description"` // the distribution this template is based on. @@ -157,34 +120,30 @@ type installationTemplateState struct { Filesystems []string `pulumi:"filesystems"` // This distribution supports hardware raid configuration through the OVHcloud API. HardRaidConfiguration *bool `pulumi:"hardRaidConfiguration"` - // Date of last modification of the base image. - LastModification *string `pulumi:"lastModification"` // This distribution supports Logical Volumes (Linux LVM) LvmReady *bool `pulumi:"lvmReady"` // Remove default partition schemes at creation. RemoveDefaultPartitionSchemes *bool `pulumi:"removeDefaultPartitionSchemes"` - // This distribution supports the microsoft SQL server. - SupportsSqlServer *bool `pulumi:"supportsSqlServer"` // This template name. TemplateName *string `pulumi:"templateName"` } type InstallationTemplateState struct { - // List of all language available for this template. + // Deprecated. AvailableLanguages pulumi.StringArrayInput // The name of an existing installation template, choose one among the list given by `getInstallationTemplates` datasource. BaseTemplateName pulumi.StringPtrInput - // This distribution is new and, although tested and functional, may still display odd behaviour. - Beta pulumi.BoolPtrInput // This template bit format (32 or 64). BitFormat pulumi.IntPtrInput // Category of this template (informative only). (basic, customer, hosting, other, readyToUse, virtualisation). + // + // Deprecated: This field is deprecated and will be removed in a future release. Category pulumi.StringPtrInput Customization InstallationTemplateCustomizationPtrInput - // The default language of this template. + // Deprecated, use language in userMetadata instead. + // + // Deprecated: This field is deprecated and will be removed in a future release. DefaultLanguage pulumi.StringPtrInput - // is this distribution deprecated. - Deprecated pulumi.BoolPtrInput // information about this template. Description pulumi.StringPtrInput // the distribution this template is based on. @@ -195,14 +154,10 @@ type InstallationTemplateState struct { Filesystems pulumi.StringArrayInput // This distribution supports hardware raid configuration through the OVHcloud API. HardRaidConfiguration pulumi.BoolPtrInput - // Date of last modification of the base image. - LastModification pulumi.StringPtrInput // This distribution supports Logical Volumes (Linux LVM) LvmReady pulumi.BoolPtrInput // Remove default partition schemes at creation. RemoveDefaultPartitionSchemes pulumi.BoolPtrInput - // This distribution supports the microsoft SQL server. - SupportsSqlServer pulumi.BoolPtrInput // This template name. TemplateName pulumi.StringPtrInput } @@ -215,8 +170,10 @@ type installationTemplateArgs struct { // The name of an existing installation template, choose one among the list given by `getInstallationTemplates` datasource. BaseTemplateName string `pulumi:"baseTemplateName"` Customization *InstallationTemplateCustomization `pulumi:"customization"` - // The default language of this template. - DefaultLanguage string `pulumi:"defaultLanguage"` + // Deprecated, use language in userMetadata instead. + // + // Deprecated: This field is deprecated and will be removed in a future release. + DefaultLanguage *string `pulumi:"defaultLanguage"` // Remove default partition schemes at creation. RemoveDefaultPartitionSchemes *bool `pulumi:"removeDefaultPartitionSchemes"` // This template name. @@ -228,8 +185,10 @@ type InstallationTemplateArgs struct { // The name of an existing installation template, choose one among the list given by `getInstallationTemplates` datasource. BaseTemplateName pulumi.StringInput Customization InstallationTemplateCustomizationPtrInput - // The default language of this template. - DefaultLanguage pulumi.StringInput + // Deprecated, use language in userMetadata instead. + // + // Deprecated: This field is deprecated and will be removed in a future release. + DefaultLanguage pulumi.StringPtrInput // Remove default partition schemes at creation. RemoveDefaultPartitionSchemes pulumi.BoolPtrInput // This template name. @@ -323,7 +282,7 @@ func (o InstallationTemplateOutput) ToInstallationTemplateOutputWithContext(ctx return o } -// List of all language available for this template. +// Deprecated. func (o InstallationTemplateOutput) AvailableLanguages() pulumi.StringArrayOutput { return o.ApplyT(func(v *InstallationTemplate) pulumi.StringArrayOutput { return v.AvailableLanguages }).(pulumi.StringArrayOutput) } @@ -333,17 +292,14 @@ func (o InstallationTemplateOutput) BaseTemplateName() pulumi.StringOutput { return o.ApplyT(func(v *InstallationTemplate) pulumi.StringOutput { return v.BaseTemplateName }).(pulumi.StringOutput) } -// This distribution is new and, although tested and functional, may still display odd behaviour. -func (o InstallationTemplateOutput) Beta() pulumi.BoolOutput { - return o.ApplyT(func(v *InstallationTemplate) pulumi.BoolOutput { return v.Beta }).(pulumi.BoolOutput) -} - // This template bit format (32 or 64). func (o InstallationTemplateOutput) BitFormat() pulumi.IntOutput { return o.ApplyT(func(v *InstallationTemplate) pulumi.IntOutput { return v.BitFormat }).(pulumi.IntOutput) } // Category of this template (informative only). (basic, customer, hosting, other, readyToUse, virtualisation). +// +// Deprecated: This field is deprecated and will be removed in a future release. func (o InstallationTemplateOutput) Category() pulumi.StringOutput { return o.ApplyT(func(v *InstallationTemplate) pulumi.StringOutput { return v.Category }).(pulumi.StringOutput) } @@ -352,14 +308,11 @@ func (o InstallationTemplateOutput) Customization() InstallationTemplateCustomiz return o.ApplyT(func(v *InstallationTemplate) InstallationTemplateCustomizationPtrOutput { return v.Customization }).(InstallationTemplateCustomizationPtrOutput) } -// The default language of this template. -func (o InstallationTemplateOutput) DefaultLanguage() pulumi.StringOutput { - return o.ApplyT(func(v *InstallationTemplate) pulumi.StringOutput { return v.DefaultLanguage }).(pulumi.StringOutput) -} - -// is this distribution deprecated. -func (o InstallationTemplateOutput) Deprecated() pulumi.BoolOutput { - return o.ApplyT(func(v *InstallationTemplate) pulumi.BoolOutput { return v.Deprecated }).(pulumi.BoolOutput) +// Deprecated, use language in userMetadata instead. +// +// Deprecated: This field is deprecated and will be removed in a future release. +func (o InstallationTemplateOutput) DefaultLanguage() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InstallationTemplate) pulumi.StringPtrOutput { return v.DefaultLanguage }).(pulumi.StringPtrOutput) } // information about this template. @@ -387,11 +340,6 @@ func (o InstallationTemplateOutput) HardRaidConfiguration() pulumi.BoolOutput { return o.ApplyT(func(v *InstallationTemplate) pulumi.BoolOutput { return v.HardRaidConfiguration }).(pulumi.BoolOutput) } -// Date of last modification of the base image. -func (o InstallationTemplateOutput) LastModification() pulumi.StringOutput { - return o.ApplyT(func(v *InstallationTemplate) pulumi.StringOutput { return v.LastModification }).(pulumi.StringOutput) -} - // This distribution supports Logical Volumes (Linux LVM) func (o InstallationTemplateOutput) LvmReady() pulumi.BoolOutput { return o.ApplyT(func(v *InstallationTemplate) pulumi.BoolOutput { return v.LvmReady }).(pulumi.BoolOutput) @@ -402,11 +350,6 @@ func (o InstallationTemplateOutput) RemoveDefaultPartitionSchemes() pulumi.BoolO return o.ApplyT(func(v *InstallationTemplate) pulumi.BoolOutput { return v.RemoveDefaultPartitionSchemes }).(pulumi.BoolOutput) } -// This distribution supports the microsoft SQL server. -func (o InstallationTemplateOutput) SupportsSqlServer() pulumi.BoolOutput { - return o.ApplyT(func(v *InstallationTemplate) pulumi.BoolOutput { return v.SupportsSqlServer }).(pulumi.BoolOutput) -} - // This template name. func (o InstallationTemplateOutput) TemplateName() pulumi.StringOutput { return o.ApplyT(func(v *InstallationTemplate) pulumi.StringOutput { return v.TemplateName }).(pulumi.StringOutput) diff --git a/sdk/go/ovh/me/installationTemplatePartitionScheme.go b/sdk/go/ovh/me/installationTemplatePartitionScheme.go index 903d3bbe..fd0c51f5 100644 --- a/sdk/go/ovh/me/installationTemplatePartitionScheme.go +++ b/sdk/go/ovh/me/installationTemplatePartitionScheme.go @@ -30,9 +30,8 @@ import ( // func main() { // pulumi.Run(func(ctx *pulumi.Context) error { // mytemplate, err := Me.NewInstallationTemplate(ctx, "mytemplate", &Me.InstallationTemplateArgs{ -// BaseTemplateName: pulumi.String("centos7_64"), +// BaseTemplateName: pulumi.String("debian12_64"), // TemplateName: pulumi.String("mytemplate"), -// DefaultLanguage: pulumi.String("fr"), // }) // if err != nil { // return err diff --git a/sdk/go/ovh/me/installationTemplatePartitionSchemeHardwareRaid.go b/sdk/go/ovh/me/installationTemplatePartitionSchemeHardwareRaid.go index 11f8e63e..30fdf8bb 100644 --- a/sdk/go/ovh/me/installationTemplatePartitionSchemeHardwareRaid.go +++ b/sdk/go/ovh/me/installationTemplatePartitionSchemeHardwareRaid.go @@ -30,9 +30,8 @@ import ( // func main() { // pulumi.Run(func(ctx *pulumi.Context) error { // mytemplate, err := Me.NewInstallationTemplate(ctx, "mytemplate", &Me.InstallationTemplateArgs{ -// BaseTemplateName: pulumi.String("centos7_64"), +// BaseTemplateName: pulumi.String("debian12_64"), // TemplateName: pulumi.String("mytemplate"), -// DefaultLanguage: pulumi.String("fr"), // }) // if err != nil { // return err diff --git a/sdk/go/ovh/me/installationTemplatePartitionSchemePartition.go b/sdk/go/ovh/me/installationTemplatePartitionSchemePartition.go index a603bd64..058bba2a 100644 --- a/sdk/go/ovh/me/installationTemplatePartitionSchemePartition.go +++ b/sdk/go/ovh/me/installationTemplatePartitionSchemePartition.go @@ -30,9 +30,8 @@ import ( // func main() { // pulumi.Run(func(ctx *pulumi.Context) error { // mytemplate, err := Me.NewInstallationTemplate(ctx, "mytemplate", &Me.InstallationTemplateArgs{ -// BaseTemplateName: pulumi.String("centos7_64"), +// BaseTemplateName: pulumi.String("debian12_64"), // TemplateName: pulumi.String("mytemplate"), -// DefaultLanguage: pulumi.String("fr"), // }) // if err != nil { // return err diff --git a/sdk/go/ovh/me/pulumiTypes.go b/sdk/go/ovh/me/pulumiTypes.go index 12f976c0..5036555e 100644 --- a/sdk/go/ovh/me/pulumiTypes.go +++ b/sdk/go/ovh/me/pulumiTypes.go @@ -20,11 +20,9 @@ type InstallationTemplateCustomization struct { PostInstallationScriptLink *string `pulumi:"postInstallationScriptLink"` // indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. PostInstallationScriptReturn *string `pulumi:"postInstallationScriptReturn"` - // Rating. + // Deprecated. // - // Deprecated: field is not used anymore - Rating *int `pulumi:"rating"` - // Name of the ssh key that should be installed. Password login will be disabled. + // Deprecated: This field is deprecated and will be removed in a future release. SshKeyName *string `pulumi:"sshKeyName"` } @@ -46,11 +44,9 @@ type InstallationTemplateCustomizationArgs struct { PostInstallationScriptLink pulumi.StringPtrInput `pulumi:"postInstallationScriptLink"` // indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. PostInstallationScriptReturn pulumi.StringPtrInput `pulumi:"postInstallationScriptReturn"` - // Rating. + // Deprecated. // - // Deprecated: field is not used anymore - Rating pulumi.IntPtrInput `pulumi:"rating"` - // Name of the ssh key that should be installed. Password login will be disabled. + // Deprecated: This field is deprecated and will be removed in a future release. SshKeyName pulumi.StringPtrInput `pulumi:"sshKeyName"` } @@ -146,14 +142,9 @@ func (o InstallationTemplateCustomizationOutput) PostInstallationScriptReturn() return o.ApplyT(func(v InstallationTemplateCustomization) *string { return v.PostInstallationScriptReturn }).(pulumi.StringPtrOutput) } -// Rating. +// Deprecated. // -// Deprecated: field is not used anymore -func (o InstallationTemplateCustomizationOutput) Rating() pulumi.IntPtrOutput { - return o.ApplyT(func(v InstallationTemplateCustomization) *int { return v.Rating }).(pulumi.IntPtrOutput) -} - -// Name of the ssh key that should be installed. Password login will be disabled. +// Deprecated: This field is deprecated and will be removed in a future release. func (o InstallationTemplateCustomizationOutput) SshKeyName() pulumi.StringPtrOutput { return o.ApplyT(func(v InstallationTemplateCustomization) *string { return v.SshKeyName }).(pulumi.StringPtrOutput) } @@ -212,19 +203,9 @@ func (o InstallationTemplateCustomizationPtrOutput) PostInstallationScriptReturn }).(pulumi.StringPtrOutput) } -// Rating. +// Deprecated. // -// Deprecated: field is not used anymore -func (o InstallationTemplateCustomizationPtrOutput) Rating() pulumi.IntPtrOutput { - return o.ApplyT(func(v *InstallationTemplateCustomization) *int { - if v == nil { - return nil - } - return v.Rating - }).(pulumi.IntPtrOutput) -} - -// Name of the ssh key that should be installed. Password login will be disabled. +// Deprecated: This field is deprecated and will be removed in a future release. func (o InstallationTemplateCustomizationPtrOutput) SshKeyName() pulumi.StringPtrOutput { return o.ApplyT(func(v *InstallationTemplateCustomization) *string { if v == nil { @@ -241,11 +222,9 @@ type GetInstallationTemplateCustomization struct { PostInstallationScriptLink string `pulumi:"postInstallationScriptLink"` // indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. PostInstallationScriptReturn string `pulumi:"postInstallationScriptReturn"` - // (DEPRECATED) Rating. + // Name of the ssh key that should be installed. Password login will be disabled. Deprecated, will be removed in next release, use userMetada instead. // - // Deprecated: field is not used anymore - Rating int `pulumi:"rating"` - // Name of the ssh key that should be installed. Password login will be disabled. + // Deprecated: This field will be removed from the API, please use `userMetadata` instead. SshKeyName string `pulumi:"sshKeyName"` } @@ -267,11 +246,9 @@ type GetInstallationTemplateCustomizationArgs struct { PostInstallationScriptLink pulumi.StringInput `pulumi:"postInstallationScriptLink"` // indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. PostInstallationScriptReturn pulumi.StringInput `pulumi:"postInstallationScriptReturn"` - // (DEPRECATED) Rating. + // Name of the ssh key that should be installed. Password login will be disabled. Deprecated, will be removed in next release, use userMetada instead. // - // Deprecated: field is not used anymore - Rating pulumi.IntInput `pulumi:"rating"` - // Name of the ssh key that should be installed. Password login will be disabled. + // Deprecated: This field will be removed from the API, please use `userMetadata` instead. SshKeyName pulumi.StringInput `pulumi:"sshKeyName"` } @@ -341,14 +318,9 @@ func (o GetInstallationTemplateCustomizationOutput) PostInstallationScriptReturn return o.ApplyT(func(v GetInstallationTemplateCustomization) string { return v.PostInstallationScriptReturn }).(pulumi.StringOutput) } -// (DEPRECATED) Rating. +// Name of the ssh key that should be installed. Password login will be disabled. Deprecated, will be removed in next release, use userMetada instead. // -// Deprecated: field is not used anymore -func (o GetInstallationTemplateCustomizationOutput) Rating() pulumi.IntOutput { - return o.ApplyT(func(v GetInstallationTemplateCustomization) int { return v.Rating }).(pulumi.IntOutput) -} - -// Name of the ssh key that should be installed. Password login will be disabled. +// Deprecated: This field will be removed from the API, please use `userMetadata` instead. func (o GetInstallationTemplateCustomizationOutput) SshKeyName() pulumi.StringOutput { return o.ApplyT(func(v GetInstallationTemplateCustomization) string { return v.SshKeyName }).(pulumi.StringOutput) } diff --git a/sdk/go/ovh/me/sshKey.go b/sdk/go/ovh/me/sshKey.go index 77db679f..5403f2b7 100644 --- a/sdk/go/ovh/me/sshKey.go +++ b/sdk/go/ovh/me/sshKey.go @@ -14,6 +14,8 @@ import ( // ## Example Usage // +// > __NOTE__ This resource will be removed in next release, please use userMetada instead. +// // // ```go // package main @@ -44,10 +46,16 @@ type SshKey struct { pulumi.CustomResourceState // True when this public SSH key is used for rescue mode and reinstallations. + // + // Deprecated: use userMetada instead Default pulumi.BoolOutput `pulumi:"default"` // The content of the public key in the form "ssh-algo content", e.g. "ssh-ed25519 AAAAC3...". + // + // Deprecated: use userMetada instead Key pulumi.StringOutput `pulumi:"key"` // The friendly name of this SSH key. + // + // Deprecated: use userMetada instead KeyName pulumi.StringOutput `pulumi:"keyName"` } @@ -88,19 +96,31 @@ func GetSshKey(ctx *pulumi.Context, // Input properties used for looking up and filtering SshKey resources. type sshKeyState struct { // True when this public SSH key is used for rescue mode and reinstallations. + // + // Deprecated: use userMetada instead Default *bool `pulumi:"default"` // The content of the public key in the form "ssh-algo content", e.g. "ssh-ed25519 AAAAC3...". + // + // Deprecated: use userMetada instead Key *string `pulumi:"key"` // The friendly name of this SSH key. + // + // Deprecated: use userMetada instead KeyName *string `pulumi:"keyName"` } type SshKeyState struct { // True when this public SSH key is used for rescue mode and reinstallations. + // + // Deprecated: use userMetada instead Default pulumi.BoolPtrInput // The content of the public key in the form "ssh-algo content", e.g. "ssh-ed25519 AAAAC3...". + // + // Deprecated: use userMetada instead Key pulumi.StringPtrInput // The friendly name of this SSH key. + // + // Deprecated: use userMetada instead KeyName pulumi.StringPtrInput } @@ -110,20 +130,32 @@ func (SshKeyState) ElementType() reflect.Type { type sshKeyArgs struct { // True when this public SSH key is used for rescue mode and reinstallations. + // + // Deprecated: use userMetada instead Default *bool `pulumi:"default"` // The content of the public key in the form "ssh-algo content", e.g. "ssh-ed25519 AAAAC3...". + // + // Deprecated: use userMetada instead Key string `pulumi:"key"` // The friendly name of this SSH key. + // + // Deprecated: use userMetada instead KeyName string `pulumi:"keyName"` } // The set of arguments for constructing a SshKey resource. type SshKeyArgs struct { // True when this public SSH key is used for rescue mode and reinstallations. + // + // Deprecated: use userMetada instead Default pulumi.BoolPtrInput // The content of the public key in the form "ssh-algo content", e.g. "ssh-ed25519 AAAAC3...". + // + // Deprecated: use userMetada instead Key pulumi.StringInput // The friendly name of this SSH key. + // + // Deprecated: use userMetada instead KeyName pulumi.StringInput } @@ -215,16 +247,22 @@ func (o SshKeyOutput) ToSshKeyOutputWithContext(ctx context.Context) SshKeyOutpu } // True when this public SSH key is used for rescue mode and reinstallations. +// +// Deprecated: use userMetada instead func (o SshKeyOutput) Default() pulumi.BoolOutput { return o.ApplyT(func(v *SshKey) pulumi.BoolOutput { return v.Default }).(pulumi.BoolOutput) } // The content of the public key in the form "ssh-algo content", e.g. "ssh-ed25519 AAAAC3...". +// +// Deprecated: use userMetada instead func (o SshKeyOutput) Key() pulumi.StringOutput { return o.ApplyT(func(v *SshKey) pulumi.StringOutput { return v.Key }).(pulumi.StringOutput) } // The friendly name of this SSH key. +// +// Deprecated: use userMetada instead func (o SshKeyOutput) KeyName() pulumi.StringOutput { return o.ApplyT(func(v *SshKey) pulumi.StringOutput { return v.KeyName }).(pulumi.StringOutput) } diff --git a/sdk/go/ovh/provider.go b/sdk/go/ovh/provider.go index f4138e59..89f9ac8d 100644 --- a/sdk/go/ovh/provider.go +++ b/sdk/go/ovh/provider.go @@ -18,13 +18,17 @@ import ( type Provider struct { pulumi.ProviderResourceState - // The OVH API Application Key. + // The OVH API Application Key ApplicationKey pulumi.StringPtrOutput `pulumi:"applicationKey"` - // The OVH API Application Secret. + // The OVH API Application Secret ApplicationSecret pulumi.StringPtrOutput `pulumi:"applicationSecret"` - // The OVH API Consumer key. + // OAuth 2.0 application's ID + ClientId pulumi.StringPtrOutput `pulumi:"clientId"` + // OAuth 2.0 application's secret + ClientSecret pulumi.StringPtrOutput `pulumi:"clientSecret"` + // The OVH API Consumer Key ConsumerKey pulumi.StringPtrOutput `pulumi:"consumerKey"` - // The OVH API endpoint to target (ex: "ovh-eu"). + // The OVH API endpoint to target (ex: "ovh-eu") Endpoint pulumi.StringPtrOutput `pulumi:"endpoint"` } @@ -72,25 +76,33 @@ func NewProvider(ctx *pulumi.Context, } type providerArgs struct { - // The OVH API Application Key. + // The OVH API Application Key ApplicationKey *string `pulumi:"applicationKey"` - // The OVH API Application Secret. + // The OVH API Application Secret ApplicationSecret *string `pulumi:"applicationSecret"` - // The OVH API Consumer key. + // OAuth 2.0 application's ID + ClientId *string `pulumi:"clientId"` + // OAuth 2.0 application's secret + ClientSecret *string `pulumi:"clientSecret"` + // The OVH API Consumer Key ConsumerKey *string `pulumi:"consumerKey"` - // The OVH API endpoint to target (ex: "ovh-eu"). + // The OVH API endpoint to target (ex: "ovh-eu") Endpoint *string `pulumi:"endpoint"` } // The set of arguments for constructing a Provider resource. type ProviderArgs struct { - // The OVH API Application Key. + // The OVH API Application Key ApplicationKey pulumi.StringPtrInput - // The OVH API Application Secret. + // The OVH API Application Secret ApplicationSecret pulumi.StringPtrInput - // The OVH API Consumer key. + // OAuth 2.0 application's ID + ClientId pulumi.StringPtrInput + // OAuth 2.0 application's secret + ClientSecret pulumi.StringPtrInput + // The OVH API Consumer Key ConsumerKey pulumi.StringPtrInput - // The OVH API endpoint to target (ex: "ovh-eu"). + // The OVH API endpoint to target (ex: "ovh-eu") Endpoint pulumi.StringPtrInput } @@ -131,22 +143,32 @@ func (o ProviderOutput) ToProviderOutputWithContext(ctx context.Context) Provide return o } -// The OVH API Application Key. +// The OVH API Application Key func (o ProviderOutput) ApplicationKey() pulumi.StringPtrOutput { return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.ApplicationKey }).(pulumi.StringPtrOutput) } -// The OVH API Application Secret. +// The OVH API Application Secret func (o ProviderOutput) ApplicationSecret() pulumi.StringPtrOutput { return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.ApplicationSecret }).(pulumi.StringPtrOutput) } -// The OVH API Consumer key. +// OAuth 2.0 application's ID +func (o ProviderOutput) ClientId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.ClientId }).(pulumi.StringPtrOutput) +} + +// OAuth 2.0 application's secret +func (o ProviderOutput) ClientSecret() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.ClientSecret }).(pulumi.StringPtrOutput) +} + +// The OVH API Consumer Key func (o ProviderOutput) ConsumerKey() pulumi.StringPtrOutput { return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.ConsumerKey }).(pulumi.StringPtrOutput) } -// The OVH API endpoint to target (ex: "ovh-eu"). +// The OVH API endpoint to target (ex: "ovh-eu") func (o ProviderOutput) Endpoint() pulumi.StringPtrOutput { return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.Endpoint }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/ovh/vrack/dedicatedServer.go b/sdk/go/ovh/vrack/dedicatedServer.go index 6c3b9e28..99deed07 100644 --- a/sdk/go/ovh/vrack/dedicatedServer.go +++ b/sdk/go/ovh/vrack/dedicatedServer.go @@ -12,10 +12,10 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// > **NOTE:** The resource `Vrack.DedicatedServer` is DEPRECATED and will be removed in a future version. -// Use the resource `Vrack.DedicatedServerInterface` instead. +// Attach a legacy dedicated server to a vRack. // -// Attach a dedicated server to a VRack. +// > **NOTE:** The resource `Vrack.DedicatedServer` is intended to be used for legacy dedicated servers.
+// Dedicated servers that have configurable network interfaces MUST use the resource `Vrack.DedicatedServerInterface` instead. // // ## Example Usage // diff --git a/sdk/go/ovh/vrack/dedicatedServerInterface.go b/sdk/go/ovh/vrack/dedicatedServerInterface.go index 4d297bdc..289625cc 100644 --- a/sdk/go/ovh/vrack/dedicatedServerInterface.go +++ b/sdk/go/ovh/vrack/dedicatedServerInterface.go @@ -12,7 +12,10 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Attach a Dedicated Server Network Interface to a VRack. +// Attach a Dedicated Server Network Interface to a vRack. +// +// > **NOTE:** The resource `Vrack.DedicatedServerInterface` is intended to be used for dedicated servers that have configurable network interfaces.
+// Legacy Dedicated servers that do not have configurable network interfaces MUST use the resource `Vrack.DedicatedServer` instead. // // ## Example Usage // diff --git a/sdk/nodejs/cloudproject/database.ts b/sdk/nodejs/cloudproject/database.ts index b59544e2..8ce60cc0 100644 --- a/sdk/nodejs/cloudproject/database.ts +++ b/sdk/nodejs/cloudproject/database.ts @@ -42,6 +42,7 @@ import * as utilities from "../utilities"; * version: "3.4", * plan: "business", * kafkaRestApi: true, + * kafkaSchemaRegistry: true, * nodes: [ * { * region: "DE", @@ -300,6 +301,10 @@ export class Database extends pulumi.CustomResource { * Defines whether the REST API is enabled on a kafka cluster */ public readonly kafkaRestApi!: pulumi.Output; + /** + * Defines whether the schema registry is enabled on a Kafka cluster + */ + public readonly kafkaSchemaRegistry!: pulumi.Output; /** * Time on which maintenances can start every day. */ @@ -364,6 +369,7 @@ export class Database extends pulumi.CustomResource { resourceInputs["flavor"] = state ? state.flavor : undefined; resourceInputs["ipRestrictions"] = state ? state.ipRestrictions : undefined; resourceInputs["kafkaRestApi"] = state ? state.kafkaRestApi : undefined; + resourceInputs["kafkaSchemaRegistry"] = state ? state.kafkaSchemaRegistry : undefined; resourceInputs["maintenanceTime"] = state ? state.maintenanceTime : undefined; resourceInputs["networkType"] = state ? state.networkType : undefined; resourceInputs["nodes"] = state ? state.nodes : undefined; @@ -401,6 +407,7 @@ export class Database extends pulumi.CustomResource { resourceInputs["flavor"] = args ? args.flavor : undefined; resourceInputs["ipRestrictions"] = args ? args.ipRestrictions : undefined; resourceInputs["kafkaRestApi"] = args ? args.kafkaRestApi : undefined; + resourceInputs["kafkaSchemaRegistry"] = args ? args.kafkaSchemaRegistry : undefined; resourceInputs["nodes"] = args ? args.nodes : undefined; resourceInputs["opensearchAclsEnabled"] = args ? args.opensearchAclsEnabled : undefined; resourceInputs["plan"] = args ? args.plan : undefined; @@ -473,6 +480,10 @@ export interface DatabaseState { * Defines whether the REST API is enabled on a kafka cluster */ kafkaRestApi?: pulumi.Input; + /** + * Defines whether the schema registry is enabled on a Kafka cluster + */ + kafkaSchemaRegistry?: pulumi.Input; /** * Time on which maintenances can start every day. */ @@ -556,6 +567,10 @@ export interface DatabaseArgs { * Defines whether the REST API is enabled on a kafka cluster */ kafkaRestApi?: pulumi.Input; + /** + * Defines whether the schema registry is enabled on a Kafka cluster + */ + kafkaSchemaRegistry?: pulumi.Input; /** * List of nodes object. * Multi region cluster are not yet available, all node should be identical. diff --git a/sdk/nodejs/cloudproject/getKubeOidc.ts b/sdk/nodejs/cloudproject/getKubeOidc.ts index d24ec4e5..f7d71afb 100644 --- a/sdk/nodejs/cloudproject/getKubeOidc.ts +++ b/sdk/nodejs/cloudproject/getKubeOidc.ts @@ -60,12 +60,33 @@ export interface GetKubeOidcArgs { * The id of the managed kubernetes cluster. */ kubeId: string; + /** + * Content of the certificate for the CA, in base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + */ oidcCaContent?: string; + /** + * Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + */ oidcGroupsClaims?: string[]; + /** + * Prefix prepended to group claims to prevent clashes with existing names (such as system: groups). For example, the value oidc: will create group names like oidc:engineering and oidc:infra. + */ oidcGroupsPrefix?: string; + /** + * Array of key=value pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." + */ oidcRequiredClaims?: string[]; + /** + * Array of signing algorithms accepted. Default is \"RS256\". + */ oidcSigningAlgs?: string[]; + /** + * JWT claim to use as the user name. By default sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + */ oidcUsernameClaim?: string; + /** + * Prefix prepended to username claims to prevent clashes with existing names (such as system: users). For example, the value oidc: will create usernames like oidc:jane.doe. If this field isn't set and `oidcUsernameClaim` is a value other than email the prefix defaults to ( Issuer URL )# where ( Issuer URL ) is the value of oidcIssuerUrl. The value - can be used to disable all prefixing. + */ oidcUsernamePrefix?: string; /** * The id of the public cloud project. If omitted, @@ -94,12 +115,33 @@ export interface GetKubeOidcResult { * See Argument Reference above. */ readonly kubeId: string; + /** + * Content of the certificate for the CA, in base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + */ readonly oidcCaContent?: string; + /** + * Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + */ readonly oidcGroupsClaims?: string[]; + /** + * Prefix prepended to group claims to prevent clashes with existing names (such as system: groups). For example, the value oidc: will create group names like oidc:engineering and oidc:infra. + */ readonly oidcGroupsPrefix?: string; + /** + * Array of key=value pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." + */ readonly oidcRequiredClaims?: string[]; + /** + * Array of signing algorithms accepted. Default is \"RS256\". + */ readonly oidcSigningAlgs?: string[]; + /** + * JWT claim to use as the user name. By default sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + */ readonly oidcUsernameClaim?: string; + /** + * Prefix prepended to username claims to prevent clashes with existing names (such as system: users). For example, the value oidc: will create usernames like oidc:jane.doe. If this field isn't set and `oidcUsernameClaim` is a value other than email the prefix defaults to ( Issuer URL )# where ( Issuer URL ) is the value of oidcIssuerUrl. The value - can be used to disable all prefixing. + */ readonly oidcUsernamePrefix?: string; /** * See Argument Reference above. @@ -148,12 +190,33 @@ export interface GetKubeOidcOutputArgs { * The id of the managed kubernetes cluster. */ kubeId: pulumi.Input; + /** + * Content of the certificate for the CA, in base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + */ oidcCaContent?: pulumi.Input; + /** + * Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + */ oidcGroupsClaims?: pulumi.Input[]>; + /** + * Prefix prepended to group claims to prevent clashes with existing names (such as system: groups). For example, the value oidc: will create group names like oidc:engineering and oidc:infra. + */ oidcGroupsPrefix?: pulumi.Input; + /** + * Array of key=value pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." + */ oidcRequiredClaims?: pulumi.Input[]>; + /** + * Array of signing algorithms accepted. Default is \"RS256\". + */ oidcSigningAlgs?: pulumi.Input[]>; + /** + * JWT claim to use as the user name. By default sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + */ oidcUsernameClaim?: pulumi.Input; + /** + * Prefix prepended to username claims to prevent clashes with existing names (such as system: users). For example, the value oidc: will create usernames like oidc:jane.doe. If this field isn't set and `oidcUsernameClaim` is a value other than email the prefix defaults to ( Issuer URL )# where ( Issuer URL ) is the value of oidcIssuerUrl. The value - can be used to disable all prefixing. + */ oidcUsernamePrefix?: pulumi.Input; /** * The id of the public cloud project. If omitted, diff --git a/sdk/nodejs/cloudproject/kubeOidc.ts b/sdk/nodejs/cloudproject/kubeOidc.ts index 9a28ba97..3432a23c 100644 --- a/sdk/nodejs/cloudproject/kubeOidc.ts +++ b/sdk/nodejs/cloudproject/kubeOidc.ts @@ -80,12 +80,33 @@ export class KubeOidc extends pulumi.CustomResource { * The ID of the managed kubernetes cluster. **Changing this value recreates the resource.** */ public readonly kubeId!: pulumi.Output; + /** + * Content of the certificate for the CA, in Base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + */ public readonly oidcCaContent!: pulumi.Output; + /** + * Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + */ public readonly oidcGroupsClaims!: pulumi.Output; + /** + * Prefix prepended to group claims to prevent clashes with existing names (such as `system:groups`). For example, the value `oidc:` will create group names like `oidc:engineering` and `oidc:infra`. + */ public readonly oidcGroupsPrefix!: pulumi.Output; + /** + * Array of `key=value` pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." + */ public readonly oidcRequiredClaims!: pulumi.Output; + /** + * Array of signing algorithms accepted. Default is `RS256`. + */ public readonly oidcSigningAlgs!: pulumi.Output; + /** + * JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + */ public readonly oidcUsernameClaim!: pulumi.Output; + /** + * Prefix prepended to username claims to prevent clashes with existing names (such as `system:users`). For example, the value `oidc:` will create usernames like `oidc:jane.doe`. If this field isn't set and `oidcUsernameClaim` is a value other than email the prefix defaults to `issuerUrl` where `issuerUrl` is the value of `issuer_url.` The value - can be used to disable all prefixing. + */ public readonly oidcUsernamePrefix!: pulumi.Output; /** * The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.** @@ -163,12 +184,33 @@ export interface KubeOidcState { * The ID of the managed kubernetes cluster. **Changing this value recreates the resource.** */ kubeId?: pulumi.Input; + /** + * Content of the certificate for the CA, in Base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + */ oidcCaContent?: pulumi.Input; + /** + * Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + */ oidcGroupsClaims?: pulumi.Input[]>; + /** + * Prefix prepended to group claims to prevent clashes with existing names (such as `system:groups`). For example, the value `oidc:` will create group names like `oidc:engineering` and `oidc:infra`. + */ oidcGroupsPrefix?: pulumi.Input; + /** + * Array of `key=value` pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." + */ oidcRequiredClaims?: pulumi.Input[]>; + /** + * Array of signing algorithms accepted. Default is `RS256`. + */ oidcSigningAlgs?: pulumi.Input[]>; + /** + * JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + */ oidcUsernameClaim?: pulumi.Input; + /** + * Prefix prepended to username claims to prevent clashes with existing names (such as `system:users`). For example, the value `oidc:` will create usernames like `oidc:jane.doe`. If this field isn't set and `oidcUsernameClaim` is a value other than email the prefix defaults to `issuerUrl` where `issuerUrl` is the value of `issuer_url.` The value - can be used to disable all prefixing. + */ oidcUsernamePrefix?: pulumi.Input; /** * The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.** @@ -192,12 +234,33 @@ export interface KubeOidcArgs { * The ID of the managed kubernetes cluster. **Changing this value recreates the resource.** */ kubeId: pulumi.Input; + /** + * Content of the certificate for the CA, in Base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + */ oidcCaContent?: pulumi.Input; + /** + * Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + */ oidcGroupsClaims?: pulumi.Input[]>; + /** + * Prefix prepended to group claims to prevent clashes with existing names (such as `system:groups`). For example, the value `oidc:` will create group names like `oidc:engineering` and `oidc:infra`. + */ oidcGroupsPrefix?: pulumi.Input; + /** + * Array of `key=value` pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." + */ oidcRequiredClaims?: pulumi.Input[]>; + /** + * Array of signing algorithms accepted. Default is `RS256`. + */ oidcSigningAlgs?: pulumi.Input[]>; + /** + * JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + */ oidcUsernameClaim?: pulumi.Input; + /** + * Prefix prepended to username claims to prevent clashes with existing names (such as `system:users`). For example, the value `oidc:` will create usernames like `oidc:jane.doe`. If this field isn't set and `oidcUsernameClaim` is a value other than email the prefix defaults to `issuerUrl` where `issuerUrl` is the value of `issuer_url.` The value - can be used to disable all prefixing. + */ oidcUsernamePrefix?: pulumi.Input; /** * The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.** diff --git a/sdk/nodejs/cloudprojectdatabase/getDatabase.ts b/sdk/nodejs/cloudprojectdatabase/getDatabase.ts index ff254ca0..8cb65cd7 100644 --- a/sdk/nodejs/cloudprojectdatabase/getDatabase.ts +++ b/sdk/nodejs/cloudprojectdatabase/getDatabase.ts @@ -113,6 +113,10 @@ export interface GetDatabaseResult { * Defines whether the REST API is enabled on a kafka cluster. */ readonly kafkaRestApi: boolean; + /** + * Defines whether the schema registry is enabled on a Kafka cluster + */ + readonly kafkaSchemaRegistry: boolean; /** * Time on which maintenances can start every day. */ diff --git a/sdk/nodejs/cloudprojectdatabase/m3dbUser.ts b/sdk/nodejs/cloudprojectdatabase/m3dbUser.ts index a78b66e6..231c87c3 100644 --- a/sdk/nodejs/cloudprojectdatabase/m3dbUser.ts +++ b/sdk/nodejs/cloudprojectdatabase/m3dbUser.ts @@ -56,7 +56,7 @@ export class M3DbUser extends pulumi.CustomResource { */ public readonly group!: pulumi.Output; /** - * Name of the user. A user named "avnadmin" is map with already created admin user instead of create a new user. + * Name of the user. A user named "avnadmin" is mapped with already created admin user instead of creating a new user. */ public readonly name!: pulumi.Output; /** @@ -139,7 +139,7 @@ export interface M3DbUserState { */ group?: pulumi.Input; /** - * Name of the user. A user named "avnadmin" is map with already created admin user instead of create a new user. + * Name of the user. A user named "avnadmin" is mapped with already created admin user instead of creating a new user. */ name?: pulumi.Input; /** @@ -174,7 +174,7 @@ export interface M3DbUserArgs { */ group?: pulumi.Input; /** - * Name of the user. A user named "avnadmin" is map with already created admin user instead of create a new user. + * Name of the user. A user named "avnadmin" is mapped with already created admin user instead of creating a new user. */ name?: pulumi.Input; /** diff --git a/sdk/nodejs/cloudprojectdatabase/mongoDbUser.ts b/sdk/nodejs/cloudprojectdatabase/mongoDbUser.ts index ea540b20..720cf989 100644 --- a/sdk/nodejs/cloudprojectdatabase/mongoDbUser.ts +++ b/sdk/nodejs/cloudprojectdatabase/mongoDbUser.ts @@ -52,7 +52,7 @@ export class MongoDbUser extends pulumi.CustomResource { */ public /*out*/ readonly createdAt!: pulumi.Output; /** - * Name of the user. + * Name of the user. A user named "admin" is mapped with already created admin@admin user instead of creating a new user. */ public readonly name!: pulumi.Output; /** @@ -153,7 +153,7 @@ export interface MongoDbUserState { */ createdAt?: pulumi.Input; /** - * Name of the user. + * Name of the user. A user named "admin" is mapped with already created admin@admin user instead of creating a new user. */ name?: pulumi.Input; /** @@ -206,7 +206,7 @@ export interface MongoDbUserArgs { */ clusterId: pulumi.Input; /** - * Name of the user. + * Name of the user. A user named "admin" is mapped with already created admin@admin user instead of creating a new user. */ name?: pulumi.Input; /** diff --git a/sdk/nodejs/cloudprojectdatabase/opensearchUser.ts b/sdk/nodejs/cloudprojectdatabase/opensearchUser.ts index bb74878f..6cc8f7c3 100644 --- a/sdk/nodejs/cloudprojectdatabase/opensearchUser.ts +++ b/sdk/nodejs/cloudprojectdatabase/opensearchUser.ts @@ -58,7 +58,7 @@ export class OpensearchUser extends pulumi.CustomResource { */ public /*out*/ readonly createdAt!: pulumi.Output; /** - * Username affected by this acl. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + * Username affected by this acl. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. */ public readonly name!: pulumi.Output; /** @@ -141,7 +141,7 @@ export interface OpensearchUserState { */ createdAt?: pulumi.Input; /** - * Username affected by this acl. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + * Username affected by this acl. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. */ name?: pulumi.Input; /** @@ -176,7 +176,7 @@ export interface OpensearchUserArgs { */ clusterId: pulumi.Input; /** - * Username affected by this acl. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + * Username affected by this acl. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. */ name?: pulumi.Input; /** diff --git a/sdk/nodejs/cloudprojectdatabase/postgresSqlUser.ts b/sdk/nodejs/cloudprojectdatabase/postgresSqlUser.ts index 85a529ff..beae1348 100644 --- a/sdk/nodejs/cloudprojectdatabase/postgresSqlUser.ts +++ b/sdk/nodejs/cloudprojectdatabase/postgresSqlUser.ts @@ -52,7 +52,7 @@ export class PostgresSqlUser extends pulumi.CustomResource { */ public /*out*/ readonly createdAt!: pulumi.Output; /** - * Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + * Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. */ public readonly name!: pulumi.Output; /** @@ -136,7 +136,7 @@ export interface PostgresSqlUserState { */ createdAt?: pulumi.Input; /** - * Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + * Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. */ name?: pulumi.Input; /** @@ -172,7 +172,7 @@ export interface PostgresSqlUserArgs { */ clusterId: pulumi.Input; /** - * Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + * Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. */ name?: pulumi.Input; /** diff --git a/sdk/nodejs/cloudprojectdatabase/redisUser.ts b/sdk/nodejs/cloudprojectdatabase/redisUser.ts index 89b5e0ab..59038840 100644 --- a/sdk/nodejs/cloudprojectdatabase/redisUser.ts +++ b/sdk/nodejs/cloudprojectdatabase/redisUser.ts @@ -68,7 +68,7 @@ export class RedisUser extends pulumi.CustomResource { */ public readonly keys!: pulumi.Output; /** - * Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + * Name of the user. */ public readonly name!: pulumi.Output; /** @@ -169,7 +169,7 @@ export interface RedisUserState { */ keys?: pulumi.Input[]>; /** - * Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + * Name of the user. */ name?: pulumi.Input; /** @@ -216,7 +216,7 @@ export interface RedisUserArgs { */ keys?: pulumi.Input[]>; /** - * Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + * Name of the user. */ name?: pulumi.Input; /** diff --git a/sdk/nodejs/cloudprojectdatabase/user.ts b/sdk/nodejs/cloudprojectdatabase/user.ts index 0130042a..a8143da2 100644 --- a/sdk/nodejs/cloudprojectdatabase/user.ts +++ b/sdk/nodejs/cloudprojectdatabase/user.ts @@ -57,7 +57,7 @@ export class User extends pulumi.CustomResource { */ public readonly engine!: pulumi.Output; /** - * Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. The "Grafana" engine only allows the "avnadmin" mapping. + * Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. The "Grafana" engine only allows the "avnadmin" mapping. */ public readonly name!: pulumi.Output; /** @@ -144,7 +144,7 @@ export interface UserState { */ engine?: pulumi.Input; /** - * Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. The "Grafana" engine only allows the "avnadmin" mapping. + * Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. The "Grafana" engine only allows the "avnadmin" mapping. */ name?: pulumi.Input; /** @@ -180,7 +180,7 @@ export interface UserArgs { */ engine: pulumi.Input; /** - * Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. The "Grafana" engine only allows the "avnadmin" mapping. + * Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. The "Grafana" engine only allows the "avnadmin" mapping. */ name?: pulumi.Input; /** diff --git a/sdk/nodejs/config/vars.ts b/sdk/nodejs/config/vars.ts index 057ac75f..1545f8b1 100644 --- a/sdk/nodejs/config/vars.ts +++ b/sdk/nodejs/config/vars.ts @@ -8,7 +8,7 @@ declare var exports: any; const __config = new pulumi.Config("ovh"); /** - * The OVH API Application Key. + * The OVH API Application Key */ export declare const applicationKey: string | undefined; Object.defineProperty(exports, "applicationKey", { @@ -19,7 +19,7 @@ Object.defineProperty(exports, "applicationKey", { }); /** - * The OVH API Application Secret. + * The OVH API Application Secret */ export declare const applicationSecret: string | undefined; Object.defineProperty(exports, "applicationSecret", { @@ -30,7 +30,29 @@ Object.defineProperty(exports, "applicationSecret", { }); /** - * The OVH API Consumer key. + * OAuth 2.0 application's ID + */ +export declare const clientId: string | undefined; +Object.defineProperty(exports, "clientId", { + get() { + return __config.get("clientId"); + }, + enumerable: true, +}); + +/** + * OAuth 2.0 application's secret + */ +export declare const clientSecret: string | undefined; +Object.defineProperty(exports, "clientSecret", { + get() { + return __config.get("clientSecret"); + }, + enumerable: true, +}); + +/** + * The OVH API Consumer Key */ export declare const consumerKey: string | undefined; Object.defineProperty(exports, "consumerKey", { @@ -41,7 +63,7 @@ Object.defineProperty(exports, "consumerKey", { }); /** - * The OVH API endpoint to target (ex: "ovh-eu"). + * The OVH API endpoint to target (ex: "ovh-eu") */ export declare const endpoint: string | undefined; Object.defineProperty(exports, "endpoint", { diff --git a/sdk/nodejs/dedicated/getServerSpecificationsNetwork.ts b/sdk/nodejs/dedicated/getServerSpecificationsNetwork.ts new file mode 100644 index 00000000..1f00a9d0 --- /dev/null +++ b/sdk/nodejs/dedicated/getServerSpecificationsNetwork.ts @@ -0,0 +1,113 @@ +// *** 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 network 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.getServerSpecificationsNetwork({ + * serviceName: "myserver", + * }); + * ``` + * + */ +export function getServerSpecificationsNetwork(args: GetServerSpecificationsNetworkArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("ovh:Dedicated/getServerSpecificationsNetwork:getServerSpecificationsNetwork", { + "serviceName": args.serviceName, + }, opts); +} + +/** + * A collection of arguments for invoking getServerSpecificationsNetwork. + */ +export interface GetServerSpecificationsNetworkArgs { + /** + * The internal name of your dedicated server. + */ + serviceName: string; +} + +/** + * A collection of values returned by getServerSpecificationsNetwork. + */ +export interface GetServerSpecificationsNetworkResult { + /** + * vrack bandwidth limitation + */ + readonly bandwidth: outputs.Dedicated.GetServerSpecificationsNetworkBandwidth; + /** + * Network connection flow rate + */ + readonly connectionVal: outputs.Dedicated.GetServerSpecificationsNetworkConnectionVal; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + /** + * OLA details + */ + readonly ola: outputs.Dedicated.GetServerSpecificationsNetworkOla; + /** + * Routing details + */ + readonly routing: outputs.Dedicated.GetServerSpecificationsNetworkRouting; + readonly serviceName: string; + /** + * Switching details + */ + readonly switching: outputs.Dedicated.GetServerSpecificationsNetworkSwitching; + /** + * Traffic details + */ + readonly traffic: outputs.Dedicated.GetServerSpecificationsNetworkTraffic; + /** + * VMAC information for this dedicated server + */ + readonly vmac: outputs.Dedicated.GetServerSpecificationsNetworkVmac; + /** + * vRack details + */ + readonly vrack: outputs.Dedicated.GetServerSpecificationsNetworkVrack; +} +/** + * Use this data source to get the network 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.getServerSpecificationsNetwork({ + * serviceName: "myserver", + * }); + * ``` + * + */ +export function getServerSpecificationsNetworkOutput(args: GetServerSpecificationsNetworkOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getServerSpecificationsNetwork(a, opts)) +} + +/** + * A collection of arguments for invoking getServerSpecificationsNetwork. + */ +export interface GetServerSpecificationsNetworkOutputArgs { + /** + * 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 824c391d..ffb63d65 100644 --- a/sdk/nodejs/dedicated/index.ts +++ b/sdk/nodejs/dedicated/index.ts @@ -30,6 +30,11 @@ export const getServerSpecificationsHardware: typeof import("./getServerSpecific export const getServerSpecificationsHardwareOutput: typeof import("./getServerSpecificationsHardware").getServerSpecificationsHardwareOutput = null as any; utilities.lazyLoad(exports, ["getServerSpecificationsHardware","getServerSpecificationsHardwareOutput"], () => require("./getServerSpecificationsHardware")); +export { GetServerSpecificationsNetworkArgs, GetServerSpecificationsNetworkResult, GetServerSpecificationsNetworkOutputArgs } from "./getServerSpecificationsNetwork"; +export const getServerSpecificationsNetwork: typeof import("./getServerSpecificationsNetwork").getServerSpecificationsNetwork = null as any; +export const getServerSpecificationsNetworkOutput: typeof import("./getServerSpecificationsNetwork").getServerSpecificationsNetworkOutput = null as any; +utilities.lazyLoad(exports, ["getServerSpecificationsNetwork","getServerSpecificationsNetworkOutput"], () => require("./getServerSpecificationsNetwork")); + 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/dedicated/serverInstallTask.ts b/sdk/nodejs/dedicated/serverInstallTask.ts index 09f8dac6..517c0bc0 100644 --- a/sdk/nodejs/dedicated/serverInstallTask.ts +++ b/sdk/nodejs/dedicated/serverInstallTask.ts @@ -9,6 +9,7 @@ import * as utilities from "../utilities"; /** * ## Example Usage * + * Using a custom template based on an OVHCloud template * * ```typescript * import * as pulumi from "@pulumi/pulumi"; @@ -19,16 +20,12 @@ import * as utilities from "../utilities"; * serviceName: "nsxxxxxxx.ip-xx-xx-xx.eu", * bootType: "rescue", * }); - * const key = new ovh.me.SshKey("key", { - * keyName: "mykey", - * key: "ssh-ed25519 AAAAC3...", - * }); * const debian = new ovh.me.InstallationTemplate("debian", { - * baseTemplateName: "debian11_64", - * templateName: "mydebian11", - * defaultLanguage: "en", + * baseTemplateName: "debian12_64", + * templateName: "mydebian12", * customization: { - * sshKeyName: key.keyName, + * postInstallationScriptLink: "http://test", + * postInstallationScriptReturn: "ok", * }, * }); * const serverInstall = new ovh.dedicated.ServerInstallTask("serverInstall", { @@ -38,6 +35,113 @@ import * as utilities from "../utilities"; * details: { * customHostname: "mytest", * }, + * userMetadatas: [{ + * key: "sshKey", + * value: "ssh-ed25519 AAAAC3...", + * }], + * }); + * ``` + * + * + * Using a BringYourOwnLinux (BYOLinux) template (with userMetadata) + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as ovh from "@ovhcloud/pulumi-ovh"; + * import * as ovh from "@pulumi/ovh"; + * + * const server = ovh.getServer({ + * serviceName: "nsxxxxxxx.ip-xx-xx-xx.eu", + * }); + * const rescue = ovh.Dedicated.getServerBoots({ + * serviceName: "nsxxxxxxx.ip-xx-xx-xx.eu", + * bootType: "rescue", + * }); + * const serverInstall = new ovh.dedicated.ServerInstallTask("serverInstall", { + * serviceName: server.then(server => server.serviceName), + * templateName: "byolinux_64", + * bootidOnDestroy: rescue.then(rescue => rescue.results?.[0]), + * details: { + * customHostname: "mytest", + * }, + * userMetadatas: [ + * { + * key: "imageURL", + * value: "https://myimage.qcow2", + * }, + * { + * key: "imageType", + * value: "qcow2", + * }, + * { + * key: "httpHeaders0Key", + * value: "Authorization", + * }, + * { + * key: "httpHeaders0Value", + * value: "Basic bG9naW46xxxxxxx=", + * }, + * { + * key: "imageChecksumType", + * value: "sha512", + * }, + * { + * key: "imageCheckSum", + * value: "047122c9ff4d2a69512212104b06c678f5a9cdb22b75467353613ff87ccd03b57b38967e56d810e61366f9d22d6bd39ac0addf4e00a4c6445112a2416af8f225", + * }, + * { + * key: "configDriveUserData", + * value: `#cloud-config + * ssh_authorized_keys: + * - ${data.ovh_me_ssh_key.mykey.key} + * + * users: + * - name: patient0 + * sudo: ALL=(ALL) NOPASSWD:ALL + * groups: users, sudo + * shell: /bin/bash + * lock_passwd: false + * ssh_authorized_keys: + * - ${data.ovh_me_ssh_key.mykey.key} + * disable_root: false + * packages: + * - vim + * - tree + * final_message: The system is finally up, after $UPTIME seconds + * `, + * }, + * ], + * }); + * ``` + * + * + * Using a Microsoft Windows server OVHcloud template with a specific language + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as ovh from "@ovhcloud/pulumi-ovh"; + * import * as ovh from "@pulumi/ovh"; + * + * const server = ovh.getServer({ + * serviceName: "nsxxxxxxx.ip-xx-xx-xx.eu", + * }); + * const rescue = ovh.Dedicated.getServerBoots({ + * serviceName: "nsxxxxxxx.ip-xx-xx-xx.eu", + * bootType: "rescue", + * }); + * const serverInstall = new ovh.dedicated.ServerInstallTask("serverInstall", { + * serviceName: server.then(server => server.serviceName), + * templateName: "win2019-std_64", + * bootidOnDestroy: rescue.then(rescue => rescue.results?.[0]), + * details: { + * customHostname: "mytest", + * }, + * userMetadatas: [{ + * key: "language", + * value: "fr-fr", + * }], * }); * ``` * @@ -124,6 +228,10 @@ export class ServerInstallTask extends pulumi.CustomResource { * Template name. */ public readonly templateName!: pulumi.Output; + /** + * see `userMetadata` block below. + */ + public readonly userMetadatas!: pulumi.Output; /** * Create a ServerInstallTask resource with the given unique name, arguments, and options. @@ -149,6 +257,7 @@ export class ServerInstallTask extends pulumi.CustomResource { resourceInputs["startDate"] = state ? state.startDate : undefined; resourceInputs["status"] = state ? state.status : undefined; resourceInputs["templateName"] = state ? state.templateName : undefined; + resourceInputs["userMetadatas"] = state ? state.userMetadatas : undefined; } else { const args = argsOrState as ServerInstallTaskArgs | undefined; if ((!args || args.serviceName === undefined) && !opts.urn) { @@ -162,6 +271,7 @@ export class ServerInstallTask extends pulumi.CustomResource { resourceInputs["partitionSchemeName"] = args ? args.partitionSchemeName : undefined; resourceInputs["serviceName"] = args ? args.serviceName : undefined; resourceInputs["templateName"] = args ? args.templateName : undefined; + resourceInputs["userMetadatas"] = args ? args.userMetadatas : undefined; resourceInputs["comment"] = undefined /*out*/; resourceInputs["doneDate"] = undefined /*out*/; resourceInputs["function"] = undefined /*out*/; @@ -222,6 +332,10 @@ export interface ServerInstallTaskState { * Template name. */ templateName?: pulumi.Input; + /** + * see `userMetadata` block below. + */ + userMetadatas?: pulumi.Input[]>; } /** @@ -248,4 +362,8 @@ export interface ServerInstallTaskArgs { * Template name. */ templateName: pulumi.Input; + /** + * see `userMetadata` block below. + */ + userMetadatas?: pulumi.Input[]>; } diff --git a/sdk/nodejs/me/getInstallationTemplate.ts b/sdk/nodejs/me/getInstallationTemplate.ts index d5fd89bb..80e825c3 100644 --- a/sdk/nodejs/me/getInstallationTemplate.ts +++ b/sdk/nodejs/me/getInstallationTemplate.ts @@ -45,13 +45,9 @@ export interface GetInstallationTemplateArgs { */ export interface GetInstallationTemplateResult { /** - * List of all language available for this template. + * List of all language available for this template. Deprecated, will be removed in next release. */ readonly availableLanguages: string[]; - /** - * This distribution is new and, although tested and functional, may still display odd behaviour. - */ - readonly beta: boolean; /** * This template bit format (32 or 64). */ @@ -62,13 +58,11 @@ export interface GetInstallationTemplateResult { readonly category: string; readonly customizations: outputs.Me.GetInstallationTemplateCustomization[]; /** - * The default language of this template. + * The default language of this template. Deprecated, will be removed in next release. + * + * @deprecated This field will be removed from the API, please use `userMetadata` instead. */ readonly defaultLanguage: string; - /** - * is this distribution deprecated. - */ - readonly deprecated: boolean; /** * information about this template. */ @@ -93,16 +87,8 @@ export interface GetInstallationTemplateResult { * The provider-assigned unique ID for this managed resource. */ readonly id: string; - /** - * Date of last modification of the base image. - */ - readonly lastModification: string; readonly lvmReady: boolean; readonly partitionSchemes: outputs.Me.GetInstallationTemplatePartitionScheme[]; - /** - * This distribution supports the microsoft SQL server. - */ - readonly supportsSqlServer: boolean; readonly templateName: string; } /** diff --git a/sdk/nodejs/me/getSshKey.ts b/sdk/nodejs/me/getSshKey.ts index e9b355cf..e3f63283 100644 --- a/sdk/nodejs/me/getSshKey.ts +++ b/sdk/nodejs/me/getSshKey.ts @@ -5,6 +5,8 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; /** + * > __NOTE__ This data source will be removed in next release. + * * Use this data source to retrieve information about an SSH key. * * ## Example Usage @@ -61,6 +63,8 @@ export interface GetSshKeyResult { readonly keyName: string; } /** + * > __NOTE__ This data source will be removed in next release. + * * Use this data source to retrieve information about an SSH key. * * ## Example Usage diff --git a/sdk/nodejs/me/installationTemplate.ts b/sdk/nodejs/me/installationTemplate.ts index 8cc098ea..93bb7307 100644 --- a/sdk/nodejs/me/installationTemplate.ts +++ b/sdk/nodejs/me/installationTemplate.ts @@ -9,21 +9,6 @@ import * as utilities from "../utilities"; /** * Use this resource to create a custom installation template available for dedicated servers. * - * ## Example Usage - * - * - * ```typescript - * import * as pulumi from "@pulumi/pulumi"; - * import * as ovh from "@ovhcloud/pulumi-ovh"; - * - * const mytemplate = new ovh.me.InstallationTemplate("mytemplate", { - * baseTemplateName: "centos7_64", - * defaultLanguage: "en", - * templateName: "mytemplate", - * }); - * ``` - * - * * ## Import * * Custom installation template available for dedicated servers can be imported using the `base_template_name`, `template_name` of the cluster, separated by "/" E.g., @@ -63,34 +48,30 @@ export class InstallationTemplate extends pulumi.CustomResource { } /** - * List of all language available for this template. + * Deprecated. */ public /*out*/ readonly availableLanguages!: pulumi.Output; /** * The name of an existing installation template, choose one among the list given by `ovh.getInstallationTemplates` datasource. */ public readonly baseTemplateName!: pulumi.Output; - /** - * This distribution is new and, although tested and functional, may still display odd behaviour. - */ - public /*out*/ readonly beta!: pulumi.Output; /** * This template bit format (32 or 64). */ public /*out*/ readonly bitFormat!: pulumi.Output; /** * Category of this template (informative only). (basic, customer, hosting, other, readyToUse, virtualisation). + * + * @deprecated This field is deprecated and will be removed in a future release. */ public /*out*/ readonly category!: pulumi.Output; public readonly customization!: pulumi.Output; /** - * The default language of this template. - */ - public readonly defaultLanguage!: pulumi.Output; - /** - * is this distribution deprecated. + * Deprecated, use language in userMetadata instead. + * + * @deprecated This field is deprecated and will be removed in a future release. */ - public /*out*/ readonly deprecated!: pulumi.Output; + public readonly defaultLanguage!: pulumi.Output; /** * information about this template. */ @@ -111,10 +92,6 @@ export class InstallationTemplate extends pulumi.CustomResource { * This distribution supports hardware raid configuration through the OVHcloud API. */ public /*out*/ readonly hardRaidConfiguration!: pulumi.Output; - /** - * Date of last modification of the base image. - */ - public /*out*/ readonly lastModification!: pulumi.Output; /** * This distribution supports Logical Volumes (Linux LVM) */ @@ -123,10 +100,6 @@ export class InstallationTemplate extends pulumi.CustomResource { * Remove default partition schemes at creation. */ public readonly removeDefaultPartitionSchemes!: pulumi.Output; - /** - * This distribution supports the microsoft SQL server. - */ - public /*out*/ readonly supportsSqlServer!: pulumi.Output; /** * This template name. */ @@ -147,30 +120,23 @@ export class InstallationTemplate extends pulumi.CustomResource { const state = argsOrState as InstallationTemplateState | undefined; resourceInputs["availableLanguages"] = state ? state.availableLanguages : undefined; resourceInputs["baseTemplateName"] = state ? state.baseTemplateName : undefined; - resourceInputs["beta"] = state ? state.beta : undefined; resourceInputs["bitFormat"] = state ? state.bitFormat : undefined; resourceInputs["category"] = state ? state.category : undefined; resourceInputs["customization"] = state ? state.customization : undefined; resourceInputs["defaultLanguage"] = state ? state.defaultLanguage : undefined; - resourceInputs["deprecated"] = state ? state.deprecated : undefined; resourceInputs["description"] = state ? state.description : undefined; resourceInputs["distribution"] = state ? state.distribution : undefined; resourceInputs["family"] = state ? state.family : undefined; resourceInputs["filesystems"] = state ? state.filesystems : undefined; resourceInputs["hardRaidConfiguration"] = state ? state.hardRaidConfiguration : undefined; - resourceInputs["lastModification"] = state ? state.lastModification : undefined; resourceInputs["lvmReady"] = state ? state.lvmReady : undefined; resourceInputs["removeDefaultPartitionSchemes"] = state ? state.removeDefaultPartitionSchemes : undefined; - resourceInputs["supportsSqlServer"] = state ? state.supportsSqlServer : undefined; resourceInputs["templateName"] = state ? state.templateName : undefined; } else { const args = argsOrState as InstallationTemplateArgs | undefined; if ((!args || args.baseTemplateName === undefined) && !opts.urn) { throw new Error("Missing required property 'baseTemplateName'"); } - if ((!args || args.defaultLanguage === undefined) && !opts.urn) { - throw new Error("Missing required property 'defaultLanguage'"); - } if ((!args || args.templateName === undefined) && !opts.urn) { throw new Error("Missing required property 'templateName'"); } @@ -180,18 +146,14 @@ export class InstallationTemplate extends pulumi.CustomResource { resourceInputs["removeDefaultPartitionSchemes"] = args ? args.removeDefaultPartitionSchemes : undefined; resourceInputs["templateName"] = args ? args.templateName : undefined; resourceInputs["availableLanguages"] = undefined /*out*/; - resourceInputs["beta"] = undefined /*out*/; resourceInputs["bitFormat"] = undefined /*out*/; resourceInputs["category"] = undefined /*out*/; - resourceInputs["deprecated"] = undefined /*out*/; resourceInputs["description"] = undefined /*out*/; resourceInputs["distribution"] = undefined /*out*/; resourceInputs["family"] = undefined /*out*/; resourceInputs["filesystems"] = undefined /*out*/; resourceInputs["hardRaidConfiguration"] = undefined /*out*/; - resourceInputs["lastModification"] = undefined /*out*/; resourceInputs["lvmReady"] = undefined /*out*/; - resourceInputs["supportsSqlServer"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); super(InstallationTemplate.__pulumiType, name, resourceInputs, opts); @@ -203,34 +165,30 @@ export class InstallationTemplate extends pulumi.CustomResource { */ export interface InstallationTemplateState { /** - * List of all language available for this template. + * Deprecated. */ availableLanguages?: pulumi.Input[]>; /** * The name of an existing installation template, choose one among the list given by `ovh.getInstallationTemplates` datasource. */ baseTemplateName?: pulumi.Input; - /** - * This distribution is new and, although tested and functional, may still display odd behaviour. - */ - beta?: pulumi.Input; /** * This template bit format (32 or 64). */ bitFormat?: pulumi.Input; /** * Category of this template (informative only). (basic, customer, hosting, other, readyToUse, virtualisation). + * + * @deprecated This field is deprecated and will be removed in a future release. */ category?: pulumi.Input; customization?: pulumi.Input; /** - * The default language of this template. + * Deprecated, use language in userMetadata instead. + * + * @deprecated This field is deprecated and will be removed in a future release. */ defaultLanguage?: pulumi.Input; - /** - * is this distribution deprecated. - */ - deprecated?: pulumi.Input; /** * information about this template. */ @@ -251,10 +209,6 @@ export interface InstallationTemplateState { * This distribution supports hardware raid configuration through the OVHcloud API. */ hardRaidConfiguration?: pulumi.Input; - /** - * Date of last modification of the base image. - */ - lastModification?: pulumi.Input; /** * This distribution supports Logical Volumes (Linux LVM) */ @@ -263,10 +217,6 @@ export interface InstallationTemplateState { * Remove default partition schemes at creation. */ removeDefaultPartitionSchemes?: pulumi.Input; - /** - * This distribution supports the microsoft SQL server. - */ - supportsSqlServer?: pulumi.Input; /** * This template name. */ @@ -283,9 +233,11 @@ export interface InstallationTemplateArgs { baseTemplateName: pulumi.Input; customization?: pulumi.Input; /** - * The default language of this template. + * Deprecated, use language in userMetadata instead. + * + * @deprecated This field is deprecated and will be removed in a future release. */ - defaultLanguage: pulumi.Input; + defaultLanguage?: pulumi.Input; /** * Remove default partition schemes at creation. */ diff --git a/sdk/nodejs/me/installationTemplatePartitionScheme.ts b/sdk/nodejs/me/installationTemplatePartitionScheme.ts index cd5cbc60..36c202df 100644 --- a/sdk/nodejs/me/installationTemplatePartitionScheme.ts +++ b/sdk/nodejs/me/installationTemplatePartitionScheme.ts @@ -15,9 +15,8 @@ import * as utilities from "../utilities"; * import * as ovh from "@ovhcloud/pulumi-ovh"; * * const mytemplate = new ovh.me.InstallationTemplate("mytemplate", { - * baseTemplateName: "centos7_64", + * baseTemplateName: "debian12_64", * templateName: "mytemplate", - * defaultLanguage: "fr", * }); * const scheme = new ovh.me.InstallationTemplatePartitionScheme("scheme", { * templateName: mytemplate.templateName, diff --git a/sdk/nodejs/me/installationTemplatePartitionSchemeHardwareRaid.ts b/sdk/nodejs/me/installationTemplatePartitionSchemeHardwareRaid.ts index e9fe6b07..47b86e3e 100644 --- a/sdk/nodejs/me/installationTemplatePartitionSchemeHardwareRaid.ts +++ b/sdk/nodejs/me/installationTemplatePartitionSchemeHardwareRaid.ts @@ -15,9 +15,8 @@ import * as utilities from "../utilities"; * import * as ovh from "@ovhcloud/pulumi-ovh"; * * const mytemplate = new ovh.me.InstallationTemplate("mytemplate", { - * baseTemplateName: "centos7_64", + * baseTemplateName: "debian12_64", * templateName: "mytemplate", - * defaultLanguage: "fr", * }); * const scheme = new ovh.me.InstallationTemplatePartitionScheme("scheme", { * templateName: mytemplate.templateName, diff --git a/sdk/nodejs/me/installationTemplatePartitionSchemePartition.ts b/sdk/nodejs/me/installationTemplatePartitionSchemePartition.ts index 88378c62..1e3e41aa 100644 --- a/sdk/nodejs/me/installationTemplatePartitionSchemePartition.ts +++ b/sdk/nodejs/me/installationTemplatePartitionSchemePartition.ts @@ -15,9 +15,8 @@ import * as utilities from "../utilities"; * import * as ovh from "@ovhcloud/pulumi-ovh"; * * const mytemplate = new ovh.me.InstallationTemplate("mytemplate", { - * baseTemplateName: "centos7_64", + * baseTemplateName: "debian12_64", * templateName: "mytemplate", - * defaultLanguage: "fr", * }); * const scheme = new ovh.me.InstallationTemplatePartitionScheme("scheme", { * templateName: mytemplate.templateName, diff --git a/sdk/nodejs/me/sshKey.ts b/sdk/nodejs/me/sshKey.ts index 3c613c51..bb980fc4 100644 --- a/sdk/nodejs/me/sshKey.ts +++ b/sdk/nodejs/me/sshKey.ts @@ -7,6 +7,8 @@ import * as utilities from "../utilities"; /** * ## Example Usage * + * > __NOTE__ This resource will be removed in next release, please use userMetada instead. + * * * ```typescript * import * as pulumi from "@pulumi/pulumi"; @@ -49,14 +51,20 @@ export class SshKey extends pulumi.CustomResource { /** * True when this public SSH key is used for rescue mode and reinstallations. + * + * @deprecated use userMetada instead */ public readonly default!: pulumi.Output; /** * The content of the public key in the form "ssh-algo content", e.g. "ssh-ed25519 AAAAC3...". + * + * @deprecated use userMetada instead */ public readonly key!: pulumi.Output; /** * The friendly name of this SSH key. + * + * @deprecated use userMetada instead */ public readonly keyName!: pulumi.Output; @@ -99,14 +107,20 @@ export class SshKey extends pulumi.CustomResource { export interface SshKeyState { /** * True when this public SSH key is used for rescue mode and reinstallations. + * + * @deprecated use userMetada instead */ default?: pulumi.Input; /** * The content of the public key in the form "ssh-algo content", e.g. "ssh-ed25519 AAAAC3...". + * + * @deprecated use userMetada instead */ key?: pulumi.Input; /** * The friendly name of this SSH key. + * + * @deprecated use userMetada instead */ keyName?: pulumi.Input; } @@ -117,14 +131,20 @@ export interface SshKeyState { export interface SshKeyArgs { /** * True when this public SSH key is used for rescue mode and reinstallations. + * + * @deprecated use userMetada instead */ default?: pulumi.Input; /** * The content of the public key in the form "ssh-algo content", e.g. "ssh-ed25519 AAAAC3...". + * + * @deprecated use userMetada instead */ key: pulumi.Input; /** * The friendly name of this SSH key. + * + * @deprecated use userMetada instead */ keyName: pulumi.Input; } diff --git a/sdk/nodejs/provider.ts b/sdk/nodejs/provider.ts index 81cd68af..dcf4dd2f 100644 --- a/sdk/nodejs/provider.ts +++ b/sdk/nodejs/provider.ts @@ -26,19 +26,27 @@ export class Provider extends pulumi.ProviderResource { } /** - * The OVH API Application Key. + * The OVH API Application Key */ public readonly applicationKey!: pulumi.Output; /** - * The OVH API Application Secret. + * The OVH API Application Secret */ public readonly applicationSecret!: pulumi.Output; /** - * The OVH API Consumer key. + * OAuth 2.0 application's ID + */ + public readonly clientId!: pulumi.Output; + /** + * OAuth 2.0 application's secret + */ + public readonly clientSecret!: pulumi.Output; + /** + * The OVH API Consumer Key */ public readonly consumerKey!: pulumi.Output; /** - * The OVH API endpoint to target (ex: "ovh-eu"). + * The OVH API endpoint to target (ex: "ovh-eu") */ public readonly endpoint!: pulumi.Output; @@ -55,6 +63,8 @@ export class Provider extends pulumi.ProviderResource { { resourceInputs["applicationKey"] = (args ? args.applicationKey : undefined) ?? utilities.getEnv("OVH_APPLICATION_KEY"); resourceInputs["applicationSecret"] = (args?.applicationSecret ? pulumi.secret(args.applicationSecret) : undefined) ?? utilities.getEnv("OVH_APPLICATION_SECRET"); + resourceInputs["clientId"] = args ? args.clientId : undefined; + resourceInputs["clientSecret"] = args ? args.clientSecret : undefined; resourceInputs["consumerKey"] = (args ? args.consumerKey : undefined) ?? utilities.getEnv("OVH_CONSUMER_KEY"); resourceInputs["endpoint"] = (args ? args.endpoint : undefined) ?? utilities.getEnv("OVH_ENDPOINT"); } @@ -70,19 +80,27 @@ export class Provider extends pulumi.ProviderResource { */ export interface ProviderArgs { /** - * The OVH API Application Key. + * The OVH API Application Key */ applicationKey?: pulumi.Input; /** - * The OVH API Application Secret. + * The OVH API Application Secret */ applicationSecret?: pulumi.Input; /** - * The OVH API Consumer key. + * OAuth 2.0 application's ID + */ + clientId?: pulumi.Input; + /** + * OAuth 2.0 application's secret + */ + clientSecret?: pulumi.Input; + /** + * The OVH API Consumer Key */ consumerKey?: pulumi.Input; /** - * The OVH API endpoint to target (ex: "ovh-eu"). + * The OVH API endpoint to target (ex: "ovh-eu") */ endpoint?: pulumi.Input; } diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 271302a7..4081a336 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -124,6 +124,7 @@ "dedicated/getNasHA.ts", "dedicated/getServerBoots.ts", "dedicated/getServerSpecificationsHardware.ts", + "dedicated/getServerSpecificationsNetwork.ts", "dedicated/index.ts", "dedicated/nasHAPartition.ts", "dedicated/nasHAPartitionAccess.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index 240c8295..b1733880 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -751,15 +751,13 @@ export namespace Dedicated { */ diskGroupId?: pulumi.Input; /** - * set to true to install sql server (Windows template only). - */ - installSqlServer?: pulumi.Input; - /** - * language. + * Deprecated, will be removed in next release. + * + * @deprecated This field is deprecated and will be removed in a future release */ language?: pulumi.Input; /** - * set to true to disable RAID. + * Set to true to disable RAID. */ noRaid?: pulumi.Input; /** @@ -775,13 +773,30 @@ export namespace Dedicated { */ softRaidDevices?: pulumi.Input; /** - * Name of the ssh key that should be installed. Password login will be disabled. + * Deprecated, will be removed in next release. + * + * The `userMetadata` block supports many arguments, here is a non-exhaustive list depending on the OS: + * + * -[see OS questions](https://help.ovhcloud.com/csm/en-dedicated-servers-api-os-installation?id=kb_article_view&sysparm_article=KB0061951#os-questions) + * + * -[see api](https://eu.api.ovh.com/console-preview/?section=%2Fdedicated%2FinstallationTemplate&branch=v1#get-/dedicated/installationTemplate/-templateName-) + * + * -[see documentation](https://help.ovhcloud.com/csm/en-ie-dedicated-servers-api-os-installation?id=kb_article_view&sysparm_article=KB0061950#create-an-os-installation-task) to get more information + * + * @deprecated This field is deprecated and will be removed in a future release */ - sshKeyName?: pulumi.Input; + useSpla?: pulumi.Input; + } + + export interface ServerInstallTaskUserMetadata { /** - * set to true to use SPLA. + * The key for the user_metadata */ - useSpla?: pulumi.Input; + key: pulumi.Input; + /** + * The value for the user_metadata + */ + value: pulumi.Input; } export interface ServerNetworkingInterface { @@ -1433,13 +1448,9 @@ export namespace Me { */ postInstallationScriptReturn?: pulumi.Input; /** - * Rating. + * Deprecated. * - * @deprecated field is not used anymore - */ - rating?: pulumi.Input; - /** - * Name of the ssh key that should be installed. Password login will be disabled. + * @deprecated This field is deprecated and will be removed in a future release. */ sshKeyName?: pulumi.Input; } diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index e2ee26e7..28a8ef15 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -1286,6 +1286,208 @@ export namespace Dedicated { value: number; } + export interface GetServerSpecificationsNetworkBandwidth { + /** + * Bandwidth limitation Internet to OVH + */ + internetToOvh: outputs.Dedicated.GetServerSpecificationsNetworkBandwidthInternetToOvh; + /** + * Bandwidth limitation OVH to Internet + */ + ovhToInternet: outputs.Dedicated.GetServerSpecificationsNetworkBandwidthOvhToInternet; + /** + * Bandwidth limitation OVH to OVH + */ + ovhToOvh: outputs.Dedicated.GetServerSpecificationsNetworkBandwidthOvhToOvh; + /** + * Bandwidth offer type (included┃standard) + */ + type: string; + } + + export interface GetServerSpecificationsNetworkBandwidthInternetToOvh { + unit: string; + value: number; + } + + export interface GetServerSpecificationsNetworkBandwidthOvhToInternet { + unit: string; + value: number; + } + + export interface GetServerSpecificationsNetworkBandwidthOvhToOvh { + unit: string; + value: number; + } + + export interface GetServerSpecificationsNetworkConnectionVal { + unit: string; + value: number; + } + + export interface GetServerSpecificationsNetworkOla { + /** + * Is the OLA feature available + */ + available: boolean; + /** + * Supported modes + */ + availableModes: outputs.Dedicated.GetServerSpecificationsNetworkOlaAvailableMode[]; + /** + * Supported modes (DEPRECATED) + */ + supportedModes: string[]; + } + + export interface GetServerSpecificationsNetworkOlaAvailableMode { + /** + * Whether it is the default configuration of the server + */ + default: boolean; + /** + * Interface layout + */ + interfaces: outputs.Dedicated.GetServerSpecificationsNetworkOlaAvailableModeInterface[]; + /** + * Switch name + */ + name: string; + } + + export interface GetServerSpecificationsNetworkOlaAvailableModeInterface { + /** + * Interface aggregation status + */ + aggregation: boolean; + /** + * Interface count + */ + count: number; + /** + * Bandwidth offer type (included┃standard) + */ + type: string; + } + + export interface GetServerSpecificationsNetworkRouting { + /** + * Ipv4 routing details + */ + ipv4: outputs.Dedicated.GetServerSpecificationsNetworkRoutingIpv4; + /** + * Ipv6 routing details + */ + ipv6: outputs.Dedicated.GetServerSpecificationsNetworkRoutingIpv6; + } + + export interface GetServerSpecificationsNetworkRoutingIpv4 { + /** + * Server gateway + */ + gateway: string; + /** + * Server main IP + */ + ip: string; + /** + * Server network + */ + network: string; + } + + export interface GetServerSpecificationsNetworkRoutingIpv6 { + /** + * Server gateway + */ + gateway: string; + /** + * Server main IP + */ + ip: string; + /** + * Server network + */ + network: string; + } + + export interface GetServerSpecificationsNetworkSwitching { + /** + * Switch name + */ + name: string; + } + + export interface GetServerSpecificationsNetworkTraffic { + /** + * Monthly input traffic quota allowed + */ + inputQuotaSize: outputs.Dedicated.GetServerSpecificationsNetworkTrafficInputQuotaSize; + /** + * Monthly input traffic consumed this month + */ + inputQuotaUsed: outputs.Dedicated.GetServerSpecificationsNetworkTrafficInputQuotaUsed; + /** + * Whether bandwidth is throttleted for being over quota + */ + isThrottled: boolean; + /** + * Monthly output traffic quota allowed + */ + outputQuotaSize: outputs.Dedicated.GetServerSpecificationsNetworkTrafficOutputQuotaSize; + /** + * Monthly output traffic consumed this month + */ + outputQuotaUsed: outputs.Dedicated.GetServerSpecificationsNetworkTrafficOutputQuotaUsed; + /** + * Next reset quota date for traffic counter + */ + resetQuotaDate: string; + } + + export interface GetServerSpecificationsNetworkTrafficInputQuotaSize { + unit: string; + value: number; + } + + export interface GetServerSpecificationsNetworkTrafficInputQuotaUsed { + unit: string; + value: number; + } + + export interface GetServerSpecificationsNetworkTrafficOutputQuotaSize { + unit: string; + value: number; + } + + export interface GetServerSpecificationsNetworkTrafficOutputQuotaUsed { + unit: string; + value: number; + } + + export interface GetServerSpecificationsNetworkVmac { + /** + * Whether server is compatible vmac + */ + supported: boolean; + } + + export interface GetServerSpecificationsNetworkVrack { + /** + * vrack bandwidth limitation + */ + bandwidth: outputs.Dedicated.GetServerSpecificationsNetworkVrackBandwidth; + /** + * Bandwidth offer type (included┃standard) + */ + type: string; + } + + export interface GetServerSpecificationsNetworkVrackBandwidth { + unit: string; + value: number; + } + export interface ServerInstallTaskDetails { /** * Set up the server using the provided hostname instead of the default hostname. @@ -1296,15 +1498,13 @@ export namespace Dedicated { */ diskGroupId?: number; /** - * set to true to install sql server (Windows template only). - */ - installSqlServer?: boolean; - /** - * language. + * Deprecated, will be removed in next release. + * + * @deprecated This field is deprecated and will be removed in a future release */ language?: string; /** - * set to true to disable RAID. + * Set to true to disable RAID. */ noRaid?: boolean; /** @@ -1320,13 +1520,30 @@ export namespace Dedicated { */ softRaidDevices?: number; /** - * Name of the ssh key that should be installed. Password login will be disabled. + * Deprecated, will be removed in next release. + * + * The `userMetadata` block supports many arguments, here is a non-exhaustive list depending on the OS: + * + * -[see OS questions](https://help.ovhcloud.com/csm/en-dedicated-servers-api-os-installation?id=kb_article_view&sysparm_article=KB0061951#os-questions) + * + * -[see api](https://eu.api.ovh.com/console-preview/?section=%2Fdedicated%2FinstallationTemplate&branch=v1#get-/dedicated/installationTemplate/-templateName-) + * + * -[see documentation](https://help.ovhcloud.com/csm/en-ie-dedicated-servers-api-os-installation?id=kb_article_view&sysparm_article=KB0061950#create-an-os-installation-task) to get more information + * + * @deprecated This field is deprecated and will be removed in a future release */ - sshKeyName?: string; + useSpla?: boolean; + } + + export interface ServerInstallTaskUserMetadata { /** - * set to true to use SPLA. + * The key for the user_metadata */ - useSpla?: boolean; + key: string; + /** + * The value for the user_metadata + */ + value: string; } export interface ServerNetworkingInterface { @@ -2042,13 +2259,9 @@ export namespace Me { */ postInstallationScriptReturn: string; /** - * (DEPRECATED) Rating. + * Name of the ssh key that should be installed. Password login will be disabled. Deprecated, will be removed in next release, use userMetada instead. * - * @deprecated field is not used anymore - */ - rating: number; - /** - * Name of the ssh key that should be installed. Password login will be disabled. + * @deprecated This field will be removed from the API, please use `userMetadata` instead. */ sshKeyName: string; } @@ -2141,13 +2354,9 @@ export namespace Me { */ postInstallationScriptReturn?: string; /** - * Rating. + * Deprecated. * - * @deprecated field is not used anymore - */ - rating?: number; - /** - * Name of the ssh key that should be installed. Password login will be disabled. + * @deprecated This field is deprecated and will be removed in a future release. */ sshKeyName?: string; } diff --git a/sdk/nodejs/vrack/dedicatedServer.ts b/sdk/nodejs/vrack/dedicatedServer.ts index 77b165fd..3c402b95 100644 --- a/sdk/nodejs/vrack/dedicatedServer.ts +++ b/sdk/nodejs/vrack/dedicatedServer.ts @@ -5,10 +5,10 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; /** - * > **NOTE:** The resource `ovh.Vrack.DedicatedServer` is DEPRECATED and will be removed in a future version. - * Use the resource `ovh.Vrack.DedicatedServerInterface` instead. + * Attach a legacy dedicated server to a vRack. * - * Attach a dedicated server to a VRack. + * > **NOTE:** The resource `ovh.Vrack.DedicatedServer` is intended to be used for legacy dedicated servers.
+ * Dedicated servers that have configurable network interfaces MUST use the resource `ovh.Vrack.DedicatedServerInterface` instead. * * ## Example Usage * diff --git a/sdk/nodejs/vrack/dedicatedServerInterface.ts b/sdk/nodejs/vrack/dedicatedServerInterface.ts index f1d1446d..159aff96 100644 --- a/sdk/nodejs/vrack/dedicatedServerInterface.ts +++ b/sdk/nodejs/vrack/dedicatedServerInterface.ts @@ -5,7 +5,10 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; /** - * Attach a Dedicated Server Network Interface to a VRack. + * Attach a Dedicated Server Network Interface to a vRack. + * + * > **NOTE:** The resource `ovh.Vrack.DedicatedServerInterface` is intended to be used for dedicated servers that have configurable network interfaces.
+ * Legacy Dedicated servers that do not have configurable network interfaces MUST use the resource `ovh.Vrack.DedicatedServer` instead. * * ## Example Usage * diff --git a/sdk/python/pulumi_ovh/cloudproject/database.py b/sdk/python/pulumi_ovh/cloudproject/database.py index 8ff67516..793cd45b 100644 --- a/sdk/python/pulumi_ovh/cloudproject/database.py +++ b/sdk/python/pulumi_ovh/cloudproject/database.py @@ -29,6 +29,7 @@ def __init__(__self__, *, disk_size: Optional[pulumi.Input[int]] = None, ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseIpRestrictionArgs']]]] = None, kafka_rest_api: Optional[pulumi.Input[bool]] = None, + kafka_schema_registry: Optional[pulumi.Input[bool]] = None, opensearch_acls_enabled: Optional[pulumi.Input[bool]] = None): """ The set of arguments for constructing a Database resource. @@ -54,6 +55,7 @@ def __init__(__self__, *, :param pulumi.Input[int] disk_size: The disk size (in GB) of the database service. :param pulumi.Input[Sequence[pulumi.Input['DatabaseIpRestrictionArgs']]] ip_restrictions: IP Blocks authorized to access to the cluster. :param pulumi.Input[bool] kafka_rest_api: Defines whether the REST API is enabled on a kafka cluster + :param pulumi.Input[bool] kafka_schema_registry: Defines whether the schema registry is enabled on a Kafka cluster :param pulumi.Input[bool] opensearch_acls_enabled: Defines whether the ACLs are enabled on an OpenSearch cluster """ pulumi.set(__self__, "engine", engine) @@ -76,6 +78,8 @@ def __init__(__self__, *, pulumi.set(__self__, "ip_restrictions", ip_restrictions) if kafka_rest_api is not None: pulumi.set(__self__, "kafka_rest_api", kafka_rest_api) + if kafka_schema_registry is not None: + pulumi.set(__self__, "kafka_schema_registry", kafka_schema_registry) if opensearch_acls_enabled is not None: pulumi.set(__self__, "opensearch_acls_enabled", opensearch_acls_enabled) @@ -244,6 +248,18 @@ def kafka_rest_api(self) -> Optional[pulumi.Input[bool]]: def kafka_rest_api(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "kafka_rest_api", value) + @property + @pulumi.getter(name="kafkaSchemaRegistry") + def kafka_schema_registry(self) -> Optional[pulumi.Input[bool]]: + """ + Defines whether the schema registry is enabled on a Kafka cluster + """ + return pulumi.get(self, "kafka_schema_registry") + + @kafka_schema_registry.setter + def kafka_schema_registry(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "kafka_schema_registry", value) + @property @pulumi.getter(name="opensearchAclsEnabled") def opensearch_acls_enabled(self) -> Optional[pulumi.Input[bool]]: @@ -272,6 +288,7 @@ def __init__(__self__, *, flavor: Optional[pulumi.Input[str]] = None, ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseIpRestrictionArgs']]]] = None, kafka_rest_api: Optional[pulumi.Input[bool]] = None, + kafka_schema_registry: Optional[pulumi.Input[bool]] = None, maintenance_time: Optional[pulumi.Input[str]] = None, network_type: Optional[pulumi.Input[str]] = None, nodes: Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseNodeArgs']]]] = None, @@ -297,6 +314,7 @@ def __init__(__self__, *, You can find the list of flavor names: https://www.ovhcloud.com/fr/public-cloud/prices/ :param pulumi.Input[Sequence[pulumi.Input['DatabaseIpRestrictionArgs']]] ip_restrictions: IP Blocks authorized to access to the cluster. :param pulumi.Input[bool] kafka_rest_api: Defines whether the REST API is enabled on a kafka cluster + :param pulumi.Input[bool] kafka_schema_registry: Defines whether the schema registry is enabled on a Kafka cluster :param pulumi.Input[str] maintenance_time: Time on which maintenances can start every day. :param pulumi.Input[str] network_type: Type of network of the cluster. :param pulumi.Input[Sequence[pulumi.Input['DatabaseNodeArgs']]] nodes: List of nodes object. @@ -336,6 +354,8 @@ def __init__(__self__, *, pulumi.set(__self__, "ip_restrictions", ip_restrictions) if kafka_rest_api is not None: pulumi.set(__self__, "kafka_rest_api", kafka_rest_api) + if kafka_schema_registry is not None: + pulumi.set(__self__, "kafka_schema_registry", kafka_schema_registry) if maintenance_time is not None: pulumi.set(__self__, "maintenance_time", maintenance_time) if network_type is not None: @@ -500,6 +520,18 @@ def kafka_rest_api(self) -> Optional[pulumi.Input[bool]]: def kafka_rest_api(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "kafka_rest_api", value) + @property + @pulumi.getter(name="kafkaSchemaRegistry") + def kafka_schema_registry(self) -> Optional[pulumi.Input[bool]]: + """ + Defines whether the schema registry is enabled on a Kafka cluster + """ + return pulumi.get(self, "kafka_schema_registry") + + @kafka_schema_registry.setter + def kafka_schema_registry(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "kafka_schema_registry", value) + @property @pulumi.getter(name="maintenanceTime") def maintenance_time(self) -> Optional[pulumi.Input[str]]: @@ -617,6 +649,7 @@ def __init__(__self__, flavor: Optional[pulumi.Input[str]] = None, ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseIpRestrictionArgs']]]]] = None, kafka_rest_api: Optional[pulumi.Input[bool]] = None, + kafka_schema_registry: Optional[pulumi.Input[bool]] = None, nodes: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseNodeArgs']]]]] = None, opensearch_acls_enabled: Optional[pulumi.Input[bool]] = None, plan: Optional[pulumi.Input[str]] = None, @@ -658,6 +691,7 @@ def __init__(__self__, version="3.4", plan="business", kafka_rest_api=True, + kafka_schema_registry=True, nodes=[ ovh.cloud_project.DatabaseNodeArgs( region="DE", @@ -841,6 +875,7 @@ def __init__(__self__, You can find the list of flavor names: https://www.ovhcloud.com/fr/public-cloud/prices/ :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseIpRestrictionArgs']]]] ip_restrictions: IP Blocks authorized to access to the cluster. :param pulumi.Input[bool] kafka_rest_api: Defines whether the REST API is enabled on a kafka cluster + :param pulumi.Input[bool] kafka_schema_registry: Defines whether the schema registry is enabled on a Kafka cluster :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseNodeArgs']]]] nodes: List of nodes object. Multi region cluster are not yet available, all node should be identical. :param pulumi.Input[bool] opensearch_acls_enabled: Defines whether the ACLs are enabled on an OpenSearch cluster @@ -894,6 +929,7 @@ def __init__(__self__, version="3.4", plan="business", kafka_rest_api=True, + kafka_schema_registry=True, nodes=[ ovh.cloud_project.DatabaseNodeArgs( region="DE", @@ -1087,6 +1123,7 @@ def _internal_init(__self__, flavor: Optional[pulumi.Input[str]] = None, ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseIpRestrictionArgs']]]]] = None, kafka_rest_api: Optional[pulumi.Input[bool]] = None, + kafka_schema_registry: Optional[pulumi.Input[bool]] = None, nodes: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseNodeArgs']]]]] = None, opensearch_acls_enabled: Optional[pulumi.Input[bool]] = None, plan: Optional[pulumi.Input[str]] = None, @@ -1114,6 +1151,7 @@ def _internal_init(__self__, __props__.__dict__["flavor"] = flavor __props__.__dict__["ip_restrictions"] = ip_restrictions __props__.__dict__["kafka_rest_api"] = kafka_rest_api + __props__.__dict__["kafka_schema_registry"] = kafka_schema_registry if nodes is None and not opts.urn: raise TypeError("Missing required property 'nodes'") __props__.__dict__["nodes"] = nodes @@ -1155,6 +1193,7 @@ def get(resource_name: str, flavor: Optional[pulumi.Input[str]] = None, ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseIpRestrictionArgs']]]]] = None, kafka_rest_api: Optional[pulumi.Input[bool]] = None, + kafka_schema_registry: Optional[pulumi.Input[bool]] = None, maintenance_time: Optional[pulumi.Input[str]] = None, network_type: Optional[pulumi.Input[str]] = None, nodes: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseNodeArgs']]]]] = None, @@ -1185,6 +1224,7 @@ def get(resource_name: str, You can find the list of flavor names: https://www.ovhcloud.com/fr/public-cloud/prices/ :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseIpRestrictionArgs']]]] ip_restrictions: IP Blocks authorized to access to the cluster. :param pulumi.Input[bool] kafka_rest_api: Defines whether the REST API is enabled on a kafka cluster + :param pulumi.Input[bool] kafka_schema_registry: Defines whether the schema registry is enabled on a Kafka cluster :param pulumi.Input[str] maintenance_time: Time on which maintenances can start every day. :param pulumi.Input[str] network_type: Type of network of the cluster. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseNodeArgs']]]] nodes: List of nodes object. @@ -1216,6 +1256,7 @@ def get(resource_name: str, __props__.__dict__["flavor"] = flavor __props__.__dict__["ip_restrictions"] = ip_restrictions __props__.__dict__["kafka_rest_api"] = kafka_rest_api + __props__.__dict__["kafka_schema_registry"] = kafka_schema_registry __props__.__dict__["maintenance_time"] = maintenance_time __props__.__dict__["network_type"] = network_type __props__.__dict__["nodes"] = nodes @@ -1325,6 +1366,14 @@ def kafka_rest_api(self) -> pulumi.Output[Optional[bool]]: """ return pulumi.get(self, "kafka_rest_api") + @property + @pulumi.getter(name="kafkaSchemaRegistry") + def kafka_schema_registry(self) -> pulumi.Output[Optional[bool]]: + """ + Defines whether the schema registry is enabled on a Kafka cluster + """ + return pulumi.get(self, "kafka_schema_registry") + @property @pulumi.getter(name="maintenanceTime") def maintenance_time(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_ovh/cloudproject/get_kube_oidc.py b/sdk/python/pulumi_ovh/cloudproject/get_kube_oidc.py index ed782217..d7442532 100644 --- a/sdk/python/pulumi_ovh/cloudproject/get_kube_oidc.py +++ b/sdk/python/pulumi_ovh/cloudproject/get_kube_oidc.py @@ -94,36 +94,57 @@ def kube_id(self) -> str: @property @pulumi.getter(name="oidcCaContent") def oidc_ca_content(self) -> Optional[str]: + """ + Content of the certificate for the CA, in base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + """ return pulumi.get(self, "oidc_ca_content") @property @pulumi.getter(name="oidcGroupsClaims") def oidc_groups_claims(self) -> Optional[Sequence[str]]: + """ + Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + """ return pulumi.get(self, "oidc_groups_claims") @property @pulumi.getter(name="oidcGroupsPrefix") def oidc_groups_prefix(self) -> Optional[str]: + """ + Prefix prepended to group claims to prevent clashes with existing names (such as system: groups). For example, the value oidc: will create group names like oidc:engineering and oidc:infra. + """ return pulumi.get(self, "oidc_groups_prefix") @property @pulumi.getter(name="oidcRequiredClaims") def oidc_required_claims(self) -> Optional[Sequence[str]]: + """ + Array of key=value pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." + """ return pulumi.get(self, "oidc_required_claims") @property @pulumi.getter(name="oidcSigningAlgs") def oidc_signing_algs(self) -> Optional[Sequence[str]]: + """ + Array of signing algorithms accepted. Default is \\"RS256\\". + """ return pulumi.get(self, "oidc_signing_algs") @property @pulumi.getter(name="oidcUsernameClaim") def oidc_username_claim(self) -> Optional[str]: + """ + JWT claim to use as the user name. By default sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + """ return pulumi.get(self, "oidc_username_claim") @property @pulumi.getter(name="oidcUsernamePrefix") def oidc_username_prefix(self) -> Optional[str]: + """ + Prefix prepended to username claims to prevent clashes with existing names (such as system: users). For example, the value oidc: will create usernames like oidc:jane.doe. If this field isn't set and `oidc_username_claim` is a value other than email the prefix defaults to ( Issuer URL )# where ( Issuer URL ) is the value of oidcIssuerUrl. The value - can be used to disable all prefixing. + """ return pulumi.get(self, "oidc_username_prefix") @property @@ -187,6 +208,13 @@ def get_kube_oidc(client_id: Optional[str] = None, :param str client_id: The OIDC client ID. :param str issuer_url: The OIDC issuer url. :param str kube_id: The id of the managed kubernetes cluster. + :param str oidc_ca_content: Content of the certificate for the CA, in base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + :param Sequence[str] oidc_groups_claims: Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + :param str oidc_groups_prefix: Prefix prepended to group claims to prevent clashes with existing names (such as system: groups). For example, the value oidc: will create group names like oidc:engineering and oidc:infra. + :param Sequence[str] oidc_required_claims: Array of key=value pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." + :param Sequence[str] oidc_signing_algs: Array of signing algorithms accepted. Default is \\"RS256\\". + :param str oidc_username_claim: JWT claim to use as the user name. By default sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + :param str oidc_username_prefix: Prefix prepended to username claims to prevent clashes with existing names (such as system: users). For example, the value oidc: will create usernames like oidc:jane.doe. If this field isn't set and `oidc_username_claim` is a value other than email the prefix defaults to ( Issuer URL )# where ( Issuer URL ) is the value of oidcIssuerUrl. The value - can be used to disable all prefixing. :param str service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. """ @@ -253,6 +281,13 @@ def get_kube_oidc_output(client_id: Optional[pulumi.Input[Optional[str]]] = None :param str client_id: The OIDC client ID. :param str issuer_url: The OIDC issuer url. :param str kube_id: The id of the managed kubernetes cluster. + :param str oidc_ca_content: Content of the certificate for the CA, in base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + :param Sequence[str] oidc_groups_claims: Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + :param str oidc_groups_prefix: Prefix prepended to group claims to prevent clashes with existing names (such as system: groups). For example, the value oidc: will create group names like oidc:engineering and oidc:infra. + :param Sequence[str] oidc_required_claims: Array of key=value pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." + :param Sequence[str] oidc_signing_algs: Array of signing algorithms accepted. Default is \\"RS256\\". + :param str oidc_username_claim: JWT claim to use as the user name. By default sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + :param str oidc_username_prefix: Prefix prepended to username claims to prevent clashes with existing names (such as system: users). For example, the value oidc: will create usernames like oidc:jane.doe. If this field isn't set and `oidc_username_claim` is a value other than email the prefix defaults to ( Issuer URL )# where ( Issuer URL ) is the value of oidcIssuerUrl. The value - can be used to disable all prefixing. :param str service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. """ diff --git a/sdk/python/pulumi_ovh/cloudproject/kube_oidc.py b/sdk/python/pulumi_ovh/cloudproject/kube_oidc.py index 32d6c0eb..26650bd5 100644 --- a/sdk/python/pulumi_ovh/cloudproject/kube_oidc.py +++ b/sdk/python/pulumi_ovh/cloudproject/kube_oidc.py @@ -31,6 +31,13 @@ def __init__(__self__, *, :param pulumi.Input[str] issuer_url: The OIDC issuer url. :param pulumi.Input[str] kube_id: The ID of the managed kubernetes cluster. **Changing this value recreates the resource.** :param pulumi.Input[str] service_name: The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.** + :param pulumi.Input[str] oidc_ca_content: Content of the certificate for the CA, in Base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + :param pulumi.Input[Sequence[pulumi.Input[str]]] oidc_groups_claims: Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + :param pulumi.Input[str] oidc_groups_prefix: Prefix prepended to group claims to prevent clashes with existing names (such as `system:groups`). For example, the value `oidc:` will create group names like `oidc:engineering` and `oidc:infra`. + :param pulumi.Input[Sequence[pulumi.Input[str]]] oidc_required_claims: Array of `key=value` pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." + :param pulumi.Input[Sequence[pulumi.Input[str]]] oidc_signing_algs: Array of signing algorithms accepted. Default is `RS256`. + :param pulumi.Input[str] oidc_username_claim: JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + :param pulumi.Input[str] oidc_username_prefix: Prefix prepended to username claims to prevent clashes with existing names (such as `system:users`). For example, the value `oidc:` will create usernames like `oidc:jane.doe`. If this field isn't set and `oidc_username_claim` is a value other than email the prefix defaults to `issuer_url` where `issuer_url` is the value of `issuer_url.` The value - can be used to disable all prefixing. """ pulumi.set(__self__, "client_id", client_id) pulumi.set(__self__, "issuer_url", issuer_url) @@ -102,6 +109,9 @@ def service_name(self, value: pulumi.Input[str]): @property @pulumi.getter(name="oidcCaContent") def oidc_ca_content(self) -> Optional[pulumi.Input[str]]: + """ + Content of the certificate for the CA, in Base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + """ return pulumi.get(self, "oidc_ca_content") @oidc_ca_content.setter @@ -111,6 +121,9 @@ def oidc_ca_content(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="oidcGroupsClaims") def oidc_groups_claims(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + """ return pulumi.get(self, "oidc_groups_claims") @oidc_groups_claims.setter @@ -120,6 +133,9 @@ def oidc_groups_claims(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[ @property @pulumi.getter(name="oidcGroupsPrefix") def oidc_groups_prefix(self) -> Optional[pulumi.Input[str]]: + """ + Prefix prepended to group claims to prevent clashes with existing names (such as `system:groups`). For example, the value `oidc:` will create group names like `oidc:engineering` and `oidc:infra`. + """ return pulumi.get(self, "oidc_groups_prefix") @oidc_groups_prefix.setter @@ -129,6 +145,9 @@ def oidc_groups_prefix(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="oidcRequiredClaims") def oidc_required_claims(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Array of `key=value` pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." + """ return pulumi.get(self, "oidc_required_claims") @oidc_required_claims.setter @@ -138,6 +157,9 @@ def oidc_required_claims(self, value: Optional[pulumi.Input[Sequence[pulumi.Inpu @property @pulumi.getter(name="oidcSigningAlgs") def oidc_signing_algs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Array of signing algorithms accepted. Default is `RS256`. + """ return pulumi.get(self, "oidc_signing_algs") @oidc_signing_algs.setter @@ -147,6 +169,9 @@ def oidc_signing_algs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[s @property @pulumi.getter(name="oidcUsernameClaim") def oidc_username_claim(self) -> Optional[pulumi.Input[str]]: + """ + JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + """ return pulumi.get(self, "oidc_username_claim") @oidc_username_claim.setter @@ -156,6 +181,9 @@ def oidc_username_claim(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="oidcUsernamePrefix") def oidc_username_prefix(self) -> Optional[pulumi.Input[str]]: + """ + Prefix prepended to username claims to prevent clashes with existing names (such as `system:users`). For example, the value `oidc:` will create usernames like `oidc:jane.doe`. If this field isn't set and `oidc_username_claim` is a value other than email the prefix defaults to `issuer_url` where `issuer_url` is the value of `issuer_url.` The value - can be used to disable all prefixing. + """ return pulumi.get(self, "oidc_username_prefix") @oidc_username_prefix.setter @@ -182,6 +210,13 @@ def __init__(__self__, *, :param pulumi.Input[str] client_id: The OIDC client ID. :param pulumi.Input[str] issuer_url: The OIDC issuer url. :param pulumi.Input[str] kube_id: The ID of the managed kubernetes cluster. **Changing this value recreates the resource.** + :param pulumi.Input[str] oidc_ca_content: Content of the certificate for the CA, in Base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + :param pulumi.Input[Sequence[pulumi.Input[str]]] oidc_groups_claims: Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + :param pulumi.Input[str] oidc_groups_prefix: Prefix prepended to group claims to prevent clashes with existing names (such as `system:groups`). For example, the value `oidc:` will create group names like `oidc:engineering` and `oidc:infra`. + :param pulumi.Input[Sequence[pulumi.Input[str]]] oidc_required_claims: Array of `key=value` pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." + :param pulumi.Input[Sequence[pulumi.Input[str]]] oidc_signing_algs: Array of signing algorithms accepted. Default is `RS256`. + :param pulumi.Input[str] oidc_username_claim: JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + :param pulumi.Input[str] oidc_username_prefix: Prefix prepended to username claims to prevent clashes with existing names (such as `system:users`). For example, the value `oidc:` will create usernames like `oidc:jane.doe`. If this field isn't set and `oidc_username_claim` is a value other than email the prefix defaults to `issuer_url` where `issuer_url` is the value of `issuer_url.` The value - can be used to disable all prefixing. :param pulumi.Input[str] service_name: The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.** """ if client_id is not None: @@ -246,6 +281,9 @@ def kube_id(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="oidcCaContent") def oidc_ca_content(self) -> Optional[pulumi.Input[str]]: + """ + Content of the certificate for the CA, in Base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + """ return pulumi.get(self, "oidc_ca_content") @oidc_ca_content.setter @@ -255,6 +293,9 @@ def oidc_ca_content(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="oidcGroupsClaims") def oidc_groups_claims(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + """ return pulumi.get(self, "oidc_groups_claims") @oidc_groups_claims.setter @@ -264,6 +305,9 @@ def oidc_groups_claims(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[ @property @pulumi.getter(name="oidcGroupsPrefix") def oidc_groups_prefix(self) -> Optional[pulumi.Input[str]]: + """ + Prefix prepended to group claims to prevent clashes with existing names (such as `system:groups`). For example, the value `oidc:` will create group names like `oidc:engineering` and `oidc:infra`. + """ return pulumi.get(self, "oidc_groups_prefix") @oidc_groups_prefix.setter @@ -273,6 +317,9 @@ def oidc_groups_prefix(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="oidcRequiredClaims") def oidc_required_claims(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Array of `key=value` pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." + """ return pulumi.get(self, "oidc_required_claims") @oidc_required_claims.setter @@ -282,6 +329,9 @@ def oidc_required_claims(self, value: Optional[pulumi.Input[Sequence[pulumi.Inpu @property @pulumi.getter(name="oidcSigningAlgs") def oidc_signing_algs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Array of signing algorithms accepted. Default is `RS256`. + """ return pulumi.get(self, "oidc_signing_algs") @oidc_signing_algs.setter @@ -291,6 +341,9 @@ def oidc_signing_algs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[s @property @pulumi.getter(name="oidcUsernameClaim") def oidc_username_claim(self) -> Optional[pulumi.Input[str]]: + """ + JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + """ return pulumi.get(self, "oidc_username_claim") @oidc_username_claim.setter @@ -300,6 +353,9 @@ def oidc_username_claim(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="oidcUsernamePrefix") def oidc_username_prefix(self) -> Optional[pulumi.Input[str]]: + """ + Prefix prepended to username claims to prevent clashes with existing names (such as `system:users`). For example, the value `oidc:` will create usernames like `oidc:jane.doe`. If this field isn't set and `oidc_username_claim` is a value other than email the prefix defaults to `issuer_url` where `issuer_url` is the value of `issuer_url.` The value - can be used to disable all prefixing. + """ return pulumi.get(self, "oidc_username_prefix") @oidc_username_prefix.setter @@ -376,6 +432,13 @@ def __init__(__self__, :param pulumi.Input[str] client_id: The OIDC client ID. :param pulumi.Input[str] issuer_url: The OIDC issuer url. :param pulumi.Input[str] kube_id: The ID of the managed kubernetes cluster. **Changing this value recreates the resource.** + :param pulumi.Input[str] oidc_ca_content: Content of the certificate for the CA, in Base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + :param pulumi.Input[Sequence[pulumi.Input[str]]] oidc_groups_claims: Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + :param pulumi.Input[str] oidc_groups_prefix: Prefix prepended to group claims to prevent clashes with existing names (such as `system:groups`). For example, the value `oidc:` will create group names like `oidc:engineering` and `oidc:infra`. + :param pulumi.Input[Sequence[pulumi.Input[str]]] oidc_required_claims: Array of `key=value` pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." + :param pulumi.Input[Sequence[pulumi.Input[str]]] oidc_signing_algs: Array of signing algorithms accepted. Default is `RS256`. + :param pulumi.Input[str] oidc_username_claim: JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + :param pulumi.Input[str] oidc_username_prefix: Prefix prepended to username claims to prevent clashes with existing names (such as `system:users`). For example, the value `oidc:` will create usernames like `oidc:jane.doe`. If this field isn't set and `oidc_username_claim` is a value other than email the prefix defaults to `issuer_url` where `issuer_url` is the value of `issuer_url.` The value - can be used to disable all prefixing. :param pulumi.Input[str] service_name: The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.** """ ... @@ -504,6 +567,13 @@ def get(resource_name: str, :param pulumi.Input[str] client_id: The OIDC client ID. :param pulumi.Input[str] issuer_url: The OIDC issuer url. :param pulumi.Input[str] kube_id: The ID of the managed kubernetes cluster. **Changing this value recreates the resource.** + :param pulumi.Input[str] oidc_ca_content: Content of the certificate for the CA, in Base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + :param pulumi.Input[Sequence[pulumi.Input[str]]] oidc_groups_claims: Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + :param pulumi.Input[str] oidc_groups_prefix: Prefix prepended to group claims to prevent clashes with existing names (such as `system:groups`). For example, the value `oidc:` will create group names like `oidc:engineering` and `oidc:infra`. + :param pulumi.Input[Sequence[pulumi.Input[str]]] oidc_required_claims: Array of `key=value` pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." + :param pulumi.Input[Sequence[pulumi.Input[str]]] oidc_signing_algs: Array of signing algorithms accepted. Default is `RS256`. + :param pulumi.Input[str] oidc_username_claim: JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + :param pulumi.Input[str] oidc_username_prefix: Prefix prepended to username claims to prevent clashes with existing names (such as `system:users`). For example, the value `oidc:` will create usernames like `oidc:jane.doe`. If this field isn't set and `oidc_username_claim` is a value other than email the prefix defaults to `issuer_url` where `issuer_url` is the value of `issuer_url.` The value - can be used to disable all prefixing. :param pulumi.Input[str] service_name: The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.** """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -550,36 +620,57 @@ def kube_id(self) -> pulumi.Output[str]: @property @pulumi.getter(name="oidcCaContent") def oidc_ca_content(self) -> pulumi.Output[Optional[str]]: + """ + Content of the certificate for the CA, in Base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs. + """ return pulumi.get(self, "oidc_ca_content") @property @pulumi.getter(name="oidcGroupsClaims") def oidc_groups_claims(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings. + """ return pulumi.get(self, "oidc_groups_claims") @property @pulumi.getter(name="oidcGroupsPrefix") def oidc_groups_prefix(self) -> pulumi.Output[Optional[str]]: + """ + Prefix prepended to group claims to prevent clashes with existing names (such as `system:groups`). For example, the value `oidc:` will create group names like `oidc:engineering` and `oidc:infra`. + """ return pulumi.get(self, "oidc_groups_prefix") @property @pulumi.getter(name="oidcRequiredClaims") def oidc_required_claims(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + Array of `key=value` pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value." + """ return pulumi.get(self, "oidc_required_claims") @property @pulumi.getter(name="oidcSigningAlgs") def oidc_signing_algs(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + Array of signing algorithms accepted. Default is `RS256`. + """ return pulumi.get(self, "oidc_signing_algs") @property @pulumi.getter(name="oidcUsernameClaim") def oidc_username_claim(self) -> pulumi.Output[Optional[str]]: + """ + JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins. + """ return pulumi.get(self, "oidc_username_claim") @property @pulumi.getter(name="oidcUsernamePrefix") def oidc_username_prefix(self) -> pulumi.Output[Optional[str]]: + """ + Prefix prepended to username claims to prevent clashes with existing names (such as `system:users`). For example, the value `oidc:` will create usernames like `oidc:jane.doe`. If this field isn't set and `oidc_username_claim` is a value other than email the prefix defaults to `issuer_url` where `issuer_url` is the value of `issuer_url.` The value - can be used to disable all prefixing. + """ return pulumi.get(self, "oidc_username_prefix") @property diff --git a/sdk/python/pulumi_ovh/cloudprojectdatabase/get_database.py b/sdk/python/pulumi_ovh/cloudprojectdatabase/get_database.py index cf602401..7b702e6d 100644 --- a/sdk/python/pulumi_ovh/cloudprojectdatabase/get_database.py +++ b/sdk/python/pulumi_ovh/cloudprojectdatabase/get_database.py @@ -22,7 +22,7 @@ class GetDatabaseResult: """ A collection of values returned by getDatabase. """ - def __init__(__self__, advanced_configuration=None, backup_regions=None, backup_time=None, created_at=None, description=None, disk_size=None, disk_type=None, endpoints=None, engine=None, flavor=None, id=None, ip_restrictions=None, kafka_rest_api=None, maintenance_time=None, network_type=None, nodes=None, opensearch_acls_enabled=None, plan=None, service_name=None, status=None, version=None): + def __init__(__self__, advanced_configuration=None, backup_regions=None, backup_time=None, created_at=None, description=None, disk_size=None, disk_type=None, endpoints=None, engine=None, flavor=None, id=None, ip_restrictions=None, kafka_rest_api=None, kafka_schema_registry=None, maintenance_time=None, network_type=None, nodes=None, opensearch_acls_enabled=None, plan=None, service_name=None, status=None, version=None): if advanced_configuration and not isinstance(advanced_configuration, dict): raise TypeError("Expected argument 'advanced_configuration' to be a dict") pulumi.set(__self__, "advanced_configuration", advanced_configuration) @@ -62,6 +62,9 @@ def __init__(__self__, advanced_configuration=None, backup_regions=None, backup_ if kafka_rest_api and not isinstance(kafka_rest_api, bool): raise TypeError("Expected argument 'kafka_rest_api' to be a bool") pulumi.set(__self__, "kafka_rest_api", kafka_rest_api) + if kafka_schema_registry and not isinstance(kafka_schema_registry, bool): + raise TypeError("Expected argument 'kafka_schema_registry' to be a bool") + pulumi.set(__self__, "kafka_schema_registry", kafka_schema_registry) if maintenance_time and not isinstance(maintenance_time, str): raise TypeError("Expected argument 'maintenance_time' to be a str") pulumi.set(__self__, "maintenance_time", maintenance_time) @@ -191,6 +194,14 @@ def kafka_rest_api(self) -> bool: """ return pulumi.get(self, "kafka_rest_api") + @property + @pulumi.getter(name="kafkaSchemaRegistry") + def kafka_schema_registry(self) -> bool: + """ + Defines whether the schema registry is enabled on a Kafka cluster + """ + return pulumi.get(self, "kafka_schema_registry") + @property @pulumi.getter(name="maintenanceTime") def maintenance_time(self) -> str: @@ -272,6 +283,7 @@ def __await__(self): id=self.id, ip_restrictions=self.ip_restrictions, kafka_rest_api=self.kafka_rest_api, + kafka_schema_registry=self.kafka_schema_registry, maintenance_time=self.maintenance_time, network_type=self.network_type, nodes=self.nodes, @@ -333,6 +345,7 @@ def get_database(engine: Optional[str] = None, id=pulumi.get(__ret__, 'id'), ip_restrictions=pulumi.get(__ret__, 'ip_restrictions'), kafka_rest_api=pulumi.get(__ret__, 'kafka_rest_api'), + kafka_schema_registry=pulumi.get(__ret__, 'kafka_schema_registry'), maintenance_time=pulumi.get(__ret__, 'maintenance_time'), network_type=pulumi.get(__ret__, 'network_type'), nodes=pulumi.get(__ret__, 'nodes'), diff --git a/sdk/python/pulumi_ovh/cloudprojectdatabase/m3_db_user.py b/sdk/python/pulumi_ovh/cloudprojectdatabase/m3_db_user.py index 1cb90d30..22dc6fcb 100644 --- a/sdk/python/pulumi_ovh/cloudprojectdatabase/m3_db_user.py +++ b/sdk/python/pulumi_ovh/cloudprojectdatabase/m3_db_user.py @@ -25,7 +25,7 @@ def __init__(__self__, *, :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. :param pulumi.Input[str] group: Group of the user: - :param pulumi.Input[str] name: Name of the user. A user named "avnadmin" is map with already created admin user instead of create a new user. + :param pulumi.Input[str] name: Name of the user. A user named "avnadmin" is mapped with already created admin user instead of creating a new user. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update """ pulumi.set(__self__, "cluster_id", cluster_id) @@ -78,7 +78,7 @@ def group(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - Name of the user. A user named "avnadmin" is map with already created admin user instead of create a new user. + Name of the user. A user named "avnadmin" is mapped with already created admin user instead of creating a new user. """ return pulumi.get(self, "name") @@ -115,7 +115,7 @@ def __init__(__self__, *, :param pulumi.Input[str] cluster_id: Cluster ID. :param pulumi.Input[str] created_at: Date of the creation of the user. :param pulumi.Input[str] group: Group of the user: - :param pulumi.Input[str] name: Name of the user. A user named "avnadmin" is map with already created admin user instead of create a new user. + :param pulumi.Input[str] name: Name of the user. A user named "avnadmin" is mapped with already created admin user instead of creating a new user. :param pulumi.Input[str] password: (Sensitive) Password of the user. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, @@ -179,7 +179,7 @@ def group(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - Name of the user. A user named "avnadmin" is map with already created admin user instead of create a new user. + Name of the user. A user named "avnadmin" is mapped with already created admin user instead of creating a new user. """ return pulumi.get(self, "name") @@ -263,7 +263,7 @@ def __init__(__self__, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] cluster_id: Cluster ID. :param pulumi.Input[str] group: Group of the user: - :param pulumi.Input[str] name: Name of the user. A user named "avnadmin" is map with already created admin user instead of create a new user. + :param pulumi.Input[str] name: Name of the user. A user named "avnadmin" is mapped with already created admin user instead of creating a new user. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. @@ -356,7 +356,7 @@ def get(resource_name: str, :param pulumi.Input[str] cluster_id: Cluster ID. :param pulumi.Input[str] created_at: Date of the creation of the user. :param pulumi.Input[str] group: Group of the user: - :param pulumi.Input[str] name: Name of the user. A user named "avnadmin" is map with already created admin user instead of create a new user. + :param pulumi.Input[str] name: Name of the user. A user named "avnadmin" is mapped with already created admin user instead of creating a new user. :param pulumi.Input[str] password: (Sensitive) Password of the user. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, @@ -405,7 +405,7 @@ def group(self) -> pulumi.Output[Optional[str]]: @pulumi.getter def name(self) -> pulumi.Output[str]: """ - Name of the user. A user named "avnadmin" is map with already created admin user instead of create a new user. + Name of the user. A user named "avnadmin" is mapped with already created admin user instead of creating a new user. """ return pulumi.get(self, "name") diff --git a/sdk/python/pulumi_ovh/cloudprojectdatabase/mongo_db_user.py b/sdk/python/pulumi_ovh/cloudprojectdatabase/mongo_db_user.py index b01a2348..6ab6eacc 100644 --- a/sdk/python/pulumi_ovh/cloudprojectdatabase/mongo_db_user.py +++ b/sdk/python/pulumi_ovh/cloudprojectdatabase/mongo_db_user.py @@ -24,7 +24,7 @@ def __init__(__self__, *, :param pulumi.Input[str] cluster_id: Cluster ID. :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. - :param pulumi.Input[str] name: Name of the user. + :param pulumi.Input[str] name: Name of the user. A user named "admin" is mapped with already created admin@admin user instead of creating a new user. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update :param pulumi.Input[Sequence[pulumi.Input[str]]] roles: Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles Available roles: @@ -84,7 +84,7 @@ def service_name(self, value: pulumi.Input[str]): @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - Name of the user. + Name of the user. A user named "admin" is mapped with already created admin@admin user instead of creating a new user. """ return pulumi.get(self, "name") @@ -150,7 +150,7 @@ def __init__(__self__, *, Input properties used for looking up and filtering MongoDbUser resources. :param pulumi.Input[str] cluster_id: Cluster ID. :param pulumi.Input[str] created_at: Date of the creation of the user. - :param pulumi.Input[str] name: Name of the user. + :param pulumi.Input[str] name: Name of the user. A user named "admin" is mapped with already created admin@admin user instead of creating a new user. :param pulumi.Input[str] password: (Sensitive) Password of the user. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update :param pulumi.Input[Sequence[pulumi.Input[str]]] roles: Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles @@ -221,7 +221,7 @@ def created_at(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - Name of the user. + Name of the user. A user named "admin" is mapped with already created admin@admin user instead of creating a new user. """ return pulumi.get(self, "name") @@ -334,7 +334,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] cluster_id: Cluster ID. - :param pulumi.Input[str] name: Name of the user. + :param pulumi.Input[str] name: Name of the user. A user named "admin" is mapped with already created admin@admin user instead of creating a new user. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update :param pulumi.Input[Sequence[pulumi.Input[str]]] roles: Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles Available roles: @@ -445,7 +445,7 @@ def get(resource_name: str, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] cluster_id: Cluster ID. :param pulumi.Input[str] created_at: Date of the creation of the user. - :param pulumi.Input[str] name: Name of the user. + :param pulumi.Input[str] name: Name of the user. A user named "admin" is mapped with already created admin@admin user instead of creating a new user. :param pulumi.Input[str] password: (Sensitive) Password of the user. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update :param pulumi.Input[Sequence[pulumi.Input[str]]] roles: Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles @@ -505,7 +505,7 @@ def created_at(self) -> pulumi.Output[str]: @pulumi.getter def name(self) -> pulumi.Output[str]: """ - Name of the user. + Name of the user. A user named "admin" is mapped with already created admin@admin user instead of creating a new user. """ return pulumi.get(self, "name") diff --git a/sdk/python/pulumi_ovh/cloudprojectdatabase/opensearch_user.py b/sdk/python/pulumi_ovh/cloudprojectdatabase/opensearch_user.py index 04a26af1..74edad27 100644 --- a/sdk/python/pulumi_ovh/cloudprojectdatabase/opensearch_user.py +++ b/sdk/python/pulumi_ovh/cloudprojectdatabase/opensearch_user.py @@ -27,7 +27,7 @@ def __init__(__self__, *, :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. :param pulumi.Input[Sequence[pulumi.Input['OpensearchUserAclArgs']]] acls: Acls of the user. - :param pulumi.Input[str] name: Username affected by this acl. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + :param pulumi.Input[str] name: Username affected by this acl. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update """ pulumi.set(__self__, "cluster_id", cluster_id) @@ -80,7 +80,7 @@ def acls(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['OpensearchUse @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - Username affected by this acl. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + Username affected by this acl. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. """ return pulumi.get(self, "name") @@ -117,7 +117,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['OpensearchUserAclArgs']]] acls: Acls of the user. :param pulumi.Input[str] cluster_id: Cluster ID. :param pulumi.Input[str] created_at: Date of the creation of the user. - :param pulumi.Input[str] name: Username affected by this acl. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + :param pulumi.Input[str] name: Username affected by this acl. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. :param pulumi.Input[str] password: (Sensitive) Password of the user. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, @@ -181,7 +181,7 @@ def created_at(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - Username affected by this acl. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + Username affected by this acl. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. """ return pulumi.get(self, "name") @@ -265,7 +265,7 @@ def __init__(__self__, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OpensearchUserAclArgs']]]] acls: Acls of the user. :param pulumi.Input[str] cluster_id: Cluster ID. - :param pulumi.Input[str] name: Username affected by this acl. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + :param pulumi.Input[str] name: Username affected by this acl. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. @@ -358,7 +358,7 @@ def get(resource_name: str, :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OpensearchUserAclArgs']]]] acls: Acls of the user. :param pulumi.Input[str] cluster_id: Cluster ID. :param pulumi.Input[str] created_at: Date of the creation of the user. - :param pulumi.Input[str] name: Username affected by this acl. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + :param pulumi.Input[str] name: Username affected by this acl. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. :param pulumi.Input[str] password: (Sensitive) Password of the user. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, @@ -407,7 +407,7 @@ def created_at(self) -> pulumi.Output[str]: @pulumi.getter def name(self) -> pulumi.Output[str]: """ - Username affected by this acl. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + Username affected by this acl. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. """ return pulumi.get(self, "name") diff --git a/sdk/python/pulumi_ovh/cloudprojectdatabase/postgres_sql_user.py b/sdk/python/pulumi_ovh/cloudprojectdatabase/postgres_sql_user.py index ef679568..612907cb 100644 --- a/sdk/python/pulumi_ovh/cloudprojectdatabase/postgres_sql_user.py +++ b/sdk/python/pulumi_ovh/cloudprojectdatabase/postgres_sql_user.py @@ -24,7 +24,7 @@ def __init__(__self__, *, :param pulumi.Input[str] cluster_id: Cluster ID. :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. - :param pulumi.Input[str] name: Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + :param pulumi.Input[str] name: Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update :param pulumi.Input[Sequence[pulumi.Input[str]]] roles: Roles the user belongs to. Available roles: @@ -67,7 +67,7 @@ def service_name(self, value: pulumi.Input[str]): @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. """ return pulumi.get(self, "name") @@ -116,7 +116,7 @@ def __init__(__self__, *, Input properties used for looking up and filtering PostgresSqlUser resources. :param pulumi.Input[str] cluster_id: Cluster ID. :param pulumi.Input[str] created_at: Date of the creation of the user. - :param pulumi.Input[str] name: Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + :param pulumi.Input[str] name: Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. :param pulumi.Input[str] password: (Sensitive) Password of the user. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update :param pulumi.Input[Sequence[pulumi.Input[str]]] roles: Roles the user belongs to. @@ -170,7 +170,7 @@ def created_at(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. """ return pulumi.get(self, "name") @@ -266,7 +266,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] cluster_id: Cluster ID. - :param pulumi.Input[str] name: Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + :param pulumi.Input[str] name: Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update :param pulumi.Input[Sequence[pulumi.Input[str]]] roles: Roles the user belongs to. Available roles: @@ -360,7 +360,7 @@ def get(resource_name: str, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] cluster_id: Cluster ID. :param pulumi.Input[str] created_at: Date of the creation of the user. - :param pulumi.Input[str] name: Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + :param pulumi.Input[str] name: Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. :param pulumi.Input[str] password: (Sensitive) Password of the user. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update :param pulumi.Input[Sequence[pulumi.Input[str]]] roles: Roles the user belongs to. @@ -403,7 +403,7 @@ def created_at(self) -> pulumi.Output[str]: @pulumi.getter def name(self) -> pulumi.Output[str]: """ - Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. """ return pulumi.get(self, "name") diff --git a/sdk/python/pulumi_ovh/cloudprojectdatabase/redis_user.py b/sdk/python/pulumi_ovh/cloudprojectdatabase/redis_user.py index 5f946d69..da0358da 100644 --- a/sdk/python/pulumi_ovh/cloudprojectdatabase/redis_user.py +++ b/sdk/python/pulumi_ovh/cloudprojectdatabase/redis_user.py @@ -31,7 +31,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] channels: Channels of the user. :param pulumi.Input[Sequence[pulumi.Input[str]]] commands: Commands of the user. :param pulumi.Input[Sequence[pulumi.Input[str]]] keys: Keys of the user. - :param pulumi.Input[str] name: Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + :param pulumi.Input[str] name: Name of the user. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update """ pulumi.set(__self__, "cluster_id", cluster_id) @@ -126,7 +126,7 @@ def keys(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + Name of the user. """ return pulumi.get(self, "name") @@ -169,7 +169,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] commands: Commands of the user. :param pulumi.Input[str] created_at: Date of the creation of the user. :param pulumi.Input[Sequence[pulumi.Input[str]]] keys: Keys of the user. - :param pulumi.Input[str] name: Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + :param pulumi.Input[str] name: Name of the user. :param pulumi.Input[str] password: (Sensitive) Password of the user. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, @@ -275,7 +275,7 @@ def keys(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + Name of the user. """ return pulumi.get(self, "name") @@ -365,7 +365,7 @@ def __init__(__self__, :param pulumi.Input[str] cluster_id: Cluster ID. :param pulumi.Input[Sequence[pulumi.Input[str]]] commands: Commands of the user. :param pulumi.Input[Sequence[pulumi.Input[str]]] keys: Keys of the user. - :param pulumi.Input[str] name: Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + :param pulumi.Input[str] name: Name of the user. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. @@ -470,7 +470,7 @@ def get(resource_name: str, :param pulumi.Input[Sequence[pulumi.Input[str]]] commands: Commands of the user. :param pulumi.Input[str] created_at: Date of the creation of the user. :param pulumi.Input[Sequence[pulumi.Input[str]]] keys: Keys of the user. - :param pulumi.Input[str] name: Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + :param pulumi.Input[str] name: Name of the user. :param pulumi.Input[str] password: (Sensitive) Password of the user. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, @@ -546,7 +546,7 @@ def keys(self) -> pulumi.Output[Optional[Sequence[str]]]: @pulumi.getter def name(self) -> pulumi.Output[str]: """ - Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. + Name of the user. """ return pulumi.get(self, "name") diff --git a/sdk/python/pulumi_ovh/cloudprojectdatabase/user.py b/sdk/python/pulumi_ovh/cloudprojectdatabase/user.py index 66e17e34..bfae9db1 100644 --- a/sdk/python/pulumi_ovh/cloudprojectdatabase/user.py +++ b/sdk/python/pulumi_ovh/cloudprojectdatabase/user.py @@ -26,7 +26,7 @@ def __init__(__self__, *, Available engines: :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. - :param pulumi.Input[str] name: Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. The "Grafana" engine only allows the "avnadmin" mapping. + :param pulumi.Input[str] name: Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. The "Grafana" engine only allows the "avnadmin" mapping. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update """ pulumi.set(__self__, "cluster_id", cluster_id) @@ -79,7 +79,7 @@ def service_name(self, value: pulumi.Input[str]): @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. The "Grafana" engine only allows the "avnadmin" mapping. + Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. The "Grafana" engine only allows the "avnadmin" mapping. """ return pulumi.get(self, "name") @@ -117,7 +117,7 @@ def __init__(__self__, *, :param pulumi.Input[str] created_at: Date of the creation of the user. :param pulumi.Input[str] engine: The engine of the database cluster you want to add. You can find the complete list of available engine in the [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases). Available engines: - :param pulumi.Input[str] name: Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. The "Grafana" engine only allows the "avnadmin" mapping. + :param pulumi.Input[str] name: Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. The "Grafana" engine only allows the "avnadmin" mapping. :param pulumi.Input[str] password: (Sensitive) Password of the user. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, @@ -182,7 +182,7 @@ def engine(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. The "Grafana" engine only allows the "avnadmin" mapping. + Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. The "Grafana" engine only allows the "avnadmin" mapping. """ return pulumi.get(self, "name") @@ -267,7 +267,7 @@ def __init__(__self__, :param pulumi.Input[str] cluster_id: Cluster ID. :param pulumi.Input[str] engine: The engine of the database cluster you want to add. You can find the complete list of available engine in the [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases). Available engines: - :param pulumi.Input[str] name: Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. The "Grafana" engine only allows the "avnadmin" mapping. + :param pulumi.Input[str] name: Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. The "Grafana" engine only allows the "avnadmin" mapping. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. @@ -363,7 +363,7 @@ def get(resource_name: str, :param pulumi.Input[str] created_at: Date of the creation of the user. :param pulumi.Input[str] engine: The engine of the database cluster you want to add. You can find the complete list of available engine in the [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases). Available engines: - :param pulumi.Input[str] name: Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. The "Grafana" engine only allows the "avnadmin" mapping. + :param pulumi.Input[str] name: Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. The "Grafana" engine only allows the "avnadmin" mapping. :param pulumi.Input[str] password: (Sensitive) Password of the user. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, @@ -413,7 +413,7 @@ def engine(self) -> pulumi.Output[str]: @pulumi.getter def name(self) -> pulumi.Output[str]: """ - Name of the user. A user named "avnadmin" is map with already created admin user and reset his password instead of create a new user. The "Grafana" engine only allows the "avnadmin" mapping. + Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. The "Grafana" engine only allows the "avnadmin" mapping. """ return pulumi.get(self, "name") diff --git a/sdk/python/pulumi_ovh/config/__init__.pyi b/sdk/python/pulumi_ovh/config/__init__.pyi index 10dabedc..99db7db2 100644 --- a/sdk/python/pulumi_ovh/config/__init__.pyi +++ b/sdk/python/pulumi_ovh/config/__init__.pyi @@ -11,21 +11,31 @@ from .. import _utilities applicationKey: Optional[str] """ -The OVH API Application Key. +The OVH API Application Key """ applicationSecret: Optional[str] """ -The OVH API Application Secret. +The OVH API Application Secret +""" + +clientId: Optional[str] +""" +OAuth 2.0 application's ID +""" + +clientSecret: Optional[str] +""" +OAuth 2.0 application's secret """ consumerKey: Optional[str] """ -The OVH API Consumer key. +The OVH API Consumer Key """ endpoint: Optional[str] """ -The OVH API endpoint to target (ex: "ovh-eu"). +The OVH API endpoint to target (ex: "ovh-eu") """ diff --git a/sdk/python/pulumi_ovh/config/vars.py b/sdk/python/pulumi_ovh/config/vars.py index fdacfff3..f486c43d 100644 --- a/sdk/python/pulumi_ovh/config/vars.py +++ b/sdk/python/pulumi_ovh/config/vars.py @@ -18,28 +18,42 @@ class _ExportableConfig(types.ModuleType): @property def application_key(self) -> Optional[str]: """ - The OVH API Application Key. + The OVH API Application Key """ return __config__.get('applicationKey') or _utilities.get_env('OVH_APPLICATION_KEY') @property def application_secret(self) -> Optional[str]: """ - The OVH API Application Secret. + The OVH API Application Secret """ return __config__.get('applicationSecret') or _utilities.get_env('OVH_APPLICATION_SECRET') + @property + def client_id(self) -> Optional[str]: + """ + OAuth 2.0 application's ID + """ + return __config__.get('clientId') + + @property + def client_secret(self) -> Optional[str]: + """ + OAuth 2.0 application's secret + """ + return __config__.get('clientSecret') + @property def consumer_key(self) -> Optional[str]: """ - The OVH API Consumer key. + The OVH API Consumer Key """ return __config__.get('consumerKey') or _utilities.get_env('OVH_CONSUMER_KEY') @property def endpoint(self) -> Optional[str]: """ - The OVH API endpoint to target (ex: "ovh-eu"). + The OVH API endpoint to target (ex: "ovh-eu") """ return __config__.get('endpoint') or _utilities.get_env('OVH_ENDPOINT') diff --git a/sdk/python/pulumi_ovh/dedicated/__init__.py b/sdk/python/pulumi_ovh/dedicated/__init__.py index daa0f167..7d2eacb1 100644 --- a/sdk/python/pulumi_ovh/dedicated/__init__.py +++ b/sdk/python/pulumi_ovh/dedicated/__init__.py @@ -10,6 +10,7 @@ from .get_nas_ha import * from .get_server_boots import * from .get_server_specifications_hardware import * +from .get_server_specifications_network 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/_inputs.py b/sdk/python/pulumi_ovh/dedicated/_inputs.py index 2925b500..ff43c57a 100644 --- a/sdk/python/pulumi_ovh/dedicated/_inputs.py +++ b/sdk/python/pulumi_ovh/dedicated/_inputs.py @@ -11,6 +11,7 @@ __all__ = [ 'ServerInstallTaskDetailsArgs', + 'ServerInstallTaskUserMetadataArgs', 'ServerNetworkingInterfaceArgs', ] @@ -19,32 +20,37 @@ class ServerInstallTaskDetailsArgs: def __init__(__self__, *, custom_hostname: Optional[pulumi.Input[str]] = None, disk_group_id: Optional[pulumi.Input[int]] = None, - install_sql_server: Optional[pulumi.Input[bool]] = None, language: Optional[pulumi.Input[str]] = None, no_raid: Optional[pulumi.Input[bool]] = None, post_installation_script_link: Optional[pulumi.Input[str]] = None, post_installation_script_return: Optional[pulumi.Input[str]] = None, soft_raid_devices: Optional[pulumi.Input[int]] = None, - ssh_key_name: Optional[pulumi.Input[str]] = None, use_spla: Optional[pulumi.Input[bool]] = None): """ :param pulumi.Input[str] custom_hostname: Set up the server using the provided hostname instead of the default hostname. :param pulumi.Input[int] disk_group_id: Disk group id. - :param pulumi.Input[bool] install_sql_server: set to true to install sql server (Windows template only). - :param pulumi.Input[str] language: language. - :param pulumi.Input[bool] no_raid: set to true to disable RAID. + :param pulumi.Input[str] language: Deprecated, will be removed in next release. + :param pulumi.Input[bool] no_raid: Set to true to disable RAID. :param pulumi.Input[str] post_installation_script_link: Indicate the URL where your postinstall customisation script is located. :param pulumi.Input[str] post_installation_script_return: Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. :param pulumi.Input[int] soft_raid_devices: soft raid devices. - :param pulumi.Input[str] ssh_key_name: Name of the ssh key that should be installed. Password login will be disabled. - :param pulumi.Input[bool] use_spla: set to true to use SPLA. + :param pulumi.Input[bool] use_spla: Deprecated, will be removed in next release. + + The `user_metadata` block supports many arguments, here is a non-exhaustive list depending on the OS: + + -[see OS questions](https://help.ovhcloud.com/csm/en-dedicated-servers-api-os-installation?id=kb_article_view&sysparm_article=KB0061951#os-questions) + + -[see api](https://eu.api.ovh.com/console-preview/?section=%2Fdedicated%2FinstallationTemplate&branch=v1#get-/dedicated/installationTemplate/-templateName-) + + -[see documentation](https://help.ovhcloud.com/csm/en-ie-dedicated-servers-api-os-installation?id=kb_article_view&sysparm_article=KB0061950#create-an-os-installation-task) to get more information """ if custom_hostname is not None: pulumi.set(__self__, "custom_hostname", custom_hostname) if disk_group_id is not None: pulumi.set(__self__, "disk_group_id", disk_group_id) - if install_sql_server is not None: - pulumi.set(__self__, "install_sql_server", install_sql_server) + if language is not None: + warnings.warn("""This field is deprecated and will be removed in a future release""", DeprecationWarning) + pulumi.log.warn("""language is deprecated: This field is deprecated and will be removed in a future release""") if language is not None: pulumi.set(__self__, "language", language) if no_raid is not None: @@ -55,8 +61,9 @@ def __init__(__self__, *, pulumi.set(__self__, "post_installation_script_return", post_installation_script_return) if soft_raid_devices is not None: pulumi.set(__self__, "soft_raid_devices", soft_raid_devices) - if ssh_key_name is not None: - pulumi.set(__self__, "ssh_key_name", ssh_key_name) + if use_spla is not None: + warnings.warn("""This field is deprecated and will be removed in a future release""", DeprecationWarning) + pulumi.log.warn("""use_spla is deprecated: This field is deprecated and will be removed in a future release""") if use_spla is not None: pulumi.set(__self__, "use_spla", use_spla) @@ -84,24 +91,15 @@ def disk_group_id(self) -> Optional[pulumi.Input[int]]: def disk_group_id(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "disk_group_id", value) - @property - @pulumi.getter(name="installSqlServer") - def install_sql_server(self) -> Optional[pulumi.Input[bool]]: - """ - set to true to install sql server (Windows template only). - """ - return pulumi.get(self, "install_sql_server") - - @install_sql_server.setter - def install_sql_server(self, value: Optional[pulumi.Input[bool]]): - pulumi.set(self, "install_sql_server", value) - @property @pulumi.getter def language(self) -> Optional[pulumi.Input[str]]: """ - language. + Deprecated, will be removed in next release. """ + warnings.warn("""This field is deprecated and will be removed in a future release""", DeprecationWarning) + pulumi.log.warn("""language is deprecated: This field is deprecated and will be removed in a future release""") + return pulumi.get(self, "language") @language.setter @@ -112,7 +110,7 @@ def language(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="noRaid") def no_raid(self) -> Optional[pulumi.Input[bool]]: """ - set to true to disable RAID. + Set to true to disable RAID. """ return pulumi.get(self, "no_raid") @@ -156,24 +154,23 @@ def soft_raid_devices(self) -> Optional[pulumi.Input[int]]: def soft_raid_devices(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "soft_raid_devices", value) - @property - @pulumi.getter(name="sshKeyName") - def ssh_key_name(self) -> Optional[pulumi.Input[str]]: - """ - Name of the ssh key that should be installed. Password login will be disabled. - """ - return pulumi.get(self, "ssh_key_name") - - @ssh_key_name.setter - def ssh_key_name(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "ssh_key_name", value) - @property @pulumi.getter(name="useSpla") def use_spla(self) -> Optional[pulumi.Input[bool]]: """ - set to true to use SPLA. + Deprecated, will be removed in next release. + + The `user_metadata` block supports many arguments, here is a non-exhaustive list depending on the OS: + + -[see OS questions](https://help.ovhcloud.com/csm/en-dedicated-servers-api-os-installation?id=kb_article_view&sysparm_article=KB0061951#os-questions) + + -[see api](https://eu.api.ovh.com/console-preview/?section=%2Fdedicated%2FinstallationTemplate&branch=v1#get-/dedicated/installationTemplate/-templateName-) + + -[see documentation](https://help.ovhcloud.com/csm/en-ie-dedicated-servers-api-os-installation?id=kb_article_view&sysparm_article=KB0061950#create-an-os-installation-task) to get more information """ + warnings.warn("""This field is deprecated and will be removed in a future release""", DeprecationWarning) + pulumi.log.warn("""use_spla is deprecated: This field is deprecated and will be removed in a future release""") + return pulumi.get(self, "use_spla") @use_spla.setter @@ -181,6 +178,43 @@ def use_spla(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "use_spla", value) +@pulumi.input_type +class ServerInstallTaskUserMetadataArgs: + def __init__(__self__, *, + key: pulumi.Input[str], + value: pulumi.Input[str]): + """ + :param pulumi.Input[str] key: The key for the user_metadata + :param pulumi.Input[str] value: The value for the user_metadata + """ + pulumi.set(__self__, "key", key) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def key(self) -> pulumi.Input[str]: + """ + The key for the user_metadata + """ + return pulumi.get(self, "key") + + @key.setter + def key(self, value: pulumi.Input[str]): + pulumi.set(self, "key", value) + + @property + @pulumi.getter + def value(self) -> pulumi.Input[str]: + """ + The value for the user_metadata + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: pulumi.Input[str]): + pulumi.set(self, "value", value) + + @pulumi.input_type class ServerNetworkingInterfaceArgs: def __init__(__self__, *, diff --git a/sdk/python/pulumi_ovh/dedicated/get_server_specifications_network.py b/sdk/python/pulumi_ovh/dedicated/get_server_specifications_network.py new file mode 100644 index 00000000..23a262f2 --- /dev/null +++ b/sdk/python/pulumi_ovh/dedicated/get_server_specifications_network.py @@ -0,0 +1,210 @@ +# 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__ = [ + 'GetServerSpecificationsNetworkResult', + 'AwaitableGetServerSpecificationsNetworkResult', + 'get_server_specifications_network', + 'get_server_specifications_network_output', +] + +@pulumi.output_type +class GetServerSpecificationsNetworkResult: + """ + A collection of values returned by getServerSpecificationsNetwork. + """ + def __init__(__self__, bandwidth=None, connection_val=None, id=None, ola=None, routing=None, service_name=None, switching=None, traffic=None, vmac=None, vrack=None): + if bandwidth and not isinstance(bandwidth, dict): + raise TypeError("Expected argument 'bandwidth' to be a dict") + pulumi.set(__self__, "bandwidth", bandwidth) + if connection_val and not isinstance(connection_val, dict): + raise TypeError("Expected argument 'connection_val' to be a dict") + pulumi.set(__self__, "connection_val", connection_val) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if ola and not isinstance(ola, dict): + raise TypeError("Expected argument 'ola' to be a dict") + pulumi.set(__self__, "ola", ola) + if routing and not isinstance(routing, dict): + raise TypeError("Expected argument 'routing' to be a dict") + pulumi.set(__self__, "routing", routing) + 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 switching and not isinstance(switching, dict): + raise TypeError("Expected argument 'switching' to be a dict") + pulumi.set(__self__, "switching", switching) + if traffic and not isinstance(traffic, dict): + raise TypeError("Expected argument 'traffic' to be a dict") + pulumi.set(__self__, "traffic", traffic) + if vmac and not isinstance(vmac, dict): + raise TypeError("Expected argument 'vmac' to be a dict") + pulumi.set(__self__, "vmac", vmac) + if vrack and not isinstance(vrack, dict): + raise TypeError("Expected argument 'vrack' to be a dict") + pulumi.set(__self__, "vrack", vrack) + + @property + @pulumi.getter + def bandwidth(self) -> 'outputs.GetServerSpecificationsNetworkBandwidthResult': + """ + vrack bandwidth limitation + """ + return pulumi.get(self, "bandwidth") + + @property + @pulumi.getter(name="connectionVal") + def connection_val(self) -> 'outputs.GetServerSpecificationsNetworkConnectionValResult': + """ + Network connection flow rate + """ + return pulumi.get(self, "connection_val") + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter + def ola(self) -> 'outputs.GetServerSpecificationsNetworkOlaResult': + """ + OLA details + """ + return pulumi.get(self, "ola") + + @property + @pulumi.getter + def routing(self) -> 'outputs.GetServerSpecificationsNetworkRoutingResult': + """ + Routing details + """ + return pulumi.get(self, "routing") + + @property + @pulumi.getter(name="serviceName") + def service_name(self) -> str: + return pulumi.get(self, "service_name") + + @property + @pulumi.getter + def switching(self) -> 'outputs.GetServerSpecificationsNetworkSwitchingResult': + """ + Switching details + """ + return pulumi.get(self, "switching") + + @property + @pulumi.getter + def traffic(self) -> 'outputs.GetServerSpecificationsNetworkTrafficResult': + """ + Traffic details + """ + return pulumi.get(self, "traffic") + + @property + @pulumi.getter + def vmac(self) -> 'outputs.GetServerSpecificationsNetworkVmacResult': + """ + VMAC information for this dedicated server + """ + return pulumi.get(self, "vmac") + + @property + @pulumi.getter + def vrack(self) -> 'outputs.GetServerSpecificationsNetworkVrackResult': + """ + vRack details + """ + return pulumi.get(self, "vrack") + + +class AwaitableGetServerSpecificationsNetworkResult(GetServerSpecificationsNetworkResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetServerSpecificationsNetworkResult( + bandwidth=self.bandwidth, + connection_val=self.connection_val, + id=self.id, + ola=self.ola, + routing=self.routing, + service_name=self.service_name, + switching=self.switching, + traffic=self.traffic, + vmac=self.vmac, + vrack=self.vrack) + + +def get_server_specifications_network(service_name: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetServerSpecificationsNetworkResult: + """ + Use this data source to get the network 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_network(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/getServerSpecificationsNetwork:getServerSpecificationsNetwork', __args__, opts=opts, typ=GetServerSpecificationsNetworkResult).value + + return AwaitableGetServerSpecificationsNetworkResult( + bandwidth=pulumi.get(__ret__, 'bandwidth'), + connection_val=pulumi.get(__ret__, 'connection_val'), + id=pulumi.get(__ret__, 'id'), + ola=pulumi.get(__ret__, 'ola'), + routing=pulumi.get(__ret__, 'routing'), + service_name=pulumi.get(__ret__, 'service_name'), + switching=pulumi.get(__ret__, 'switching'), + traffic=pulumi.get(__ret__, 'traffic'), + vmac=pulumi.get(__ret__, 'vmac'), + vrack=pulumi.get(__ret__, 'vrack')) + + +@_utilities.lift_output_func(get_server_specifications_network) +def get_server_specifications_network_output(service_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetServerSpecificationsNetworkResult]: + """ + Use this data source to get the network 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_network(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 9855e9c1..0f73795d 100644 --- a/sdk/python/pulumi_ovh/dedicated/outputs.py +++ b/sdk/python/pulumi_ovh/dedicated/outputs.py @@ -12,6 +12,7 @@ __all__ = [ 'ServerInstallTaskDetails', + 'ServerInstallTaskUserMetadata', 'ServerNetworkingInterface', 'GetServerSpecificationsHardwareDefaultHardwareRaidSizeResult', 'GetServerSpecificationsHardwareDiskGroupResult', @@ -20,6 +21,26 @@ 'GetServerSpecificationsHardwareExpansionCardResult', 'GetServerSpecificationsHardwareMemorySizeResult', 'GetServerSpecificationsHardwareUsbKeyResult', + 'GetServerSpecificationsNetworkBandwidthResult', + 'GetServerSpecificationsNetworkBandwidthInternetToOvhResult', + 'GetServerSpecificationsNetworkBandwidthOvhToInternetResult', + 'GetServerSpecificationsNetworkBandwidthOvhToOvhResult', + 'GetServerSpecificationsNetworkConnectionValResult', + 'GetServerSpecificationsNetworkOlaResult', + 'GetServerSpecificationsNetworkOlaAvailableModeResult', + 'GetServerSpecificationsNetworkOlaAvailableModeInterfaceResult', + 'GetServerSpecificationsNetworkRoutingResult', + 'GetServerSpecificationsNetworkRoutingIpv4Result', + 'GetServerSpecificationsNetworkRoutingIpv6Result', + 'GetServerSpecificationsNetworkSwitchingResult', + 'GetServerSpecificationsNetworkTrafficResult', + 'GetServerSpecificationsNetworkTrafficInputQuotaSizeResult', + 'GetServerSpecificationsNetworkTrafficInputQuotaUsedResult', + 'GetServerSpecificationsNetworkTrafficOutputQuotaSizeResult', + 'GetServerSpecificationsNetworkTrafficOutputQuotaUsedResult', + 'GetServerSpecificationsNetworkVmacResult', + 'GetServerSpecificationsNetworkVrackResult', + 'GetServerSpecificationsNetworkVrackBandwidthResult', ] @pulumi.output_type @@ -31,8 +52,6 @@ def __key_warning(key: str): suggest = "custom_hostname" elif key == "diskGroupId": suggest = "disk_group_id" - elif key == "installSqlServer": - suggest = "install_sql_server" elif key == "noRaid": suggest = "no_raid" elif key == "postInstallationScriptLink": @@ -41,8 +60,6 @@ def __key_warning(key: str): suggest = "post_installation_script_return" elif key == "softRaidDevices": suggest = "soft_raid_devices" - elif key == "sshKeyName": - suggest = "ssh_key_name" elif key == "useSpla": suggest = "use_spla" @@ -60,32 +77,34 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, custom_hostname: Optional[str] = None, disk_group_id: Optional[int] = None, - install_sql_server: Optional[bool] = None, language: Optional[str] = None, no_raid: Optional[bool] = None, post_installation_script_link: Optional[str] = None, post_installation_script_return: Optional[str] = None, soft_raid_devices: Optional[int] = None, - ssh_key_name: Optional[str] = None, use_spla: Optional[bool] = None): """ :param str custom_hostname: Set up the server using the provided hostname instead of the default hostname. :param int disk_group_id: Disk group id. - :param bool install_sql_server: set to true to install sql server (Windows template only). - :param str language: language. - :param bool no_raid: set to true to disable RAID. + :param str language: Deprecated, will be removed in next release. + :param bool no_raid: Set to true to disable RAID. :param str post_installation_script_link: Indicate the URL where your postinstall customisation script is located. :param str post_installation_script_return: Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. :param int soft_raid_devices: soft raid devices. - :param str ssh_key_name: Name of the ssh key that should be installed. Password login will be disabled. - :param bool use_spla: set to true to use SPLA. + :param bool use_spla: Deprecated, will be removed in next release. + + The `user_metadata` block supports many arguments, here is a non-exhaustive list depending on the OS: + + -[see OS questions](https://help.ovhcloud.com/csm/en-dedicated-servers-api-os-installation?id=kb_article_view&sysparm_article=KB0061951#os-questions) + + -[see api](https://eu.api.ovh.com/console-preview/?section=%2Fdedicated%2FinstallationTemplate&branch=v1#get-/dedicated/installationTemplate/-templateName-) + + -[see documentation](https://help.ovhcloud.com/csm/en-ie-dedicated-servers-api-os-installation?id=kb_article_view&sysparm_article=KB0061950#create-an-os-installation-task) to get more information """ if custom_hostname is not None: pulumi.set(__self__, "custom_hostname", custom_hostname) if disk_group_id is not None: pulumi.set(__self__, "disk_group_id", disk_group_id) - if install_sql_server is not None: - pulumi.set(__self__, "install_sql_server", install_sql_server) if language is not None: pulumi.set(__self__, "language", language) if no_raid is not None: @@ -96,8 +115,6 @@ def __init__(__self__, *, pulumi.set(__self__, "post_installation_script_return", post_installation_script_return) if soft_raid_devices is not None: pulumi.set(__self__, "soft_raid_devices", soft_raid_devices) - if ssh_key_name is not None: - pulumi.set(__self__, "ssh_key_name", ssh_key_name) if use_spla is not None: pulumi.set(__self__, "use_spla", use_spla) @@ -117,27 +134,22 @@ def disk_group_id(self) -> Optional[int]: """ return pulumi.get(self, "disk_group_id") - @property - @pulumi.getter(name="installSqlServer") - def install_sql_server(self) -> Optional[bool]: - """ - set to true to install sql server (Windows template only). - """ - return pulumi.get(self, "install_sql_server") - @property @pulumi.getter def language(self) -> Optional[str]: """ - language. + Deprecated, will be removed in next release. """ + warnings.warn("""This field is deprecated and will be removed in a future release""", DeprecationWarning) + pulumi.log.warn("""language is deprecated: This field is deprecated and will be removed in a future release""") + return pulumi.get(self, "language") @property @pulumi.getter(name="noRaid") def no_raid(self) -> Optional[bool]: """ - set to true to disable RAID. + Set to true to disable RAID. """ return pulumi.get(self, "no_raid") @@ -166,20 +178,52 @@ def soft_raid_devices(self) -> Optional[int]: return pulumi.get(self, "soft_raid_devices") @property - @pulumi.getter(name="sshKeyName") - def ssh_key_name(self) -> Optional[str]: + @pulumi.getter(name="useSpla") + def use_spla(self) -> Optional[bool]: + """ + Deprecated, will be removed in next release. + + The `user_metadata` block supports many arguments, here is a non-exhaustive list depending on the OS: + + -[see OS questions](https://help.ovhcloud.com/csm/en-dedicated-servers-api-os-installation?id=kb_article_view&sysparm_article=KB0061951#os-questions) + + -[see api](https://eu.api.ovh.com/console-preview/?section=%2Fdedicated%2FinstallationTemplate&branch=v1#get-/dedicated/installationTemplate/-templateName-) + + -[see documentation](https://help.ovhcloud.com/csm/en-ie-dedicated-servers-api-os-installation?id=kb_article_view&sysparm_article=KB0061950#create-an-os-installation-task) to get more information + """ + warnings.warn("""This field is deprecated and will be removed in a future release""", DeprecationWarning) + pulumi.log.warn("""use_spla is deprecated: This field is deprecated and will be removed in a future release""") + + return pulumi.get(self, "use_spla") + + +@pulumi.output_type +class ServerInstallTaskUserMetadata(dict): + def __init__(__self__, *, + key: str, + value: str): """ - Name of the ssh key that should be installed. Password login will be disabled. + :param str key: The key for the user_metadata + :param str value: The value for the user_metadata """ - return pulumi.get(self, "ssh_key_name") + pulumi.set(__self__, "key", key) + pulumi.set(__self__, "value", value) @property - @pulumi.getter(name="useSpla") - def use_spla(self) -> Optional[bool]: + @pulumi.getter + def key(self) -> str: """ - set to true to use SPLA. + The key for the user_metadata """ - return pulumi.get(self, "use_spla") + return pulumi.get(self, "key") + + @property + @pulumi.getter + def value(self) -> str: + """ + The value for the user_metadata + """ + return pulumi.get(self, "value") @pulumi.output_type @@ -430,3 +474,592 @@ def value(self) -> float: return pulumi.get(self, "value") +@pulumi.output_type +class GetServerSpecificationsNetworkBandwidthResult(dict): + def __init__(__self__, *, + internet_to_ovh: 'outputs.GetServerSpecificationsNetworkBandwidthInternetToOvhResult', + ovh_to_internet: 'outputs.GetServerSpecificationsNetworkBandwidthOvhToInternetResult', + ovh_to_ovh: 'outputs.GetServerSpecificationsNetworkBandwidthOvhToOvhResult', + type: str): + """ + :param 'GetServerSpecificationsNetworkBandwidthInternetToOvhArgs' internet_to_ovh: Bandwidth limitation Internet to OVH + :param 'GetServerSpecificationsNetworkBandwidthOvhToInternetArgs' ovh_to_internet: Bandwidth limitation OVH to Internet + :param 'GetServerSpecificationsNetworkBandwidthOvhToOvhArgs' ovh_to_ovh: Bandwidth limitation OVH to OVH + :param str type: Bandwidth offer type (included┃standard) + """ + pulumi.set(__self__, "internet_to_ovh", internet_to_ovh) + pulumi.set(__self__, "ovh_to_internet", ovh_to_internet) + pulumi.set(__self__, "ovh_to_ovh", ovh_to_ovh) + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter(name="internetToOvh") + def internet_to_ovh(self) -> 'outputs.GetServerSpecificationsNetworkBandwidthInternetToOvhResult': + """ + Bandwidth limitation Internet to OVH + """ + return pulumi.get(self, "internet_to_ovh") + + @property + @pulumi.getter(name="ovhToInternet") + def ovh_to_internet(self) -> 'outputs.GetServerSpecificationsNetworkBandwidthOvhToInternetResult': + """ + Bandwidth limitation OVH to Internet + """ + return pulumi.get(self, "ovh_to_internet") + + @property + @pulumi.getter(name="ovhToOvh") + def ovh_to_ovh(self) -> 'outputs.GetServerSpecificationsNetworkBandwidthOvhToOvhResult': + """ + Bandwidth limitation OVH to OVH + """ + return pulumi.get(self, "ovh_to_ovh") + + @property + @pulumi.getter + def type(self) -> str: + """ + Bandwidth offer type (included┃standard) + """ + return pulumi.get(self, "type") + + +@pulumi.output_type +class GetServerSpecificationsNetworkBandwidthInternetToOvhResult(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 GetServerSpecificationsNetworkBandwidthOvhToInternetResult(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 GetServerSpecificationsNetworkBandwidthOvhToOvhResult(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 GetServerSpecificationsNetworkConnectionValResult(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 GetServerSpecificationsNetworkOlaResult(dict): + def __init__(__self__, *, + available: bool, + available_modes: Sequence['outputs.GetServerSpecificationsNetworkOlaAvailableModeResult'], + supported_modes: Sequence[str]): + """ + :param bool available: Is the OLA feature available + :param Sequence['GetServerSpecificationsNetworkOlaAvailableModeArgs'] available_modes: Supported modes + :param Sequence[str] supported_modes: Supported modes (DEPRECATED) + """ + pulumi.set(__self__, "available", available) + pulumi.set(__self__, "available_modes", available_modes) + pulumi.set(__self__, "supported_modes", supported_modes) + + @property + @pulumi.getter + def available(self) -> bool: + """ + Is the OLA feature available + """ + return pulumi.get(self, "available") + + @property + @pulumi.getter(name="availableModes") + def available_modes(self) -> Sequence['outputs.GetServerSpecificationsNetworkOlaAvailableModeResult']: + """ + Supported modes + """ + return pulumi.get(self, "available_modes") + + @property + @pulumi.getter(name="supportedModes") + def supported_modes(self) -> Sequence[str]: + """ + Supported modes (DEPRECATED) + """ + return pulumi.get(self, "supported_modes") + + +@pulumi.output_type +class GetServerSpecificationsNetworkOlaAvailableModeResult(dict): + def __init__(__self__, *, + default: bool, + interfaces: Sequence['outputs.GetServerSpecificationsNetworkOlaAvailableModeInterfaceResult'], + name: str): + """ + :param bool default: Whether it is the default configuration of the server + :param Sequence['GetServerSpecificationsNetworkOlaAvailableModeInterfaceArgs'] interfaces: Interface layout + :param str name: Switch name + """ + pulumi.set(__self__, "default", default) + pulumi.set(__self__, "interfaces", interfaces) + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter + def default(self) -> bool: + """ + Whether it is the default configuration of the server + """ + return pulumi.get(self, "default") + + @property + @pulumi.getter + def interfaces(self) -> Sequence['outputs.GetServerSpecificationsNetworkOlaAvailableModeInterfaceResult']: + """ + Interface layout + """ + return pulumi.get(self, "interfaces") + + @property + @pulumi.getter + def name(self) -> str: + """ + Switch name + """ + return pulumi.get(self, "name") + + +@pulumi.output_type +class GetServerSpecificationsNetworkOlaAvailableModeInterfaceResult(dict): + def __init__(__self__, *, + aggregation: bool, + count: float, + type: str): + """ + :param bool aggregation: Interface aggregation status + :param float count: Interface count + :param str type: Bandwidth offer type (included┃standard) + """ + pulumi.set(__self__, "aggregation", aggregation) + pulumi.set(__self__, "count", count) + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter + def aggregation(self) -> bool: + """ + Interface aggregation status + """ + return pulumi.get(self, "aggregation") + + @property + @pulumi.getter + def count(self) -> float: + """ + Interface count + """ + return pulumi.get(self, "count") + + @property + @pulumi.getter + def type(self) -> str: + """ + Bandwidth offer type (included┃standard) + """ + return pulumi.get(self, "type") + + +@pulumi.output_type +class GetServerSpecificationsNetworkRoutingResult(dict): + def __init__(__self__, *, + ipv4: 'outputs.GetServerSpecificationsNetworkRoutingIpv4Result', + ipv6: 'outputs.GetServerSpecificationsNetworkRoutingIpv6Result'): + """ + :param 'GetServerSpecificationsNetworkRoutingIpv4Args' ipv4: Ipv4 routing details + :param 'GetServerSpecificationsNetworkRoutingIpv6Args' ipv6: Ipv6 routing details + """ + pulumi.set(__self__, "ipv4", ipv4) + pulumi.set(__self__, "ipv6", ipv6) + + @property + @pulumi.getter + def ipv4(self) -> 'outputs.GetServerSpecificationsNetworkRoutingIpv4Result': + """ + Ipv4 routing details + """ + return pulumi.get(self, "ipv4") + + @property + @pulumi.getter + def ipv6(self) -> 'outputs.GetServerSpecificationsNetworkRoutingIpv6Result': + """ + Ipv6 routing details + """ + return pulumi.get(self, "ipv6") + + +@pulumi.output_type +class GetServerSpecificationsNetworkRoutingIpv4Result(dict): + def __init__(__self__, *, + gateway: str, + ip: str, + network: str): + """ + :param str gateway: Server gateway + :param str ip: Server main IP + :param str network: Server network + """ + pulumi.set(__self__, "gateway", gateway) + pulumi.set(__self__, "ip", ip) + pulumi.set(__self__, "network", network) + + @property + @pulumi.getter + def gateway(self) -> str: + """ + Server gateway + """ + return pulumi.get(self, "gateway") + + @property + @pulumi.getter + def ip(self) -> str: + """ + Server main IP + """ + return pulumi.get(self, "ip") + + @property + @pulumi.getter + def network(self) -> str: + """ + Server network + """ + return pulumi.get(self, "network") + + +@pulumi.output_type +class GetServerSpecificationsNetworkRoutingIpv6Result(dict): + def __init__(__self__, *, + gateway: str, + ip: str, + network: str): + """ + :param str gateway: Server gateway + :param str ip: Server main IP + :param str network: Server network + """ + pulumi.set(__self__, "gateway", gateway) + pulumi.set(__self__, "ip", ip) + pulumi.set(__self__, "network", network) + + @property + @pulumi.getter + def gateway(self) -> str: + """ + Server gateway + """ + return pulumi.get(self, "gateway") + + @property + @pulumi.getter + def ip(self) -> str: + """ + Server main IP + """ + return pulumi.get(self, "ip") + + @property + @pulumi.getter + def network(self) -> str: + """ + Server network + """ + return pulumi.get(self, "network") + + +@pulumi.output_type +class GetServerSpecificationsNetworkSwitchingResult(dict): + def __init__(__self__, *, + name: str): + """ + :param str name: Switch name + """ + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter + def name(self) -> str: + """ + Switch name + """ + return pulumi.get(self, "name") + + +@pulumi.output_type +class GetServerSpecificationsNetworkTrafficResult(dict): + def __init__(__self__, *, + input_quota_size: 'outputs.GetServerSpecificationsNetworkTrafficInputQuotaSizeResult', + input_quota_used: 'outputs.GetServerSpecificationsNetworkTrafficInputQuotaUsedResult', + is_throttled: bool, + output_quota_size: 'outputs.GetServerSpecificationsNetworkTrafficOutputQuotaSizeResult', + output_quota_used: 'outputs.GetServerSpecificationsNetworkTrafficOutputQuotaUsedResult', + reset_quota_date: str): + """ + :param 'GetServerSpecificationsNetworkTrafficInputQuotaSizeArgs' input_quota_size: Monthly input traffic quota allowed + :param 'GetServerSpecificationsNetworkTrafficInputQuotaUsedArgs' input_quota_used: Monthly input traffic consumed this month + :param bool is_throttled: Whether bandwidth is throttleted for being over quota + :param 'GetServerSpecificationsNetworkTrafficOutputQuotaSizeArgs' output_quota_size: Monthly output traffic quota allowed + :param 'GetServerSpecificationsNetworkTrafficOutputQuotaUsedArgs' output_quota_used: Monthly output traffic consumed this month + :param str reset_quota_date: Next reset quota date for traffic counter + """ + pulumi.set(__self__, "input_quota_size", input_quota_size) + pulumi.set(__self__, "input_quota_used", input_quota_used) + pulumi.set(__self__, "is_throttled", is_throttled) + pulumi.set(__self__, "output_quota_size", output_quota_size) + pulumi.set(__self__, "output_quota_used", output_quota_used) + pulumi.set(__self__, "reset_quota_date", reset_quota_date) + + @property + @pulumi.getter(name="inputQuotaSize") + def input_quota_size(self) -> 'outputs.GetServerSpecificationsNetworkTrafficInputQuotaSizeResult': + """ + Monthly input traffic quota allowed + """ + return pulumi.get(self, "input_quota_size") + + @property + @pulumi.getter(name="inputQuotaUsed") + def input_quota_used(self) -> 'outputs.GetServerSpecificationsNetworkTrafficInputQuotaUsedResult': + """ + Monthly input traffic consumed this month + """ + return pulumi.get(self, "input_quota_used") + + @property + @pulumi.getter(name="isThrottled") + def is_throttled(self) -> bool: + """ + Whether bandwidth is throttleted for being over quota + """ + return pulumi.get(self, "is_throttled") + + @property + @pulumi.getter(name="outputQuotaSize") + def output_quota_size(self) -> 'outputs.GetServerSpecificationsNetworkTrafficOutputQuotaSizeResult': + """ + Monthly output traffic quota allowed + """ + return pulumi.get(self, "output_quota_size") + + @property + @pulumi.getter(name="outputQuotaUsed") + def output_quota_used(self) -> 'outputs.GetServerSpecificationsNetworkTrafficOutputQuotaUsedResult': + """ + Monthly output traffic consumed this month + """ + return pulumi.get(self, "output_quota_used") + + @property + @pulumi.getter(name="resetQuotaDate") + def reset_quota_date(self) -> str: + """ + Next reset quota date for traffic counter + """ + return pulumi.get(self, "reset_quota_date") + + +@pulumi.output_type +class GetServerSpecificationsNetworkTrafficInputQuotaSizeResult(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 GetServerSpecificationsNetworkTrafficInputQuotaUsedResult(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 GetServerSpecificationsNetworkTrafficOutputQuotaSizeResult(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 GetServerSpecificationsNetworkTrafficOutputQuotaUsedResult(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 GetServerSpecificationsNetworkVmacResult(dict): + def __init__(__self__, *, + supported: bool): + """ + :param bool supported: Whether server is compatible vmac + """ + pulumi.set(__self__, "supported", supported) + + @property + @pulumi.getter + def supported(self) -> bool: + """ + Whether server is compatible vmac + """ + return pulumi.get(self, "supported") + + +@pulumi.output_type +class GetServerSpecificationsNetworkVrackResult(dict): + def __init__(__self__, *, + bandwidth: 'outputs.GetServerSpecificationsNetworkVrackBandwidthResult', + type: str): + """ + :param 'GetServerSpecificationsNetworkVrackBandwidthArgs' bandwidth: vrack bandwidth limitation + :param str type: Bandwidth offer type (included┃standard) + """ + pulumi.set(__self__, "bandwidth", bandwidth) + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter + def bandwidth(self) -> 'outputs.GetServerSpecificationsNetworkVrackBandwidthResult': + """ + vrack bandwidth limitation + """ + return pulumi.get(self, "bandwidth") + + @property + @pulumi.getter + def type(self) -> str: + """ + Bandwidth offer type (included┃standard) + """ + return pulumi.get(self, "type") + + +@pulumi.output_type +class GetServerSpecificationsNetworkVrackBandwidthResult(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/dedicated/server_install_task.py b/sdk/python/pulumi_ovh/dedicated/server_install_task.py index c7a47c1f..b03272e5 100644 --- a/sdk/python/pulumi_ovh/dedicated/server_install_task.py +++ b/sdk/python/pulumi_ovh/dedicated/server_install_task.py @@ -20,7 +20,8 @@ def __init__(__self__, *, template_name: pulumi.Input[str], bootid_on_destroy: Optional[pulumi.Input[int]] = None, details: Optional[pulumi.Input['ServerInstallTaskDetailsArgs']] = None, - partition_scheme_name: Optional[pulumi.Input[str]] = None): + partition_scheme_name: Optional[pulumi.Input[str]] = None, + user_metadatas: Optional[pulumi.Input[Sequence[pulumi.Input['ServerInstallTaskUserMetadataArgs']]]] = None): """ The set of arguments for constructing a ServerInstallTask resource. :param pulumi.Input[str] service_name: The service_name of your dedicated server. @@ -28,6 +29,7 @@ def __init__(__self__, *, :param pulumi.Input[int] bootid_on_destroy: If set, reboot the server on the specified boot id during destroy phase. :param pulumi.Input['ServerInstallTaskDetailsArgs'] details: see `details` block below. :param pulumi.Input[str] partition_scheme_name: Partition scheme name. + :param pulumi.Input[Sequence[pulumi.Input['ServerInstallTaskUserMetadataArgs']]] user_metadatas: see `user_metadata` block below. """ pulumi.set(__self__, "service_name", service_name) pulumi.set(__self__, "template_name", template_name) @@ -37,6 +39,8 @@ def __init__(__self__, *, pulumi.set(__self__, "details", details) if partition_scheme_name is not None: pulumi.set(__self__, "partition_scheme_name", partition_scheme_name) + if user_metadatas is not None: + pulumi.set(__self__, "user_metadatas", user_metadatas) @property @pulumi.getter(name="serviceName") @@ -98,6 +102,18 @@ def partition_scheme_name(self) -> Optional[pulumi.Input[str]]: def partition_scheme_name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "partition_scheme_name", value) + @property + @pulumi.getter(name="userMetadatas") + def user_metadatas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ServerInstallTaskUserMetadataArgs']]]]: + """ + see `user_metadata` block below. + """ + return pulumi.get(self, "user_metadatas") + + @user_metadatas.setter + def user_metadatas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ServerInstallTaskUserMetadataArgs']]]]): + pulumi.set(self, "user_metadatas", value) + @pulumi.input_type class _ServerInstallTaskState: @@ -112,7 +128,8 @@ def __init__(__self__, *, service_name: Optional[pulumi.Input[str]] = None, start_date: Optional[pulumi.Input[str]] = None, status: Optional[pulumi.Input[str]] = None, - template_name: Optional[pulumi.Input[str]] = None): + template_name: Optional[pulumi.Input[str]] = None, + user_metadatas: Optional[pulumi.Input[Sequence[pulumi.Input['ServerInstallTaskUserMetadataArgs']]]] = None): """ Input properties used for looking up and filtering ServerInstallTask resources. :param pulumi.Input[int] bootid_on_destroy: If set, reboot the server on the specified boot id during destroy phase. @@ -126,6 +143,7 @@ def __init__(__self__, *, :param pulumi.Input[str] start_date: Task creation date in RFC3339 format. :param pulumi.Input[str] status: Task status (should be `done`) :param pulumi.Input[str] template_name: Template name. + :param pulumi.Input[Sequence[pulumi.Input['ServerInstallTaskUserMetadataArgs']]] user_metadatas: see `user_metadata` block below. """ if bootid_on_destroy is not None: pulumi.set(__self__, "bootid_on_destroy", bootid_on_destroy) @@ -149,6 +167,8 @@ def __init__(__self__, *, pulumi.set(__self__, "status", status) if template_name is not None: pulumi.set(__self__, "template_name", template_name) + if user_metadatas is not None: + pulumi.set(__self__, "user_metadatas", user_metadatas) @property @pulumi.getter(name="bootidOnDestroy") @@ -282,6 +302,18 @@ def template_name(self) -> Optional[pulumi.Input[str]]: def template_name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "template_name", value) + @property + @pulumi.getter(name="userMetadatas") + def user_metadatas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ServerInstallTaskUserMetadataArgs']]]]: + """ + see `user_metadata` block below. + """ + return pulumi.get(self, "user_metadatas") + + @user_metadatas.setter + def user_metadatas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ServerInstallTaskUserMetadataArgs']]]]): + pulumi.set(self, "user_metadatas", value) + class ServerInstallTask(pulumi.CustomResource): @overload @@ -293,10 +325,12 @@ def __init__(__self__, partition_scheme_name: Optional[pulumi.Input[str]] = None, service_name: Optional[pulumi.Input[str]] = None, template_name: Optional[pulumi.Input[str]] = None, + user_metadatas: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ServerInstallTaskUserMetadataArgs']]]]] = None, __props__=None): """ ## Example Usage + Using a custom template based on an OVHCloud template ```python import pulumi @@ -304,15 +338,12 @@ def __init__(__self__, rescue = ovh.Dedicated.get_server_boots(service_name="nsxxxxxxx.ip-xx-xx-xx.eu", boot_type="rescue") - key = ovh.me.SshKey("key", - key_name="mykey", - key="ssh-ed25519 AAAAC3...") debian = ovh.me.InstallationTemplate("debian", - base_template_name="debian11_64", - template_name="mydebian11", - default_language="en", + base_template_name="debian12_64", + template_name="mydebian12", customization=ovh.me.InstallationTemplateCustomizationArgs( - ssh_key_name=key.key_name, + post_installation_script_link="http://test", + post_installation_script_return="ok", )) server_install = ovh.dedicated.ServerInstallTask("serverInstall", service_name="nsxxxxxxx.ip-xx-xx-xx.eu", @@ -320,7 +351,102 @@ def __init__(__self__, bootid_on_destroy=rescue.results[0], details=ovh.dedicated.ServerInstallTaskDetailsArgs( custom_hostname="mytest", - )) + ), + user_metadatas=[ovh.dedicated.ServerInstallTaskUserMetadataArgs( + key="sshKey", + value="ssh-ed25519 AAAAC3...", + )]) + ``` + + + Using a BringYourOwnLinux (BYOLinux) template (with userMetadata) + + + ```python + import pulumi + import pulumi_ovh as ovh + + server = ovh.get_server(service_name="nsxxxxxxx.ip-xx-xx-xx.eu") + rescue = ovh.Dedicated.get_server_boots(service_name="nsxxxxxxx.ip-xx-xx-xx.eu", + boot_type="rescue") + server_install = ovh.dedicated.ServerInstallTask("serverInstall", + service_name=server.service_name, + template_name="byolinux_64", + bootid_on_destroy=rescue.results[0], + details=ovh.dedicated.ServerInstallTaskDetailsArgs( + custom_hostname="mytest", + ), + user_metadatas=[ + ovh.dedicated.ServerInstallTaskUserMetadataArgs( + key="imageURL", + value="https://myimage.qcow2", + ), + ovh.dedicated.ServerInstallTaskUserMetadataArgs( + key="imageType", + value="qcow2", + ), + ovh.dedicated.ServerInstallTaskUserMetadataArgs( + key="httpHeaders0Key", + value="Authorization", + ), + ovh.dedicated.ServerInstallTaskUserMetadataArgs( + key="httpHeaders0Value", + value="Basic bG9naW46xxxxxxx=", + ), + ovh.dedicated.ServerInstallTaskUserMetadataArgs( + key="imageChecksumType", + value="sha512", + ), + ovh.dedicated.ServerInstallTaskUserMetadataArgs( + key="imageCheckSum", + value="047122c9ff4d2a69512212104b06c678f5a9cdb22b75467353613ff87ccd03b57b38967e56d810e61366f9d22d6bd39ac0addf4e00a4c6445112a2416af8f225", + ), + ovh.dedicated.ServerInstallTaskUserMetadataArgs( + key="configDriveUserData", + value=f\"\"\"#cloud-config + ssh_authorized_keys: + - {data["ovh_me_ssh_key"]["mykey"]["key"]} + + users: + - name: patient0 + sudo: ALL=(ALL) NOPASSWD:ALL + groups: users, sudo + shell: /bin/bash + lock_passwd: false + ssh_authorized_keys: + - {data["ovh_me_ssh_key"]["mykey"]["key"]} + disable_root: false + packages: + - vim + - tree + final_message: The system is finally up, after $UPTIME seconds + \"\"\", + ), + ]) + ``` + + + Using a Microsoft Windows server OVHcloud template with a specific language + + + ```python + import pulumi + import pulumi_ovh as ovh + + server = ovh.get_server(service_name="nsxxxxxxx.ip-xx-xx-xx.eu") + rescue = ovh.Dedicated.get_server_boots(service_name="nsxxxxxxx.ip-xx-xx-xx.eu", + boot_type="rescue") + server_install = ovh.dedicated.ServerInstallTask("serverInstall", + service_name=server.service_name, + template_name="win2019-std_64", + bootid_on_destroy=rescue.results[0], + details=ovh.dedicated.ServerInstallTaskDetailsArgs( + custom_hostname="mytest", + ), + user_metadatas=[ovh.dedicated.ServerInstallTaskUserMetadataArgs( + key="language", + value="fr-fr", + )]) ``` @@ -341,6 +467,7 @@ def __init__(__self__, :param pulumi.Input[str] partition_scheme_name: Partition scheme name. :param pulumi.Input[str] service_name: The service_name of your dedicated server. :param pulumi.Input[str] template_name: Template name. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ServerInstallTaskUserMetadataArgs']]]] user_metadatas: see `user_metadata` block below. """ ... @overload @@ -351,6 +478,7 @@ def __init__(__self__, """ ## Example Usage + Using a custom template based on an OVHCloud template ```python import pulumi @@ -358,15 +486,12 @@ def __init__(__self__, rescue = ovh.Dedicated.get_server_boots(service_name="nsxxxxxxx.ip-xx-xx-xx.eu", boot_type="rescue") - key = ovh.me.SshKey("key", - key_name="mykey", - key="ssh-ed25519 AAAAC3...") debian = ovh.me.InstallationTemplate("debian", - base_template_name="debian11_64", - template_name="mydebian11", - default_language="en", + base_template_name="debian12_64", + template_name="mydebian12", customization=ovh.me.InstallationTemplateCustomizationArgs( - ssh_key_name=key.key_name, + post_installation_script_link="http://test", + post_installation_script_return="ok", )) server_install = ovh.dedicated.ServerInstallTask("serverInstall", service_name="nsxxxxxxx.ip-xx-xx-xx.eu", @@ -374,7 +499,102 @@ def __init__(__self__, bootid_on_destroy=rescue.results[0], details=ovh.dedicated.ServerInstallTaskDetailsArgs( custom_hostname="mytest", - )) + ), + user_metadatas=[ovh.dedicated.ServerInstallTaskUserMetadataArgs( + key="sshKey", + value="ssh-ed25519 AAAAC3...", + )]) + ``` + + + Using a BringYourOwnLinux (BYOLinux) template (with userMetadata) + + + ```python + import pulumi + import pulumi_ovh as ovh + + server = ovh.get_server(service_name="nsxxxxxxx.ip-xx-xx-xx.eu") + rescue = ovh.Dedicated.get_server_boots(service_name="nsxxxxxxx.ip-xx-xx-xx.eu", + boot_type="rescue") + server_install = ovh.dedicated.ServerInstallTask("serverInstall", + service_name=server.service_name, + template_name="byolinux_64", + bootid_on_destroy=rescue.results[0], + details=ovh.dedicated.ServerInstallTaskDetailsArgs( + custom_hostname="mytest", + ), + user_metadatas=[ + ovh.dedicated.ServerInstallTaskUserMetadataArgs( + key="imageURL", + value="https://myimage.qcow2", + ), + ovh.dedicated.ServerInstallTaskUserMetadataArgs( + key="imageType", + value="qcow2", + ), + ovh.dedicated.ServerInstallTaskUserMetadataArgs( + key="httpHeaders0Key", + value="Authorization", + ), + ovh.dedicated.ServerInstallTaskUserMetadataArgs( + key="httpHeaders0Value", + value="Basic bG9naW46xxxxxxx=", + ), + ovh.dedicated.ServerInstallTaskUserMetadataArgs( + key="imageChecksumType", + value="sha512", + ), + ovh.dedicated.ServerInstallTaskUserMetadataArgs( + key="imageCheckSum", + value="047122c9ff4d2a69512212104b06c678f5a9cdb22b75467353613ff87ccd03b57b38967e56d810e61366f9d22d6bd39ac0addf4e00a4c6445112a2416af8f225", + ), + ovh.dedicated.ServerInstallTaskUserMetadataArgs( + key="configDriveUserData", + value=f\"\"\"#cloud-config + ssh_authorized_keys: + - {data["ovh_me_ssh_key"]["mykey"]["key"]} + + users: + - name: patient0 + sudo: ALL=(ALL) NOPASSWD:ALL + groups: users, sudo + shell: /bin/bash + lock_passwd: false + ssh_authorized_keys: + - {data["ovh_me_ssh_key"]["mykey"]["key"]} + disable_root: false + packages: + - vim + - tree + final_message: The system is finally up, after $UPTIME seconds + \"\"\", + ), + ]) + ``` + + + Using a Microsoft Windows server OVHcloud template with a specific language + + + ```python + import pulumi + import pulumi_ovh as ovh + + server = ovh.get_server(service_name="nsxxxxxxx.ip-xx-xx-xx.eu") + rescue = ovh.Dedicated.get_server_boots(service_name="nsxxxxxxx.ip-xx-xx-xx.eu", + boot_type="rescue") + server_install = ovh.dedicated.ServerInstallTask("serverInstall", + service_name=server.service_name, + template_name="win2019-std_64", + bootid_on_destroy=rescue.results[0], + details=ovh.dedicated.ServerInstallTaskDetailsArgs( + custom_hostname="mytest", + ), + user_metadatas=[ovh.dedicated.ServerInstallTaskUserMetadataArgs( + key="language", + value="fr-fr", + )]) ``` @@ -408,6 +628,7 @@ def _internal_init(__self__, partition_scheme_name: Optional[pulumi.Input[str]] = None, service_name: Optional[pulumi.Input[str]] = None, template_name: Optional[pulumi.Input[str]] = None, + user_metadatas: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ServerInstallTaskUserMetadataArgs']]]]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -426,6 +647,7 @@ def _internal_init(__self__, if template_name is None and not opts.urn: raise TypeError("Missing required property 'template_name'") __props__.__dict__["template_name"] = template_name + __props__.__dict__["user_metadatas"] = user_metadatas __props__.__dict__["comment"] = None __props__.__dict__["done_date"] = None __props__.__dict__["function"] = None @@ -452,7 +674,8 @@ def get(resource_name: str, service_name: Optional[pulumi.Input[str]] = None, start_date: Optional[pulumi.Input[str]] = None, status: Optional[pulumi.Input[str]] = None, - template_name: Optional[pulumi.Input[str]] = None) -> 'ServerInstallTask': + template_name: Optional[pulumi.Input[str]] = None, + user_metadatas: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ServerInstallTaskUserMetadataArgs']]]]] = None) -> 'ServerInstallTask': """ Get an existing ServerInstallTask resource's state with the given name, id, and optional extra properties used to qualify the lookup. @@ -471,6 +694,7 @@ def get(resource_name: str, :param pulumi.Input[str] start_date: Task creation date in RFC3339 format. :param pulumi.Input[str] status: Task status (should be `done`) :param pulumi.Input[str] template_name: Template name. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ServerInstallTaskUserMetadataArgs']]]] user_metadatas: see `user_metadata` block below. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -487,6 +711,7 @@ def get(resource_name: str, __props__.__dict__["start_date"] = start_date __props__.__dict__["status"] = status __props__.__dict__["template_name"] = template_name + __props__.__dict__["user_metadatas"] = user_metadatas return ServerInstallTask(resource_name, opts=opts, __props__=__props__) @property @@ -577,3 +802,11 @@ def template_name(self) -> pulumi.Output[str]: """ return pulumi.get(self, "template_name") + @property + @pulumi.getter(name="userMetadatas") + def user_metadatas(self) -> pulumi.Output[Optional[Sequence['outputs.ServerInstallTaskUserMetadata']]]: + """ + see `user_metadata` block below. + """ + return pulumi.get(self, "user_metadatas") + diff --git a/sdk/python/pulumi_ovh/me/_inputs.py b/sdk/python/pulumi_ovh/me/_inputs.py index f7af47cc..7c99fe9c 100644 --- a/sdk/python/pulumi_ovh/me/_inputs.py +++ b/sdk/python/pulumi_ovh/me/_inputs.py @@ -19,14 +19,12 @@ def __init__(__self__, *, custom_hostname: Optional[pulumi.Input[str]] = None, post_installation_script_link: Optional[pulumi.Input[str]] = None, post_installation_script_return: Optional[pulumi.Input[str]] = None, - rating: Optional[pulumi.Input[int]] = None, ssh_key_name: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] custom_hostname: Set up the server using the provided hostname instead of the default hostname. :param pulumi.Input[str] post_installation_script_link: Indicate the URL where your postinstall customisation script is located. :param pulumi.Input[str] post_installation_script_return: indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - :param pulumi.Input[int] rating: Rating. - :param pulumi.Input[str] ssh_key_name: Name of the ssh key that should be installed. Password login will be disabled. + :param pulumi.Input[str] ssh_key_name: Deprecated. """ if custom_hostname is not None: pulumi.set(__self__, "custom_hostname", custom_hostname) @@ -34,11 +32,9 @@ def __init__(__self__, *, pulumi.set(__self__, "post_installation_script_link", post_installation_script_link) if post_installation_script_return is not None: pulumi.set(__self__, "post_installation_script_return", post_installation_script_return) - if rating is not None: - warnings.warn("""field is not used anymore""", DeprecationWarning) - pulumi.log.warn("""rating is deprecated: field is not used anymore""") - if rating is not None: - pulumi.set(__self__, "rating", rating) + if ssh_key_name is not None: + warnings.warn("""This field is deprecated and will be removed in a future release.""", DeprecationWarning) + pulumi.log.warn("""ssh_key_name is deprecated: This field is deprecated and will be removed in a future release.""") if ssh_key_name is not None: pulumi.set(__self__, "ssh_key_name", ssh_key_name) @@ -78,27 +74,15 @@ def post_installation_script_return(self) -> Optional[pulumi.Input[str]]: def post_installation_script_return(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "post_installation_script_return", value) - @property - @pulumi.getter - def rating(self) -> Optional[pulumi.Input[int]]: - """ - Rating. - """ - warnings.warn("""field is not used anymore""", DeprecationWarning) - pulumi.log.warn("""rating is deprecated: field is not used anymore""") - - return pulumi.get(self, "rating") - - @rating.setter - def rating(self, value: Optional[pulumi.Input[int]]): - pulumi.set(self, "rating", value) - @property @pulumi.getter(name="sshKeyName") def ssh_key_name(self) -> Optional[pulumi.Input[str]]: """ - Name of the ssh key that should be installed. Password login will be disabled. + Deprecated. """ + warnings.warn("""This field is deprecated and will be removed in a future release.""", DeprecationWarning) + pulumi.log.warn("""ssh_key_name is deprecated: This field is deprecated and will be removed in a future release.""") + return pulumi.get(self, "ssh_key_name") @ssh_key_name.setter diff --git a/sdk/python/pulumi_ovh/me/get_installation_template.py b/sdk/python/pulumi_ovh/me/get_installation_template.py index 2d41e547..dd313123 100644 --- a/sdk/python/pulumi_ovh/me/get_installation_template.py +++ b/sdk/python/pulumi_ovh/me/get_installation_template.py @@ -22,13 +22,10 @@ class GetInstallationTemplateResult: """ A collection of values returned by getInstallationTemplate. """ - def __init__(__self__, available_languages=None, beta=None, bit_format=None, category=None, customizations=None, default_language=None, deprecated=None, description=None, distribution=None, family=None, filesystems=None, hard_raid_configuration=None, id=None, last_modification=None, lvm_ready=None, partition_schemes=None, supports_sql_server=None, template_name=None): + def __init__(__self__, available_languages=None, bit_format=None, category=None, customizations=None, default_language=None, description=None, distribution=None, family=None, filesystems=None, hard_raid_configuration=None, id=None, lvm_ready=None, partition_schemes=None, template_name=None): if available_languages and not isinstance(available_languages, list): raise TypeError("Expected argument 'available_languages' to be a list") pulumi.set(__self__, "available_languages", available_languages) - if beta and not isinstance(beta, bool): - raise TypeError("Expected argument 'beta' to be a bool") - pulumi.set(__self__, "beta", beta) if bit_format and not isinstance(bit_format, int): raise TypeError("Expected argument 'bit_format' to be a int") pulumi.set(__self__, "bit_format", bit_format) @@ -41,9 +38,6 @@ def __init__(__self__, available_languages=None, beta=None, bit_format=None, cat if default_language and not isinstance(default_language, str): raise TypeError("Expected argument 'default_language' to be a str") pulumi.set(__self__, "default_language", default_language) - if deprecated and not isinstance(deprecated, bool): - raise TypeError("Expected argument 'deprecated' to be a bool") - pulumi.set(__self__, "deprecated", deprecated) if description and not isinstance(description, str): raise TypeError("Expected argument 'description' to be a str") pulumi.set(__self__, "description", description) @@ -62,18 +56,12 @@ def __init__(__self__, available_languages=None, beta=None, bit_format=None, cat if id and not isinstance(id, str): raise TypeError("Expected argument 'id' to be a str") pulumi.set(__self__, "id", id) - if last_modification and not isinstance(last_modification, str): - raise TypeError("Expected argument 'last_modification' to be a str") - pulumi.set(__self__, "last_modification", last_modification) if lvm_ready and not isinstance(lvm_ready, bool): raise TypeError("Expected argument 'lvm_ready' to be a bool") pulumi.set(__self__, "lvm_ready", lvm_ready) if partition_schemes and not isinstance(partition_schemes, list): raise TypeError("Expected argument 'partition_schemes' to be a list") pulumi.set(__self__, "partition_schemes", partition_schemes) - if supports_sql_server and not isinstance(supports_sql_server, bool): - raise TypeError("Expected argument 'supports_sql_server' to be a bool") - pulumi.set(__self__, "supports_sql_server", supports_sql_server) if template_name and not isinstance(template_name, str): raise TypeError("Expected argument 'template_name' to be a str") pulumi.set(__self__, "template_name", template_name) @@ -82,18 +70,10 @@ def __init__(__self__, available_languages=None, beta=None, bit_format=None, cat @pulumi.getter(name="availableLanguages") def available_languages(self) -> Sequence[str]: """ - List of all language available for this template. + List of all language available for this template. Deprecated, will be removed in next release. """ return pulumi.get(self, "available_languages") - @property - @pulumi.getter - def beta(self) -> bool: - """ - This distribution is new and, although tested and functional, may still display odd behaviour. - """ - return pulumi.get(self, "beta") - @property @pulumi.getter(name="bitFormat") def bit_format(self) -> int: @@ -119,17 +99,12 @@ def customizations(self) -> Sequence['outputs.GetInstallationTemplateCustomizati @pulumi.getter(name="defaultLanguage") def default_language(self) -> str: """ - The default language of this template. + The default language of this template. Deprecated, will be removed in next release. """ - return pulumi.get(self, "default_language") + warnings.warn("""This field will be removed from the API, please use `userMetadata` instead.""", DeprecationWarning) + pulumi.log.warn("""default_language is deprecated: This field will be removed from the API, please use `userMetadata` instead.""") - @property - @pulumi.getter - def deprecated(self) -> bool: - """ - is this distribution deprecated. - """ - return pulumi.get(self, "deprecated") + return pulumi.get(self, "default_language") @property @pulumi.getter @@ -179,14 +154,6 @@ def id(self) -> str: """ return pulumi.get(self, "id") - @property - @pulumi.getter(name="lastModification") - def last_modification(self) -> str: - """ - Date of last modification of the base image. - """ - return pulumi.get(self, "last_modification") - @property @pulumi.getter(name="lvmReady") def lvm_ready(self) -> bool: @@ -197,14 +164,6 @@ def lvm_ready(self) -> bool: def partition_schemes(self) -> Sequence['outputs.GetInstallationTemplatePartitionSchemeResult']: return pulumi.get(self, "partition_schemes") - @property - @pulumi.getter(name="supportsSqlServer") - def supports_sql_server(self) -> bool: - """ - This distribution supports the microsoft SQL server. - """ - return pulumi.get(self, "supports_sql_server") - @property @pulumi.getter(name="templateName") def template_name(self) -> str: @@ -218,22 +177,18 @@ def __await__(self): yield self return GetInstallationTemplateResult( available_languages=self.available_languages, - beta=self.beta, bit_format=self.bit_format, category=self.category, customizations=self.customizations, default_language=self.default_language, - deprecated=self.deprecated, description=self.description, distribution=self.distribution, family=self.family, filesystems=self.filesystems, hard_raid_configuration=self.hard_raid_configuration, id=self.id, - last_modification=self.last_modification, lvm_ready=self.lvm_ready, partition_schemes=self.partition_schemes, - supports_sql_server=self.supports_sql_server, template_name=self.template_name) @@ -263,22 +218,18 @@ def get_installation_template(template_name: Optional[str] = None, return AwaitableGetInstallationTemplateResult( available_languages=pulumi.get(__ret__, 'available_languages'), - beta=pulumi.get(__ret__, 'beta'), bit_format=pulumi.get(__ret__, 'bit_format'), category=pulumi.get(__ret__, 'category'), customizations=pulumi.get(__ret__, 'customizations'), default_language=pulumi.get(__ret__, 'default_language'), - deprecated=pulumi.get(__ret__, 'deprecated'), description=pulumi.get(__ret__, 'description'), distribution=pulumi.get(__ret__, 'distribution'), family=pulumi.get(__ret__, 'family'), filesystems=pulumi.get(__ret__, 'filesystems'), hard_raid_configuration=pulumi.get(__ret__, 'hard_raid_configuration'), id=pulumi.get(__ret__, 'id'), - last_modification=pulumi.get(__ret__, 'last_modification'), lvm_ready=pulumi.get(__ret__, 'lvm_ready'), partition_schemes=pulumi.get(__ret__, 'partition_schemes'), - supports_sql_server=pulumi.get(__ret__, 'supports_sql_server'), template_name=pulumi.get(__ret__, 'template_name')) diff --git a/sdk/python/pulumi_ovh/me/get_ssh_key.py b/sdk/python/pulumi_ovh/me/get_ssh_key.py index 213f84ff..f5824ec7 100644 --- a/sdk/python/pulumi_ovh/me/get_ssh_key.py +++ b/sdk/python/pulumi_ovh/me/get_ssh_key.py @@ -84,6 +84,8 @@ def __await__(self): def get_ssh_key(key_name: Optional[str] = None, opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetSshKeyResult: """ + > __NOTE__ This data source will be removed in next release. + Use this data source to retrieve information about an SSH key. ## Example Usage @@ -116,6 +118,8 @@ def get_ssh_key(key_name: Optional[str] = None, def get_ssh_key_output(key_name: Optional[pulumi.Input[str]] = None, opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetSshKeyResult]: """ + > __NOTE__ This data source will be removed in next release. + Use this data source to retrieve information about an SSH key. ## Example Usage diff --git a/sdk/python/pulumi_ovh/me/installation_template.py b/sdk/python/pulumi_ovh/me/installation_template.py index fdba19f7..72808994 100644 --- a/sdk/python/pulumi_ovh/me/installation_template.py +++ b/sdk/python/pulumi_ovh/me/installation_template.py @@ -17,22 +17,26 @@ class InstallationTemplateArgs: def __init__(__self__, *, base_template_name: pulumi.Input[str], - default_language: pulumi.Input[str], template_name: pulumi.Input[str], customization: Optional[pulumi.Input['InstallationTemplateCustomizationArgs']] = None, + default_language: Optional[pulumi.Input[str]] = None, remove_default_partition_schemes: Optional[pulumi.Input[bool]] = None): """ The set of arguments for constructing a InstallationTemplate resource. :param pulumi.Input[str] base_template_name: The name of an existing installation template, choose one among the list given by `get_installation_templates` datasource. - :param pulumi.Input[str] default_language: The default language of this template. :param pulumi.Input[str] template_name: This template name. + :param pulumi.Input[str] default_language: Deprecated, use language in userMetadata instead. :param pulumi.Input[bool] remove_default_partition_schemes: Remove default partition schemes at creation. """ pulumi.set(__self__, "base_template_name", base_template_name) - pulumi.set(__self__, "default_language", default_language) pulumi.set(__self__, "template_name", template_name) if customization is not None: pulumi.set(__self__, "customization", customization) + if default_language is not None: + warnings.warn("""This field is deprecated and will be removed in a future release.""", DeprecationWarning) + pulumi.log.warn("""default_language is deprecated: This field is deprecated and will be removed in a future release.""") + if default_language is not None: + pulumi.set(__self__, "default_language", default_language) if remove_default_partition_schemes is not None: pulumi.set(__self__, "remove_default_partition_schemes", remove_default_partition_schemes) @@ -48,18 +52,6 @@ def base_template_name(self) -> pulumi.Input[str]: def base_template_name(self, value: pulumi.Input[str]): pulumi.set(self, "base_template_name", value) - @property - @pulumi.getter(name="defaultLanguage") - def default_language(self) -> pulumi.Input[str]: - """ - The default language of this template. - """ - return pulumi.get(self, "default_language") - - @default_language.setter - def default_language(self, value: pulumi.Input[str]): - pulumi.set(self, "default_language", value) - @property @pulumi.getter(name="templateName") def template_name(self) -> pulumi.Input[str]: @@ -81,6 +73,21 @@ def customization(self) -> Optional[pulumi.Input['InstallationTemplateCustomizat def customization(self, value: Optional[pulumi.Input['InstallationTemplateCustomizationArgs']]): pulumi.set(self, "customization", value) + @property + @pulumi.getter(name="defaultLanguage") + def default_language(self) -> Optional[pulumi.Input[str]]: + """ + Deprecated, use language in userMetadata instead. + """ + warnings.warn("""This field is deprecated and will be removed in a future release.""", DeprecationWarning) + pulumi.log.warn("""default_language is deprecated: This field is deprecated and will be removed in a future release.""") + + return pulumi.get(self, "default_language") + + @default_language.setter + def default_language(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "default_language", value) + @property @pulumi.getter(name="removeDefaultPartitionSchemes") def remove_default_partition_schemes(self) -> Optional[pulumi.Input[bool]]: @@ -99,58 +106,52 @@ class _InstallationTemplateState: def __init__(__self__, *, available_languages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, base_template_name: Optional[pulumi.Input[str]] = None, - beta: Optional[pulumi.Input[bool]] = None, bit_format: Optional[pulumi.Input[int]] = None, category: Optional[pulumi.Input[str]] = None, customization: Optional[pulumi.Input['InstallationTemplateCustomizationArgs']] = None, default_language: Optional[pulumi.Input[str]] = None, - deprecated: Optional[pulumi.Input[bool]] = None, description: Optional[pulumi.Input[str]] = None, distribution: Optional[pulumi.Input[str]] = None, family: Optional[pulumi.Input[str]] = None, filesystems: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, hard_raid_configuration: Optional[pulumi.Input[bool]] = None, - last_modification: Optional[pulumi.Input[str]] = None, lvm_ready: Optional[pulumi.Input[bool]] = None, remove_default_partition_schemes: Optional[pulumi.Input[bool]] = None, - supports_sql_server: Optional[pulumi.Input[bool]] = None, template_name: Optional[pulumi.Input[str]] = None): """ Input properties used for looking up and filtering InstallationTemplate resources. - :param pulumi.Input[Sequence[pulumi.Input[str]]] available_languages: List of all language available for this template. + :param pulumi.Input[Sequence[pulumi.Input[str]]] available_languages: Deprecated. :param pulumi.Input[str] base_template_name: The name of an existing installation template, choose one among the list given by `get_installation_templates` datasource. - :param pulumi.Input[bool] beta: This distribution is new and, although tested and functional, may still display odd behaviour. :param pulumi.Input[int] bit_format: This template bit format (32 or 64). :param pulumi.Input[str] category: Category of this template (informative only). (basic, customer, hosting, other, readyToUse, virtualisation). - :param pulumi.Input[str] default_language: The default language of this template. - :param pulumi.Input[bool] deprecated: is this distribution deprecated. + :param pulumi.Input[str] default_language: Deprecated, use language in userMetadata instead. :param pulumi.Input[str] description: information about this template. :param pulumi.Input[str] distribution: the distribution this template is based on. :param pulumi.Input[str] family: this template family type (bsd,linux,solaris,windows). :param pulumi.Input[Sequence[pulumi.Input[str]]] filesystems: Filesystems available (btrfs,ext3,ext4,ntfs,reiserfs,swap,ufs,xfs,zfs). :param pulumi.Input[bool] hard_raid_configuration: This distribution supports hardware raid configuration through the OVHcloud API. - :param pulumi.Input[str] last_modification: Date of last modification of the base image. :param pulumi.Input[bool] lvm_ready: This distribution supports Logical Volumes (Linux LVM) :param pulumi.Input[bool] remove_default_partition_schemes: Remove default partition schemes at creation. - :param pulumi.Input[bool] supports_sql_server: This distribution supports the microsoft SQL server. :param pulumi.Input[str] template_name: This template name. """ if available_languages is not None: pulumi.set(__self__, "available_languages", available_languages) if base_template_name is not None: pulumi.set(__self__, "base_template_name", base_template_name) - if beta is not None: - pulumi.set(__self__, "beta", beta) if bit_format is not None: pulumi.set(__self__, "bit_format", bit_format) + if category is not None: + warnings.warn("""This field is deprecated and will be removed in a future release.""", DeprecationWarning) + pulumi.log.warn("""category is deprecated: This field is deprecated and will be removed in a future release.""") if category is not None: pulumi.set(__self__, "category", category) if customization is not None: pulumi.set(__self__, "customization", customization) + if default_language is not None: + warnings.warn("""This field is deprecated and will be removed in a future release.""", DeprecationWarning) + pulumi.log.warn("""default_language is deprecated: This field is deprecated and will be removed in a future release.""") if default_language is not None: pulumi.set(__self__, "default_language", default_language) - if deprecated is not None: - pulumi.set(__self__, "deprecated", deprecated) if description is not None: pulumi.set(__self__, "description", description) if distribution is not None: @@ -161,14 +162,10 @@ def __init__(__self__, *, pulumi.set(__self__, "filesystems", filesystems) if hard_raid_configuration is not None: pulumi.set(__self__, "hard_raid_configuration", hard_raid_configuration) - if last_modification is not None: - pulumi.set(__self__, "last_modification", last_modification) if lvm_ready is not None: pulumi.set(__self__, "lvm_ready", lvm_ready) if remove_default_partition_schemes is not None: pulumi.set(__self__, "remove_default_partition_schemes", remove_default_partition_schemes) - if supports_sql_server is not None: - pulumi.set(__self__, "supports_sql_server", supports_sql_server) if template_name is not None: pulumi.set(__self__, "template_name", template_name) @@ -176,7 +173,7 @@ def __init__(__self__, *, @pulumi.getter(name="availableLanguages") def available_languages(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - List of all language available for this template. + Deprecated. """ return pulumi.get(self, "available_languages") @@ -196,18 +193,6 @@ def base_template_name(self) -> Optional[pulumi.Input[str]]: def base_template_name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "base_template_name", value) - @property - @pulumi.getter - def beta(self) -> Optional[pulumi.Input[bool]]: - """ - This distribution is new and, although tested and functional, may still display odd behaviour. - """ - return pulumi.get(self, "beta") - - @beta.setter - def beta(self, value: Optional[pulumi.Input[bool]]): - pulumi.set(self, "beta", value) - @property @pulumi.getter(name="bitFormat") def bit_format(self) -> Optional[pulumi.Input[int]]: @@ -226,6 +211,9 @@ def category(self) -> Optional[pulumi.Input[str]]: """ Category of this template (informative only). (basic, customer, hosting, other, readyToUse, virtualisation). """ + warnings.warn("""This field is deprecated and will be removed in a future release.""", DeprecationWarning) + pulumi.log.warn("""category is deprecated: This field is deprecated and will be removed in a future release.""") + return pulumi.get(self, "category") @category.setter @@ -245,26 +233,17 @@ def customization(self, value: Optional[pulumi.Input['InstallationTemplateCustom @pulumi.getter(name="defaultLanguage") def default_language(self) -> Optional[pulumi.Input[str]]: """ - The default language of this template. + Deprecated, use language in userMetadata instead. """ + warnings.warn("""This field is deprecated and will be removed in a future release.""", DeprecationWarning) + pulumi.log.warn("""default_language is deprecated: This field is deprecated and will be removed in a future release.""") + return pulumi.get(self, "default_language") @default_language.setter def default_language(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "default_language", value) - @property - @pulumi.getter - def deprecated(self) -> Optional[pulumi.Input[bool]]: - """ - is this distribution deprecated. - """ - return pulumi.get(self, "deprecated") - - @deprecated.setter - def deprecated(self, value: Optional[pulumi.Input[bool]]): - pulumi.set(self, "deprecated", value) - @property @pulumi.getter def description(self) -> Optional[pulumi.Input[str]]: @@ -325,18 +304,6 @@ def hard_raid_configuration(self) -> Optional[pulumi.Input[bool]]: def hard_raid_configuration(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "hard_raid_configuration", value) - @property - @pulumi.getter(name="lastModification") - def last_modification(self) -> Optional[pulumi.Input[str]]: - """ - Date of last modification of the base image. - """ - return pulumi.get(self, "last_modification") - - @last_modification.setter - def last_modification(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "last_modification", value) - @property @pulumi.getter(name="lvmReady") def lvm_ready(self) -> Optional[pulumi.Input[bool]]: @@ -361,18 +328,6 @@ def remove_default_partition_schemes(self) -> Optional[pulumi.Input[bool]]: def remove_default_partition_schemes(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "remove_default_partition_schemes", value) - @property - @pulumi.getter(name="supportsSqlServer") - def supports_sql_server(self) -> Optional[pulumi.Input[bool]]: - """ - This distribution supports the microsoft SQL server. - """ - return pulumi.get(self, "supports_sql_server") - - @supports_sql_server.setter - def supports_sql_server(self, value: Optional[pulumi.Input[bool]]): - pulumi.set(self, "supports_sql_server", value) - @property @pulumi.getter(name="templateName") def template_name(self) -> Optional[pulumi.Input[str]]: @@ -400,20 +355,6 @@ def __init__(__self__, """ Use this resource to create a custom installation template available for dedicated servers. - ## Example Usage - - - ```python - import pulumi - import pulumi_ovh as ovh - - mytemplate = ovh.me.InstallationTemplate("mytemplate", - base_template_name="centos7_64", - default_language="en", - template_name="mytemplate") - ``` - - ## Import Custom installation template available for dedicated servers can be imported using the `base_template_name`, `template_name` of the cluster, separated by "/" E.g., @@ -427,7 +368,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] base_template_name: The name of an existing installation template, choose one among the list given by `get_installation_templates` datasource. - :param pulumi.Input[str] default_language: The default language of this template. + :param pulumi.Input[str] default_language: Deprecated, use language in userMetadata instead. :param pulumi.Input[bool] remove_default_partition_schemes: Remove default partition schemes at creation. :param pulumi.Input[str] template_name: This template name. """ @@ -440,20 +381,6 @@ def __init__(__self__, """ Use this resource to create a custom installation template available for dedicated servers. - ## Example Usage - - - ```python - import pulumi - import pulumi_ovh as ovh - - mytemplate = ovh.me.InstallationTemplate("mytemplate", - base_template_name="centos7_64", - default_language="en", - template_name="mytemplate") - ``` - - ## Import Custom installation template available for dedicated servers can be imported using the `base_template_name`, `template_name` of the cluster, separated by "/" E.g., @@ -497,26 +424,20 @@ def _internal_init(__self__, raise TypeError("Missing required property 'base_template_name'") __props__.__dict__["base_template_name"] = base_template_name __props__.__dict__["customization"] = customization - if default_language is None and not opts.urn: - raise TypeError("Missing required property 'default_language'") __props__.__dict__["default_language"] = default_language __props__.__dict__["remove_default_partition_schemes"] = remove_default_partition_schemes if template_name is None and not opts.urn: raise TypeError("Missing required property 'template_name'") __props__.__dict__["template_name"] = template_name __props__.__dict__["available_languages"] = None - __props__.__dict__["beta"] = None __props__.__dict__["bit_format"] = None __props__.__dict__["category"] = None - __props__.__dict__["deprecated"] = None __props__.__dict__["description"] = None __props__.__dict__["distribution"] = None __props__.__dict__["family"] = None __props__.__dict__["filesystems"] = None __props__.__dict__["hard_raid_configuration"] = None - __props__.__dict__["last_modification"] = None __props__.__dict__["lvm_ready"] = None - __props__.__dict__["supports_sql_server"] = None super(InstallationTemplate, __self__).__init__( 'ovh:Me/installationTemplate:InstallationTemplate', resource_name, @@ -529,21 +450,17 @@ def get(resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, available_languages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, base_template_name: Optional[pulumi.Input[str]] = None, - beta: Optional[pulumi.Input[bool]] = None, bit_format: Optional[pulumi.Input[int]] = None, category: Optional[pulumi.Input[str]] = None, customization: Optional[pulumi.Input[pulumi.InputType['InstallationTemplateCustomizationArgs']]] = None, default_language: Optional[pulumi.Input[str]] = None, - deprecated: Optional[pulumi.Input[bool]] = None, description: Optional[pulumi.Input[str]] = None, distribution: Optional[pulumi.Input[str]] = None, family: Optional[pulumi.Input[str]] = None, filesystems: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, hard_raid_configuration: Optional[pulumi.Input[bool]] = None, - last_modification: Optional[pulumi.Input[str]] = None, lvm_ready: Optional[pulumi.Input[bool]] = None, remove_default_partition_schemes: Optional[pulumi.Input[bool]] = None, - supports_sql_server: Optional[pulumi.Input[bool]] = None, template_name: Optional[pulumi.Input[str]] = None) -> 'InstallationTemplate': """ Get an existing InstallationTemplate resource's state with the given name, id, and optional extra @@ -552,22 +469,18 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[Sequence[pulumi.Input[str]]] available_languages: List of all language available for this template. + :param pulumi.Input[Sequence[pulumi.Input[str]]] available_languages: Deprecated. :param pulumi.Input[str] base_template_name: The name of an existing installation template, choose one among the list given by `get_installation_templates` datasource. - :param pulumi.Input[bool] beta: This distribution is new and, although tested and functional, may still display odd behaviour. :param pulumi.Input[int] bit_format: This template bit format (32 or 64). :param pulumi.Input[str] category: Category of this template (informative only). (basic, customer, hosting, other, readyToUse, virtualisation). - :param pulumi.Input[str] default_language: The default language of this template. - :param pulumi.Input[bool] deprecated: is this distribution deprecated. + :param pulumi.Input[str] default_language: Deprecated, use language in userMetadata instead. :param pulumi.Input[str] description: information about this template. :param pulumi.Input[str] distribution: the distribution this template is based on. :param pulumi.Input[str] family: this template family type (bsd,linux,solaris,windows). :param pulumi.Input[Sequence[pulumi.Input[str]]] filesystems: Filesystems available (btrfs,ext3,ext4,ntfs,reiserfs,swap,ufs,xfs,zfs). :param pulumi.Input[bool] hard_raid_configuration: This distribution supports hardware raid configuration through the OVHcloud API. - :param pulumi.Input[str] last_modification: Date of last modification of the base image. :param pulumi.Input[bool] lvm_ready: This distribution supports Logical Volumes (Linux LVM) :param pulumi.Input[bool] remove_default_partition_schemes: Remove default partition schemes at creation. - :param pulumi.Input[bool] supports_sql_server: This distribution supports the microsoft SQL server. :param pulumi.Input[str] template_name: This template name. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -576,21 +489,17 @@ def get(resource_name: str, __props__.__dict__["available_languages"] = available_languages __props__.__dict__["base_template_name"] = base_template_name - __props__.__dict__["beta"] = beta __props__.__dict__["bit_format"] = bit_format __props__.__dict__["category"] = category __props__.__dict__["customization"] = customization __props__.__dict__["default_language"] = default_language - __props__.__dict__["deprecated"] = deprecated __props__.__dict__["description"] = description __props__.__dict__["distribution"] = distribution __props__.__dict__["family"] = family __props__.__dict__["filesystems"] = filesystems __props__.__dict__["hard_raid_configuration"] = hard_raid_configuration - __props__.__dict__["last_modification"] = last_modification __props__.__dict__["lvm_ready"] = lvm_ready __props__.__dict__["remove_default_partition_schemes"] = remove_default_partition_schemes - __props__.__dict__["supports_sql_server"] = supports_sql_server __props__.__dict__["template_name"] = template_name return InstallationTemplate(resource_name, opts=opts, __props__=__props__) @@ -598,7 +507,7 @@ def get(resource_name: str, @pulumi.getter(name="availableLanguages") def available_languages(self) -> pulumi.Output[Sequence[str]]: """ - List of all language available for this template. + Deprecated. """ return pulumi.get(self, "available_languages") @@ -610,14 +519,6 @@ def base_template_name(self) -> pulumi.Output[str]: """ return pulumi.get(self, "base_template_name") - @property - @pulumi.getter - def beta(self) -> pulumi.Output[bool]: - """ - This distribution is new and, although tested and functional, may still display odd behaviour. - """ - return pulumi.get(self, "beta") - @property @pulumi.getter(name="bitFormat") def bit_format(self) -> pulumi.Output[int]: @@ -632,6 +533,9 @@ def category(self) -> pulumi.Output[str]: """ Category of this template (informative only). (basic, customer, hosting, other, readyToUse, virtualisation). """ + warnings.warn("""This field is deprecated and will be removed in a future release.""", DeprecationWarning) + pulumi.log.warn("""category is deprecated: This field is deprecated and will be removed in a future release.""") + return pulumi.get(self, "category") @property @@ -641,19 +545,14 @@ def customization(self) -> pulumi.Output[Optional['outputs.InstallationTemplateC @property @pulumi.getter(name="defaultLanguage") - def default_language(self) -> pulumi.Output[str]: + def default_language(self) -> pulumi.Output[Optional[str]]: """ - The default language of this template. + Deprecated, use language in userMetadata instead. """ - return pulumi.get(self, "default_language") + warnings.warn("""This field is deprecated and will be removed in a future release.""", DeprecationWarning) + pulumi.log.warn("""default_language is deprecated: This field is deprecated and will be removed in a future release.""") - @property - @pulumi.getter - def deprecated(self) -> pulumi.Output[bool]: - """ - is this distribution deprecated. - """ - return pulumi.get(self, "deprecated") + return pulumi.get(self, "default_language") @property @pulumi.getter @@ -695,14 +594,6 @@ def hard_raid_configuration(self) -> pulumi.Output[bool]: """ return pulumi.get(self, "hard_raid_configuration") - @property - @pulumi.getter(name="lastModification") - def last_modification(self) -> pulumi.Output[str]: - """ - Date of last modification of the base image. - """ - return pulumi.get(self, "last_modification") - @property @pulumi.getter(name="lvmReady") def lvm_ready(self) -> pulumi.Output[bool]: @@ -719,14 +610,6 @@ def remove_default_partition_schemes(self) -> pulumi.Output[bool]: """ return pulumi.get(self, "remove_default_partition_schemes") - @property - @pulumi.getter(name="supportsSqlServer") - def supports_sql_server(self) -> pulumi.Output[bool]: - """ - This distribution supports the microsoft SQL server. - """ - return pulumi.get(self, "supports_sql_server") - @property @pulumi.getter(name="templateName") def template_name(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_ovh/me/installation_template_partition_scheme.py b/sdk/python/pulumi_ovh/me/installation_template_partition_scheme.py index 74b62acb..ea9252e7 100644 --- a/sdk/python/pulumi_ovh/me/installation_template_partition_scheme.py +++ b/sdk/python/pulumi_ovh/me/installation_template_partition_scheme.py @@ -141,9 +141,8 @@ def __init__(__self__, import pulumi_ovh as ovh mytemplate = ovh.me.InstallationTemplate("mytemplate", - base_template_name="centos7_64", - template_name="mytemplate", - default_language="fr") + base_template_name="debian12_64", + template_name="mytemplate") scheme = ovh.me.InstallationTemplatePartitionScheme("scheme", template_name=mytemplate.template_name, priority=1) @@ -183,9 +182,8 @@ def __init__(__self__, import pulumi_ovh as ovh mytemplate = ovh.me.InstallationTemplate("mytemplate", - base_template_name="centos7_64", - template_name="mytemplate", - default_language="fr") + base_template_name="debian12_64", + template_name="mytemplate") scheme = ovh.me.InstallationTemplatePartitionScheme("scheme", template_name=mytemplate.template_name, priority=1) diff --git a/sdk/python/pulumi_ovh/me/installation_template_partition_scheme_hardware_raid.py b/sdk/python/pulumi_ovh/me/installation_template_partition_scheme_hardware_raid.py index aedc27e5..6cf1bd61 100644 --- a/sdk/python/pulumi_ovh/me/installation_template_partition_scheme_hardware_raid.py +++ b/sdk/python/pulumi_ovh/me/installation_template_partition_scheme_hardware_raid.py @@ -237,9 +237,8 @@ def __init__(__self__, import pulumi_ovh as ovh mytemplate = ovh.me.InstallationTemplate("mytemplate", - base_template_name="centos7_64", - template_name="mytemplate", - default_language="fr") + base_template_name="debian12_64", + template_name="mytemplate") scheme = ovh.me.InstallationTemplatePartitionScheme("scheme", template_name=mytemplate.template_name, priority=1) @@ -291,9 +290,8 @@ def __init__(__self__, import pulumi_ovh as ovh mytemplate = ovh.me.InstallationTemplate("mytemplate", - base_template_name="centos7_64", - template_name="mytemplate", - default_language="fr") + base_template_name="debian12_64", + template_name="mytemplate") scheme = ovh.me.InstallationTemplatePartitionScheme("scheme", template_name=mytemplate.template_name, priority=1) diff --git a/sdk/python/pulumi_ovh/me/installation_template_partition_scheme_partition.py b/sdk/python/pulumi_ovh/me/installation_template_partition_scheme_partition.py index 034b828d..913b24c1 100644 --- a/sdk/python/pulumi_ovh/me/installation_template_partition_scheme_partition.py +++ b/sdk/python/pulumi_ovh/me/installation_template_partition_scheme_partition.py @@ -402,9 +402,8 @@ def __init__(__self__, import pulumi_ovh as ovh mytemplate = ovh.me.InstallationTemplate("mytemplate", - base_template_name="centos7_64", - template_name="mytemplate", - default_language="fr") + base_template_name="debian12_64", + template_name="mytemplate") scheme = ovh.me.InstallationTemplatePartitionScheme("scheme", template_name=mytemplate.template_name, priority=1) @@ -475,9 +474,8 @@ def __init__(__self__, import pulumi_ovh as ovh mytemplate = ovh.me.InstallationTemplate("mytemplate", - base_template_name="centos7_64", - template_name="mytemplate", - default_language="fr") + base_template_name="debian12_64", + template_name="mytemplate") scheme = ovh.me.InstallationTemplatePartitionScheme("scheme", template_name=mytemplate.template_name, priority=1) diff --git a/sdk/python/pulumi_ovh/me/outputs.py b/sdk/python/pulumi_ovh/me/outputs.py index 6588b057..7bf9da01 100644 --- a/sdk/python/pulumi_ovh/me/outputs.py +++ b/sdk/python/pulumi_ovh/me/outputs.py @@ -48,14 +48,12 @@ def __init__(__self__, *, custom_hostname: Optional[str] = None, post_installation_script_link: Optional[str] = None, post_installation_script_return: Optional[str] = None, - rating: Optional[int] = None, ssh_key_name: Optional[str] = None): """ :param str custom_hostname: Set up the server using the provided hostname instead of the default hostname. :param str post_installation_script_link: Indicate the URL where your postinstall customisation script is located. :param str post_installation_script_return: indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - :param int rating: Rating. - :param str ssh_key_name: Name of the ssh key that should be installed. Password login will be disabled. + :param str ssh_key_name: Deprecated. """ if custom_hostname is not None: pulumi.set(__self__, "custom_hostname", custom_hostname) @@ -63,8 +61,6 @@ def __init__(__self__, *, pulumi.set(__self__, "post_installation_script_link", post_installation_script_link) if post_installation_script_return is not None: pulumi.set(__self__, "post_installation_script_return", post_installation_script_return) - if rating is not None: - pulumi.set(__self__, "rating", rating) if ssh_key_name is not None: pulumi.set(__self__, "ssh_key_name", ssh_key_name) @@ -92,23 +88,15 @@ def post_installation_script_return(self) -> Optional[str]: """ return pulumi.get(self, "post_installation_script_return") - @property - @pulumi.getter - def rating(self) -> Optional[int]: - """ - Rating. - """ - warnings.warn("""field is not used anymore""", DeprecationWarning) - pulumi.log.warn("""rating is deprecated: field is not used anymore""") - - return pulumi.get(self, "rating") - @property @pulumi.getter(name="sshKeyName") def ssh_key_name(self) -> Optional[str]: """ - Name of the ssh key that should be installed. Password login will be disabled. + Deprecated. """ + warnings.warn("""This field is deprecated and will be removed in a future release.""", DeprecationWarning) + pulumi.log.warn("""ssh_key_name is deprecated: This field is deprecated and will be removed in a future release.""") + return pulumi.get(self, "ssh_key_name") @@ -118,19 +106,16 @@ def __init__(__self__, *, custom_hostname: str, post_installation_script_link: str, post_installation_script_return: str, - rating: int, ssh_key_name: str): """ :param str custom_hostname: Set up the server using the provided hostname instead of the default hostname. :param str post_installation_script_link: Indicate the URL where your postinstall customisation script is located. :param str post_installation_script_return: indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - :param int rating: (DEPRECATED) Rating. - :param str ssh_key_name: Name of the ssh key that should be installed. Password login will be disabled. + :param str ssh_key_name: Name of the ssh key that should be installed. Password login will be disabled. Deprecated, will be removed in next release, use userMetada instead. """ pulumi.set(__self__, "custom_hostname", custom_hostname) pulumi.set(__self__, "post_installation_script_link", post_installation_script_link) pulumi.set(__self__, "post_installation_script_return", post_installation_script_return) - pulumi.set(__self__, "rating", rating) pulumi.set(__self__, "ssh_key_name", ssh_key_name) @property @@ -157,23 +142,15 @@ def post_installation_script_return(self) -> str: """ return pulumi.get(self, "post_installation_script_return") - @property - @pulumi.getter - def rating(self) -> int: - """ - (DEPRECATED) Rating. - """ - warnings.warn("""field is not used anymore""", DeprecationWarning) - pulumi.log.warn("""rating is deprecated: field is not used anymore""") - - return pulumi.get(self, "rating") - @property @pulumi.getter(name="sshKeyName") def ssh_key_name(self) -> str: """ - Name of the ssh key that should be installed. Password login will be disabled. + Name of the ssh key that should be installed. Password login will be disabled. Deprecated, will be removed in next release, use userMetada instead. """ + warnings.warn("""This field will be removed from the API, please use `userMetadata` instead.""", DeprecationWarning) + pulumi.log.warn("""ssh_key_name is deprecated: This field will be removed from the API, please use `userMetadata` instead.""") + return pulumi.get(self, "ssh_key_name") diff --git a/sdk/python/pulumi_ovh/me/ssh_key.py b/sdk/python/pulumi_ovh/me/ssh_key.py index d1ffbc98..a9a51cc9 100644 --- a/sdk/python/pulumi_ovh/me/ssh_key.py +++ b/sdk/python/pulumi_ovh/me/ssh_key.py @@ -23,8 +23,17 @@ def __init__(__self__, *, :param pulumi.Input[str] key_name: The friendly name of this SSH key. :param pulumi.Input[bool] default: True when this public SSH key is used for rescue mode and reinstallations. """ + if key is not None: + warnings.warn("""use userMetada instead""", DeprecationWarning) + pulumi.log.warn("""key is deprecated: use userMetada instead""") pulumi.set(__self__, "key", key) + if key_name is not None: + warnings.warn("""use userMetada instead""", DeprecationWarning) + pulumi.log.warn("""key_name is deprecated: use userMetada instead""") pulumi.set(__self__, "key_name", key_name) + if default is not None: + warnings.warn("""use userMetada instead""", DeprecationWarning) + pulumi.log.warn("""default is deprecated: use userMetada instead""") if default is not None: pulumi.set(__self__, "default", default) @@ -34,6 +43,9 @@ def key(self) -> pulumi.Input[str]: """ The content of the public key in the form "ssh-algo content", e.g. "ssh-ed25519 AAAAC3...". """ + warnings.warn("""use userMetada instead""", DeprecationWarning) + pulumi.log.warn("""key is deprecated: use userMetada instead""") + return pulumi.get(self, "key") @key.setter @@ -46,6 +58,9 @@ def key_name(self) -> pulumi.Input[str]: """ The friendly name of this SSH key. """ + warnings.warn("""use userMetada instead""", DeprecationWarning) + pulumi.log.warn("""key_name is deprecated: use userMetada instead""") + return pulumi.get(self, "key_name") @key_name.setter @@ -58,6 +73,9 @@ def default(self) -> Optional[pulumi.Input[bool]]: """ True when this public SSH key is used for rescue mode and reinstallations. """ + warnings.warn("""use userMetada instead""", DeprecationWarning) + pulumi.log.warn("""default is deprecated: use userMetada instead""") + return pulumi.get(self, "default") @default.setter @@ -77,10 +95,19 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The content of the public key in the form "ssh-algo content", e.g. "ssh-ed25519 AAAAC3...". :param pulumi.Input[str] key_name: The friendly name of this SSH key. """ + if default is not None: + warnings.warn("""use userMetada instead""", DeprecationWarning) + pulumi.log.warn("""default is deprecated: use userMetada instead""") if default is not None: pulumi.set(__self__, "default", default) + if key is not None: + warnings.warn("""use userMetada instead""", DeprecationWarning) + pulumi.log.warn("""key is deprecated: use userMetada instead""") if key is not None: pulumi.set(__self__, "key", key) + if key_name is not None: + warnings.warn("""use userMetada instead""", DeprecationWarning) + pulumi.log.warn("""key_name is deprecated: use userMetada instead""") if key_name is not None: pulumi.set(__self__, "key_name", key_name) @@ -90,6 +117,9 @@ def default(self) -> Optional[pulumi.Input[bool]]: """ True when this public SSH key is used for rescue mode and reinstallations. """ + warnings.warn("""use userMetada instead""", DeprecationWarning) + pulumi.log.warn("""default is deprecated: use userMetada instead""") + return pulumi.get(self, "default") @default.setter @@ -102,6 +132,9 @@ def key(self) -> Optional[pulumi.Input[str]]: """ The content of the public key in the form "ssh-algo content", e.g. "ssh-ed25519 AAAAC3...". """ + warnings.warn("""use userMetada instead""", DeprecationWarning) + pulumi.log.warn("""key is deprecated: use userMetada instead""") + return pulumi.get(self, "key") @key.setter @@ -114,6 +147,9 @@ def key_name(self) -> Optional[pulumi.Input[str]]: """ The friendly name of this SSH key. """ + warnings.warn("""use userMetada instead""", DeprecationWarning) + pulumi.log.warn("""key_name is deprecated: use userMetada instead""") + return pulumi.get(self, "key_name") @key_name.setter @@ -133,6 +169,8 @@ def __init__(__self__, """ ## Example Usage + > __NOTE__ This resource will be removed in next release, please use userMetada instead. + ```python import pulumi @@ -159,6 +197,8 @@ def __init__(__self__, """ ## Example Usage + > __NOTE__ This resource will be removed in next release, please use userMetada instead. + ```python import pulumi @@ -243,6 +283,9 @@ def default(self) -> pulumi.Output[bool]: """ True when this public SSH key is used for rescue mode and reinstallations. """ + warnings.warn("""use userMetada instead""", DeprecationWarning) + pulumi.log.warn("""default is deprecated: use userMetada instead""") + return pulumi.get(self, "default") @property @@ -251,6 +294,9 @@ def key(self) -> pulumi.Output[str]: """ The content of the public key in the form "ssh-algo content", e.g. "ssh-ed25519 AAAAC3...". """ + warnings.warn("""use userMetada instead""", DeprecationWarning) + pulumi.log.warn("""key is deprecated: use userMetada instead""") + return pulumi.get(self, "key") @property @@ -259,5 +305,8 @@ def key_name(self) -> pulumi.Output[str]: """ The friendly name of this SSH key. """ + warnings.warn("""use userMetada instead""", DeprecationWarning) + pulumi.log.warn("""key_name is deprecated: use userMetada instead""") + return pulumi.get(self, "key_name") diff --git a/sdk/python/pulumi_ovh/provider.py b/sdk/python/pulumi_ovh/provider.py index fafac7b1..7986588b 100644 --- a/sdk/python/pulumi_ovh/provider.py +++ b/sdk/python/pulumi_ovh/provider.py @@ -16,14 +16,18 @@ class ProviderArgs: def __init__(__self__, *, application_key: Optional[pulumi.Input[str]] = None, application_secret: Optional[pulumi.Input[str]] = None, + client_id: Optional[pulumi.Input[str]] = None, + client_secret: Optional[pulumi.Input[str]] = None, consumer_key: Optional[pulumi.Input[str]] = None, endpoint: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a Provider resource. - :param pulumi.Input[str] application_key: The OVH API Application Key. - :param pulumi.Input[str] application_secret: The OVH API Application Secret. - :param pulumi.Input[str] consumer_key: The OVH API Consumer key. - :param pulumi.Input[str] endpoint: The OVH API endpoint to target (ex: "ovh-eu"). + :param pulumi.Input[str] application_key: The OVH API Application Key + :param pulumi.Input[str] application_secret: The OVH API Application Secret + :param pulumi.Input[str] client_id: OAuth 2.0 application's ID + :param pulumi.Input[str] client_secret: OAuth 2.0 application's secret + :param pulumi.Input[str] consumer_key: The OVH API Consumer Key + :param pulumi.Input[str] endpoint: The OVH API endpoint to target (ex: "ovh-eu") """ if application_key is None: application_key = _utilities.get_env('OVH_APPLICATION_KEY') @@ -33,6 +37,10 @@ def __init__(__self__, *, application_secret = _utilities.get_env('OVH_APPLICATION_SECRET') if application_secret is not None: pulumi.set(__self__, "application_secret", application_secret) + if client_id is not None: + pulumi.set(__self__, "client_id", client_id) + if client_secret is not None: + pulumi.set(__self__, "client_secret", client_secret) if consumer_key is None: consumer_key = _utilities.get_env('OVH_CONSUMER_KEY') if consumer_key is not None: @@ -46,7 +54,7 @@ def __init__(__self__, *, @pulumi.getter(name="applicationKey") def application_key(self) -> Optional[pulumi.Input[str]]: """ - The OVH API Application Key. + The OVH API Application Key """ return pulumi.get(self, "application_key") @@ -58,7 +66,7 @@ def application_key(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="applicationSecret") def application_secret(self) -> Optional[pulumi.Input[str]]: """ - The OVH API Application Secret. + The OVH API Application Secret """ return pulumi.get(self, "application_secret") @@ -66,11 +74,35 @@ def application_secret(self) -> Optional[pulumi.Input[str]]: def application_secret(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "application_secret", value) + @property + @pulumi.getter(name="clientId") + def client_id(self) -> Optional[pulumi.Input[str]]: + """ + OAuth 2.0 application's ID + """ + return pulumi.get(self, "client_id") + + @client_id.setter + def client_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "client_id", value) + + @property + @pulumi.getter(name="clientSecret") + def client_secret(self) -> Optional[pulumi.Input[str]]: + """ + OAuth 2.0 application's secret + """ + return pulumi.get(self, "client_secret") + + @client_secret.setter + def client_secret(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "client_secret", value) + @property @pulumi.getter(name="consumerKey") def consumer_key(self) -> Optional[pulumi.Input[str]]: """ - The OVH API Consumer key. + The OVH API Consumer Key """ return pulumi.get(self, "consumer_key") @@ -82,7 +114,7 @@ def consumer_key(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def endpoint(self) -> Optional[pulumi.Input[str]]: """ - The OVH API endpoint to target (ex: "ovh-eu"). + The OVH API endpoint to target (ex: "ovh-eu") """ return pulumi.get(self, "endpoint") @@ -98,6 +130,8 @@ def __init__(__self__, opts: Optional[pulumi.ResourceOptions] = None, application_key: Optional[pulumi.Input[str]] = None, application_secret: Optional[pulumi.Input[str]] = None, + client_id: Optional[pulumi.Input[str]] = None, + client_secret: Optional[pulumi.Input[str]] = None, consumer_key: Optional[pulumi.Input[str]] = None, endpoint: Optional[pulumi.Input[str]] = None, __props__=None): @@ -109,10 +143,12 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[str] application_key: The OVH API Application Key. - :param pulumi.Input[str] application_secret: The OVH API Application Secret. - :param pulumi.Input[str] consumer_key: The OVH API Consumer key. - :param pulumi.Input[str] endpoint: The OVH API endpoint to target (ex: "ovh-eu"). + :param pulumi.Input[str] application_key: The OVH API Application Key + :param pulumi.Input[str] application_secret: The OVH API Application Secret + :param pulumi.Input[str] client_id: OAuth 2.0 application's ID + :param pulumi.Input[str] client_secret: OAuth 2.0 application's secret + :param pulumi.Input[str] consumer_key: The OVH API Consumer Key + :param pulumi.Input[str] endpoint: The OVH API endpoint to target (ex: "ovh-eu") """ ... @overload @@ -143,6 +179,8 @@ def _internal_init(__self__, opts: Optional[pulumi.ResourceOptions] = None, application_key: Optional[pulumi.Input[str]] = None, application_secret: Optional[pulumi.Input[str]] = None, + client_id: Optional[pulumi.Input[str]] = None, + client_secret: Optional[pulumi.Input[str]] = None, consumer_key: Optional[pulumi.Input[str]] = None, endpoint: Optional[pulumi.Input[str]] = None, __props__=None): @@ -160,6 +198,8 @@ def _internal_init(__self__, if application_secret is None: application_secret = _utilities.get_env('OVH_APPLICATION_SECRET') __props__.__dict__["application_secret"] = None if application_secret is None else pulumi.Output.secret(application_secret) + __props__.__dict__["client_id"] = client_id + __props__.__dict__["client_secret"] = client_secret if consumer_key is None: consumer_key = _utilities.get_env('OVH_CONSUMER_KEY') __props__.__dict__["consumer_key"] = consumer_key @@ -178,7 +218,7 @@ def _internal_init(__self__, @pulumi.getter(name="applicationKey") def application_key(self) -> pulumi.Output[Optional[str]]: """ - The OVH API Application Key. + The OVH API Application Key """ return pulumi.get(self, "application_key") @@ -186,15 +226,31 @@ def application_key(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="applicationSecret") def application_secret(self) -> pulumi.Output[Optional[str]]: """ - The OVH API Application Secret. + The OVH API Application Secret """ return pulumi.get(self, "application_secret") + @property + @pulumi.getter(name="clientId") + def client_id(self) -> pulumi.Output[Optional[str]]: + """ + OAuth 2.0 application's ID + """ + return pulumi.get(self, "client_id") + + @property + @pulumi.getter(name="clientSecret") + def client_secret(self) -> pulumi.Output[Optional[str]]: + """ + OAuth 2.0 application's secret + """ + return pulumi.get(self, "client_secret") + @property @pulumi.getter(name="consumerKey") def consumer_key(self) -> pulumi.Output[Optional[str]]: """ - The OVH API Consumer key. + The OVH API Consumer Key """ return pulumi.get(self, "consumer_key") @@ -202,7 +258,7 @@ def consumer_key(self) -> pulumi.Output[Optional[str]]: @pulumi.getter def endpoint(self) -> pulumi.Output[Optional[str]]: """ - The OVH API endpoint to target (ex: "ovh-eu"). + The OVH API endpoint to target (ex: "ovh-eu") """ return pulumi.get(self, "endpoint") diff --git a/sdk/python/pulumi_ovh/vrack/dedicated_server.py b/sdk/python/pulumi_ovh/vrack/dedicated_server.py index 0c36868e..30c776a5 100644 --- a/sdk/python/pulumi_ovh/vrack/dedicated_server.py +++ b/sdk/python/pulumi_ovh/vrack/dedicated_server.py @@ -102,10 +102,10 @@ def __init__(__self__, service_name: Optional[pulumi.Input[str]] = None, __props__=None): """ - > **NOTE:** The resource `Vrack.DedicatedServer` is DEPRECATED and will be removed in a future version. - Use the resource `Vrack.DedicatedServerInterface` instead. + Attach a legacy dedicated server to a vRack. - Attach a dedicated server to a VRack. + > **NOTE:** The resource `Vrack.DedicatedServer` is intended to be used for legacy dedicated servers.
+ Dedicated servers that have configurable network interfaces MUST use the resource `Vrack.DedicatedServerInterface` instead. ## Example Usage @@ -133,10 +133,10 @@ def __init__(__self__, args: DedicatedServerArgs, opts: Optional[pulumi.ResourceOptions] = None): """ - > **NOTE:** The resource `Vrack.DedicatedServer` is DEPRECATED and will be removed in a future version. - Use the resource `Vrack.DedicatedServerInterface` instead. + Attach a legacy dedicated server to a vRack. - Attach a dedicated server to a VRack. + > **NOTE:** The resource `Vrack.DedicatedServer` is intended to be used for legacy dedicated servers.
+ Dedicated servers that have configurable network interfaces MUST use the resource `Vrack.DedicatedServerInterface` instead. ## Example Usage diff --git a/sdk/python/pulumi_ovh/vrack/dedicated_server_interface.py b/sdk/python/pulumi_ovh/vrack/dedicated_server_interface.py index 2073b643..5033d0b3 100644 --- a/sdk/python/pulumi_ovh/vrack/dedicated_server_interface.py +++ b/sdk/python/pulumi_ovh/vrack/dedicated_server_interface.py @@ -102,7 +102,10 @@ def __init__(__self__, service_name: Optional[pulumi.Input[str]] = None, __props__=None): """ - Attach a Dedicated Server Network Interface to a VRack. + Attach a Dedicated Server Network Interface to a vRack. + + > **NOTE:** The resource `Vrack.DedicatedServerInterface` is intended to be used for dedicated servers that have configurable network interfaces.
+ Legacy Dedicated servers that do not have configurable network interfaces MUST use the resource `Vrack.DedicatedServer` instead. ## Example Usage @@ -131,7 +134,10 @@ def __init__(__self__, args: DedicatedServerInterfaceArgs, opts: Optional[pulumi.ResourceOptions] = None): """ - Attach a Dedicated Server Network Interface to a VRack. + Attach a Dedicated Server Network Interface to a vRack. + + > **NOTE:** The resource `Vrack.DedicatedServerInterface` is intended to be used for dedicated servers that have configurable network interfaces.
+ Legacy Dedicated servers that do not have configurable network interfaces MUST use the resource `Vrack.DedicatedServer` instead. ## Example Usage