{"name":"ovh","displayName":"OVHCloud","version":"2.12.0","description":"A Pulumi package for creating and managing OVH resources.","keywords":["pulumi","ovh","category/cloud"],"homepage":"https://www.pulumi.com","license":"Apache-2.0","attribution":"This Pulumi package is based on the [`ovh` Terraform Provider](https://github.com/ovh/terraform-provider-ovh).","repository":"https://github.com/ovh/pulumi-ovh","pluginDownloadURL":"github://api.github.com/ovh/pulumi-ovh","publisher":"OVHcloud","meta":{"moduleFormat":"(.*)(?:/[^/]*)"},"language":{"csharp":{"packageReferences":{"Pulumi":"3.*"},"compatibility":"tfbridge20","rootNamespace":"Pulumi","respectSchemaVersion":true},"go":{"importBasePath":"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh","generateResourceContainerTypes":true,"generateExtraInputTypes":true,"respectSchemaVersion":true},"java":{"basePackage":"com.ovhcloud.pulumi","buildFiles":"","gradleNexusPublishPluginVersion":"","gradleTest":""},"nodejs":{"packageName":"@ovhcloud/pulumi-ovh","packageDescription":"A Pulumi package for creating and managing OVH resources.","readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/ovh/terraform-provider-ovh)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-ovh` repo](https://github.com/ovh/pulumi-ovh/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-ovh` repo](https://github.com/ovh/terraform-provider-ovh/issues).","dependencies":{"@pulumi/pulumi":"^3.0.0"},"devDependencies":{"@types/mime":"^2.0.0","@types/node":"^10.0.0"},"compatibility":"tfbridge20","disableUnionOutputTypes":true,"respectSchemaVersion":true},"python":{"packageName":"pulumi_ovh","requires":{"pulumi":"\u003e=3.0.0,\u003c4.0.0"},"readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/ovh/terraform-provider-ovh)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-ovh` repo](https://github.com/ovh/pulumi-ovh/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-ovh` repo](https://github.com/ovh/terraform-provider-ovh/issues).","compatibility":"tfbridge20","respectSchemaVersion":true,"pyproject":{"enabled":true}}},"config":{"variables":{"accessToken":{"type":"string","description":"The OVH API Access Token\n"},"apiRateLimit":{"type":"integer","description":"Specify the API request rate limit, X operations by seconds (default: unlimited)\n"},"applicationKey":{"type":"string","description":"The OVH API Application Key\n"},"applicationSecret":{"type":"string","description":"The OVH API Application Secret\n"},"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"},"endpoint":{"type":"string","description":"The OVH API endpoint to target (ex: \"ovh-eu\")\n"},"ignoreInitError":{"type":"boolean","description":"If set to true, initialization errors (like invalid OAuth credentials) will be ignored\n"},"userAgentExtra":{"type":"string","description":"Extra information to append to the user-agent\n"}}},"types":{"ovh:Cloud/getProjectIam:getProjectIam":{"properties":{"displayName":{"type":"string","description":"Resource display name\n"},"id":{"type":"string","description":"Unique identifier of the resource in the IAM\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource tags. Tags that were internally computed are prefixed with `ovh:`\n"},"urn":{"type":"string","description":"URN of the private database, used when writing IAM policies\n"}},"type":"object","required":["displayName","id","tags","urn"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Cloud/getProjectsProject:getProjectsProject":{"properties":{"access":{"type":"string","description":"Project access\n"},"creationDate":{"type":"string","description":"Project creation date\n"},"description":{"type":"string","description":"Description of your project\n"},"expiration":{"type":"string","description":"Expiration date of your project. After this date, your project will be deleted\n"},"iam":{"$ref":"#/types/ovh:Cloud/getProjectsProjectIam:getProjectsProjectIam","description":"IAM resource information\n"},"manualQuota":{"type":"boolean","description":"Manual quota prevent automatic quota upgrade\n"},"orderId":{"type":"number","description":"Project order ID\n"},"planCode":{"type":"string","description":"Order plan code\n"},"projectId":{"type":"string","description":"Project ID\n"},"projectName":{"type":"string","description":"Project name\n"},"serviceName":{"type":"string","description":"ID of the public cloud project\n"},"status":{"type":"string","description":"Current status\n"},"unleash":{"type":"boolean","description":"Project unleashed\n"}},"type":"object","required":["access","creationDate","description","expiration","iam","manualQuota","orderId","planCode","projectId","projectName","serviceName","status","unleash"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Cloud/getProjectsProjectIam:getProjectsProjectIam":{"properties":{"displayName":{"type":"string","description":"Resource display name\n"},"id":{"type":"string","description":"Unique identifier of the resource in the IAM\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource tags. Tags that were internally computed are prefixed with `ovh:`\n"},"urn":{"type":"string","description":"URN of the private database, used when writing IAM policies\n"}},"type":"object","required":["displayName","id","tags","urn"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/AlertingFormattedMonthlyThreshold:AlertingFormattedMonthlyThreshold":{"properties":{"currencyCode":{"type":"string","description":"Currency of the monthly threshold\n"},"text":{"type":"string","description":"Text representation of the monthly threshold\n"},"value":{"type":"number","description":"Value of the monthly threshold\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["currencyCode","text","value"]}}},"ovh:CloudProject/ContainerRegistryPlan:ContainerRegistryPlan":{"properties":{"code":{"type":"string","description":"Plan code from the catalog\n"},"createdAt":{"type":"string","description":"Plan creation date\n"},"features":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/ContainerRegistryPlanFeature:ContainerRegistryPlanFeature"},"description":"Features of the plan\n"},"id":{"type":"string","description":"Plan ID\n"},"name":{"type":"string","description":"Registry name\n"},"registryLimits":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/ContainerRegistryPlanRegistryLimit:ContainerRegistryPlanRegistryLimit"},"description":"Container registry limits\n"},"updatedAt":{"type":"string","description":"Registry last update date\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["code","createdAt","features","id","name","registryLimits","updatedAt"]}}},"ovh:CloudProject/ContainerRegistryPlanFeature:ContainerRegistryPlanFeature":{"properties":{"vulnerability":{"type":"boolean","description":"Vulnerability scanning\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["vulnerability"]}}},"ovh:CloudProject/ContainerRegistryPlanRegistryLimit:ContainerRegistryPlanRegistryLimit":{"properties":{"imageStorage":{"type":"integer","description":"Docker image storage limits in bytes\n"},"parallelRequest":{"type":"integer","description":"Parallel requests on Docker image API (/v2 Docker registry API)\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["imageStorage","parallelRequest"]}}},"ovh:CloudProject/DatabaseEndpoint:DatabaseEndpoint":{"properties":{"component":{"type":"string","description":"Type of component the URI relates to.\n"},"domain":{"type":"string","description":"Domain of the cluster.\n"},"path":{"type":"string","description":"Path of the endpoint.\n"},"port":{"type":"integer","description":"Connection port for the endpoint.\n"},"scheme":{"type":"string","description":"Scheme used to generate the URI.\n"},"ssl":{"type":"boolean","description":"Defines whether the endpoint uses SSL.\n"},"sslMode":{"type":"string","description":"SSL mode used to connect to the service if the SSL is enabled.\n"},"uri":{"type":"string","description":"URI of the endpoint.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["component","domain","path","port","scheme","ssl","sslMode","uri"]}}},"ovh:CloudProject/DatabaseIpRestriction:DatabaseIpRestriction":{"properties":{"description":{"type":"string","description":"Description of the IP restriction\n"},"ip":{"type":"string","description":"Authorized IP\n"},"status":{"type":"string","description":"Current status of the cluster.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["status"]}}},"ovh:CloudProject/DatabaseNode:DatabaseNode":{"properties":{"networkId":{"type":"string","description":"Private network id in which the node should be deployed. It's the regional openstackId of the private network\n","willReplaceOnChanges":true},"region":{"type":"string","description":"Public cloud region in which the node should be deployed. Ex: \"GRA'.\n","willReplaceOnChanges":true},"subnetId":{"type":"string","description":"Private subnet ID in which the node is.\n"}},"type":"object","required":["region"]},"ovh:CloudProject/GatewayExternalInformation:GatewayExternalInformation":{"properties":{"ips":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/GatewayExternalInformationIp:GatewayExternalInformationIp"},"description":"List of external ips of the gateway.\n"},"networkId":{"type":"string","description":"ID of the private network.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ips","networkId"]}}},"ovh:CloudProject/GatewayExternalInformationIp:GatewayExternalInformationIp":{"properties":{"ip":{"type":"string","description":"IP of the interface.\n"},"subnetId":{"type":"string","description":"ID of the subnet.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ip","subnetId"]}}},"ovh:CloudProject/GatewayInterface:GatewayInterface":{"properties":{"id":{"type":"string","description":"ID of the interface.\n"},"ip":{"type":"string","description":"IP of the interface.\n"},"networkId":{"type":"string","description":"ID of the private network.\n"},"subnetId":{"type":"string","description":"ID of the subnet.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","ip","networkId","subnetId"]}}},"ovh:CloudProject/InstanceAddress:InstanceAddress":{"properties":{"ip":{"type":"string","description":"IP address\n"},"version":{"type":"integer","description":"IP version\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ip","version"]}}},"ovh:CloudProject/InstanceAttachedVolume:InstanceAttachedVolume":{"properties":{"id":{"type":"string","description":"Instance id\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id"]}}},"ovh:CloudProject/InstanceAutoBackup:InstanceAutoBackup":{"properties":{"cron":{"type":"string","description":"Unix cron pattern\n","willReplaceOnChanges":true},"rotation":{"type":"integer","description":"Number of backup to keep\n","willReplaceOnChanges":true}},"type":"object","required":["cron","rotation"]},"ovh:CloudProject/InstanceBootFrom:InstanceBootFrom":{"properties":{"imageId":{"type":"string","description":"Instance image id. Images can be retrieved using `GET /cloud/project/{serviceName}/image`\n"},"volumeId":{"type":"string","description":"Instance volume id\n"}},"type":"object"},"ovh:CloudProject/InstanceFlavor:InstanceFlavor":{"properties":{"flavorId":{"type":"string","description":"Flavor ID. Flavors can be retrieved using `GET /cloud/project/{serviceName}/flavor`\n"}},"type":"object","required":["flavorId"]},"ovh:CloudProject/InstanceGroup:InstanceGroup":{"properties":{"groupId":{"type":"string","description":"Group id\n"}},"type":"object"},"ovh:CloudProject/InstanceNetwork:InstanceNetwork":{"properties":{"private":{"$ref":"#/types/ovh:CloudProject/InstanceNetworkPrivate:InstanceNetworkPrivate","description":"Private network information\n","willReplaceOnChanges":true},"public":{"type":"boolean","description":"Set the new instance as public\n"}},"type":"object"},"ovh:CloudProject/InstanceNetworkPrivate:InstanceNetworkPrivate":{"properties":{"floatingIp":{"$ref":"#/types/ovh:CloudProject/InstanceNetworkPrivateFloatingIp:InstanceNetworkPrivateFloatingIp","description":"Existing floating IP\n","willReplaceOnChanges":true},"floatingIpCreate":{"$ref":"#/types/ovh:CloudProject/InstanceNetworkPrivateFloatingIpCreate:InstanceNetworkPrivateFloatingIpCreate","description":"Information to create a new floating IP\n","willReplaceOnChanges":true},"gateway":{"$ref":"#/types/ovh:CloudProject/InstanceNetworkPrivateGateway:InstanceNetworkPrivateGateway","description":"Existing gateway\n","willReplaceOnChanges":true},"gatewayCreate":{"$ref":"#/types/ovh:CloudProject/InstanceNetworkPrivateGatewayCreate:InstanceNetworkPrivateGatewayCreate","description":"Information to create a new gateway\n","willReplaceOnChanges":true},"ip":{"type":"string","description":"Instance IP in the private network\n","willReplaceOnChanges":true},"network":{"$ref":"#/types/ovh:CloudProject/InstanceNetworkPrivateNetwork:InstanceNetworkPrivateNetwork","description":"Existing private network\n","willReplaceOnChanges":true},"networkCreate":{"$ref":"#/types/ovh:CloudProject/InstanceNetworkPrivateNetworkCreate:InstanceNetworkPrivateNetworkCreate","description":"Information to create a new private network\n","willReplaceOnChanges":true}},"type":"object"},"ovh:CloudProject/InstanceNetworkPrivateFloatingIp:InstanceNetworkPrivateFloatingIp":{"properties":{"id":{"type":"string","description":"Floating IP ID\n"}},"type":"object"},"ovh:CloudProject/InstanceNetworkPrivateFloatingIpCreate:InstanceNetworkPrivateFloatingIpCreate":{"properties":{"description":{"type":"string","description":"Floating IP description\n"}},"type":"object"},"ovh:CloudProject/InstanceNetworkPrivateGateway:InstanceNetworkPrivateGateway":{"properties":{"id":{"type":"string","description":"Gateway ID\n"}},"type":"object"},"ovh:CloudProject/InstanceNetworkPrivateGatewayCreate:InstanceNetworkPrivateGatewayCreate":{"properties":{"model":{"type":"string","description":"Gateway model (s | m | l)\n"},"name":{"type":"string","description":"Gateway name\n"}},"type":"object"},"ovh:CloudProject/InstanceNetworkPrivateNetwork:InstanceNetworkPrivateNetwork":{"properties":{"id":{"type":"string","description":"Network ID\n"},"subnetId":{"type":"string","description":"Existing subnet ID\n* network_create - (Optional, Forces new resource) Information to create a new private network\n"}},"type":"object"},"ovh:CloudProject/InstanceNetworkPrivateNetworkCreate:InstanceNetworkPrivateNetworkCreate":{"properties":{"name":{"type":"string","description":"Instance name\n"},"subnet":{"$ref":"#/types/ovh:CloudProject/InstanceNetworkPrivateNetworkCreateSubnet:InstanceNetworkPrivateNetworkCreateSubnet","description":"New subnet information\n","willReplaceOnChanges":true},"vlanId":{"type":"integer","description":"Network vlan ID\n"}},"type":"object"},"ovh:CloudProject/InstanceNetworkPrivateNetworkCreateSubnet:InstanceNetworkPrivateNetworkCreateSubnet":{"properties":{"cidr":{"type":"string","description":"Subnet range in CIDR notation\n"},"enableDhcp":{"type":"boolean","description":"Whether to enable DHCP\n"},"ipVersion":{"type":"integer","description":"IP version\n"}},"type":"object"},"ovh:CloudProject/InstanceSshKey:InstanceSshKey":{"properties":{"name":{"type":"string","description":"SSH Keypair name\n"}},"type":"object","required":["name"]},"ovh:CloudProject/InstanceSshKeyCreate:InstanceSshKeyCreate":{"properties":{"name":{"type":"string","description":"SSH Key pair name\n"},"publicKey":{"type":"string","description":"SSH Public key\n"}},"type":"object","required":["name","publicKey"]},"ovh:CloudProject/KubeCustomization:KubeCustomization":{"properties":{"apiservers":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/KubeCustomizationApiserver:KubeCustomizationApiserver"},"description":"Kubernetes API server customization\n","deprecationMessage":"Use customization_apiserver instead"}},"type":"object","language":{"nodejs":{"requiredOutputs":["apiservers"]}}},"ovh:CloudProject/KubeCustomizationApiserver:KubeCustomizationApiserver":{"properties":{"admissionplugins":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/KubeCustomizationApiserverAdmissionplugin:KubeCustomizationApiserverAdmissionplugin"},"description":"Kubernetes API server admission plugins customization\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["admissionplugins"]}}},"ovh:CloudProject/KubeCustomizationApiserverAdmissionplugin:KubeCustomizationApiserverAdmissionplugin":{"properties":{"disableds":{"type":"array","items":{"type":"string"},"description":"Array of admission plugins disabled, default is [] and only AlwaysPulImages can be disabled at this time.\n"},"enableds":{"type":"array","items":{"type":"string"},"description":"Array of admission plugins enabled, default is [\"NodeRestriction\",\"AlwaysPulImages\"] and only these admission plugins can be enabled at this time.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["disableds","enableds"]}}},"ovh:CloudProject/KubeCustomizationKubeProxy:KubeCustomizationKubeProxy":{"properties":{"iptables":{"$ref":"#/types/ovh:CloudProject/KubeCustomizationKubeProxyIptables:KubeCustomizationKubeProxyIptables","description":"Kubernetes cluster kube-proxy customization of iptables specific config (durations format is RFC3339 duration, e.g. `PT60S`)\n"},"ipvs":{"$ref":"#/types/ovh:CloudProject/KubeCustomizationKubeProxyIpvs:KubeCustomizationKubeProxyIpvs","description":"Kubernetes cluster kube-proxy customization of IPVS specific config (durations format is [RFC3339](https://www.rfc-editor.org/rfc/rfc3339) duration, e.g. `PT60S`)\n"}},"type":"object"},"ovh:CloudProject/KubeCustomizationKubeProxyIptables:KubeCustomizationKubeProxyIptables":{"properties":{"minSyncPeriod":{"type":"string","description":"Period that iptables rules are refreshed, in [RFC3339](https://www.rfc-editor.org/rfc/rfc3339) duration format (e.g. `PT60S`). Must be greater than 0.\n"},"syncPeriod":{"type":"string","description":"Minimum period that iptables rules are refreshed, in [RFC3339](https://www.rfc-editor.org/rfc/rfc3339) duration format (e.g. `PT60S`).\n"}},"type":"object"},"ovh:CloudProject/KubeCustomizationKubeProxyIpvs:KubeCustomizationKubeProxyIpvs":{"properties":{"minSyncPeriod":{"type":"string","description":"Minimum period that IPVS rules are refreshed in [RFC3339](https://www.rfc-editor.org/rfc/rfc3339) duration (e.g. `PT60S`).\n"},"scheduler":{"type":"string","description":"IPVS scheduler.\n"},"syncPeriod":{"type":"string","description":"Minimum period that IPVS rules are refreshed, in [RFC3339](https://www.rfc-editor.org/rfc/rfc3339) duration format (e.g. `PT60S`).\n"},"tcpFinTimeout":{"type":"string","description":"Timeout value used for IPVS TCP sessions after receiving a FIN in RFC3339 duration (e.g. `PT60S`). The default value is `PT0S`, which preserves the current timeout value on the system.\n"},"tcpTimeout":{"type":"string","description":"Timeout value used for idle IPVS TCP sessions in [RFC3339](https://www.rfc-editor.org/rfc/rfc3339) duration (e.g. `PT60S`). The default value is `PT0S`, which preserves the current timeout value on the system.\n"},"udpTimeout":{"type":"string","description":"timeout value used for IPVS UDP packets in [RFC3339](https://www.rfc-editor.org/rfc/rfc3339) duration (e.g. `PT60S`). The default value is `PT0S`, which preserves the current timeout value on the system.\n"}},"type":"object"},"ovh:CloudProject/KubeKubeconfigAttribute:KubeKubeconfigAttribute":{"properties":{"clientCertificate":{"type":"string","description":"The kubernetes API server client certificate.\n","secret":true},"clientKey":{"type":"string","description":"The kubernetes API server client key.\n","secret":true},"clusterCaCertificate":{"type":"string","description":"The kubernetes API server CA certificate.\n","secret":true},"host":{"type":"string","description":"The kubernetes API server URL.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["clientCertificate","clientKey","clusterCaCertificate","host"]}}},"ovh:CloudProject/KubeNodePoolTemplate:KubeNodePoolTemplate":{"properties":{"metadata":{"$ref":"#/types/ovh:CloudProject/KubeNodePoolTemplateMetadata:KubeNodePoolTemplateMetadata","description":"metadata\n"},"spec":{"$ref":"#/types/ovh:CloudProject/KubeNodePoolTemplateSpec:KubeNodePoolTemplateSpec","description":"spec\n"}},"type":"object","required":["metadata","spec"]},"ovh:CloudProject/KubeNodePoolTemplateMetadata:KubeNodePoolTemplateMetadata":{"properties":{"annotations":{"type":"object","additionalProperties":{"type":"string"},"description":"annotations\n"},"finalizers":{"type":"array","items":{"type":"string"},"description":"finalizers\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"labels\n"}},"type":"object","required":["annotations","finalizers","labels"]},"ovh:CloudProject/KubeNodePoolTemplateSpec:KubeNodePoolTemplateSpec":{"properties":{"taints":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"taints\n"},"unschedulable":{"type":"boolean","description":"unschedulable\n"}},"type":"object","required":["taints","unschedulable"]},"ovh:CloudProject/KubePrivateNetworkConfiguration:KubePrivateNetworkConfiguration":{"properties":{"defaultVrackGateway":{"type":"string","description":"If defined, all egress traffic will be routed towards this IP address, which should belong to the private network. Empty string means disabled.\n"},"privateNetworkRoutingAsDefault":{"type":"boolean","description":"Defines whether routing should default to using the nodes' private interface, instead of their public interface. Default is false.\n\nIn order to use the gateway IP advertised by the private network subnet DHCP, the following configuration shall be used.\n\n"}},"type":"object","required":["defaultVrackGateway","privateNetworkRoutingAsDefault"]},"ovh:CloudProject/LoadBalancerFloatingIp:LoadBalancerFloatingIp":{"properties":{"id":{"type":"string","description":"ID of the resource\n"},"ip":{"type":"string","description":"IP Address of the resource\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","ip"]}}},"ovh:CloudProject/LoadBalancerListener:LoadBalancerListener":{"properties":{"allowedCidrs":{"type":"array","items":{"type":"string"},"description":"The allowed CIDRs\n"},"description":{"type":"string","description":"The description of the listener\n"},"name":{"type":"string","description":"Name of the listener\n"},"pool":{"$ref":"#/types/ovh:CloudProject/LoadBalancerListenerPool:LoadBalancerListenerPool","description":"Listener pool\n"},"port":{"type":"number","description":"Listener port\n"},"protocol":{"type":"string","description":"Protocol for the listener\n"},"secretId":{"type":"string","description":"Secret ID to get certificate for SSL listener creation\n"},"timeoutClientData":{"type":"number","description":"Timeout client data of the listener\n"},"timeoutMemberData":{"type":"number","description":"Timeout member data of the listener\n"},"tlsVersions":{"type":"array","items":{"type":"string"},"description":"TLS versions of the listener\n"}},"type":"object","required":["port","protocol"]},"ovh:CloudProject/LoadBalancerListenerPool:LoadBalancerListenerPool":{"properties":{"algorithm":{"type":"string","description":"Pool algorithm to split traffic between members\n"},"healthMonitor":{"$ref":"#/types/ovh:CloudProject/LoadBalancerListenerPoolHealthMonitor:LoadBalancerListenerPoolHealthMonitor","description":"Pool health monitor\n"},"members":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/LoadBalancerListenerPoolMember:LoadBalancerListenerPoolMember"},"description":"Pool members\n"},"name":{"type":"string","description":"Name of the pool\n"},"protocol":{"type":"string","description":"Protocol for the pool\n"},"sessionPersistence":{"$ref":"#/types/ovh:CloudProject/LoadBalancerListenerPoolSessionPersistence:LoadBalancerListenerPoolSessionPersistence","description":"Pool session persistence\n"}},"type":"object"},"ovh:CloudProject/LoadBalancerListenerPoolHealthMonitor:LoadBalancerListenerPoolHealthMonitor":{"properties":{"delay":{"type":"number","description":"Duration between sending probes to members, in seconds\n"},"httpConfiguration":{"$ref":"#/types/ovh:CloudProject/LoadBalancerListenerPoolHealthMonitorHttpConfiguration:LoadBalancerListenerPoolHealthMonitorHttpConfiguration","description":"Monitor HTTP configuration\n"},"maxRetries":{"type":"number","description":"Number of successful checks before changing the operating status of the member to ONLINE\n"},"maxRetriesDown":{"type":"number","description":"Number of allowed check failures before changing the operating status of the member to ERROR\n"},"monitorType":{"type":"string","description":"Type of the monitor\n"},"name":{"type":"string","description":"The name of the resource\n"},"operatingStatus":{"type":"string","description":"The operating status of the resource\n"},"provisioningStatus":{"type":"string","description":"The provisioning status of the resource\n"},"timeout":{"type":"number","description":"Maximum time, in seconds, that a monitor waits to connect before it times out. This value must be less than the delay value\n"}},"type":"object"},"ovh:CloudProject/LoadBalancerListenerPoolHealthMonitorHttpConfiguration:LoadBalancerListenerPoolHealthMonitorHttpConfiguration":{"properties":{"domainName":{"type":"string","description":"Domain name, which be injected into the HTTP Host Header to the backend server for HTTP health check\n"},"expectedCodes":{"type":"string","description":"Status codes expected in response from the member to declare it healthy; The list of HTTP status codes expected in response from the member to declare it healthy. Specify one of the following values: * A single value, such as 200; * A list, such as 200, 202; * A range, such as 200-204\n"},"httpMethod":{"type":"string","description":"HTTP method that the health monitor uses for requests\n"},"httpVersion":{"type":"string","description":"HTTP version that the health monitor uses for requests\n"},"urlPath":{"type":"string","description":"HTTP URL path of the request sent by the monitor to test the health of a backend member\n"}},"type":"object"},"ovh:CloudProject/LoadBalancerListenerPoolMember:LoadBalancerListenerPoolMember":{"properties":{"address":{"type":"string","description":"IP address of the resource\n"},"name":{"type":"string","description":"Name of the member\n"},"protocolPort":{"type":"number","description":"Protocol port number for the resource\n"},"weight":{"type":"number","description":"Weight of a member determines the portion of requests or connections it services compared to the other members of the pool. Between 1 and 256.\n"}},"type":"object"},"ovh:CloudProject/LoadBalancerListenerPoolSessionPersistence:LoadBalancerListenerPoolSessionPersistence":{"properties":{"cookieName":{"type":"string","description":"Cookie name, only applicable to session persistence through cookie\n"},"type":{"type":"string","description":"Type of session persistence\n"}},"type":"object"},"ovh:CloudProject/LoadBalancerNetwork:LoadBalancerNetwork":{"properties":{"private":{"$ref":"#/types/ovh:CloudProject/LoadBalancerNetworkPrivate:LoadBalancerNetworkPrivate","description":"Information to private network\n"}},"type":"object","required":["private"]},"ovh:CloudProject/LoadBalancerNetworkPrivate:LoadBalancerNetworkPrivate":{"properties":{"floatingIp":{"$ref":"#/types/ovh:CloudProject/LoadBalancerNetworkPrivateFloatingIp:LoadBalancerNetworkPrivateFloatingIp","description":"Floating IP to associate\n"},"floatingIpCreate":{"$ref":"#/types/ovh:CloudProject/LoadBalancerNetworkPrivateFloatingIpCreate:LoadBalancerNetworkPrivateFloatingIpCreate","description":"Floating IP to create\n"},"gateway":{"$ref":"#/types/ovh:CloudProject/LoadBalancerNetworkPrivateGateway:LoadBalancerNetworkPrivateGateway","description":"Gateway to associate\n"},"gatewayCreate":{"$ref":"#/types/ovh:CloudProject/LoadBalancerNetworkPrivateGatewayCreate:LoadBalancerNetworkPrivateGatewayCreate","description":"Gateway to create\n"},"network":{"$ref":"#/types/ovh:CloudProject/LoadBalancerNetworkPrivateNetwork:LoadBalancerNetworkPrivateNetwork","description":"Network to associate\n"}},"type":"object","required":["network"]},"ovh:CloudProject/LoadBalancerNetworkPrivateFloatingIp:LoadBalancerNetworkPrivateFloatingIp":{"properties":{"id":{"type":"string","description":"ID of the floatingIp\n"}},"type":"object"},"ovh:CloudProject/LoadBalancerNetworkPrivateFloatingIpCreate:LoadBalancerNetworkPrivateFloatingIpCreate":{"properties":{"description":{"type":"string","description":"Description for the floatingIp\n"}},"type":"object"},"ovh:CloudProject/LoadBalancerNetworkPrivateGateway:LoadBalancerNetworkPrivateGateway":{"properties":{"id":{"type":"string","description":"ID of the gateway\n"}},"type":"object"},"ovh:CloudProject/LoadBalancerNetworkPrivateGatewayCreate:LoadBalancerNetworkPrivateGatewayCreate":{"properties":{"model":{"type":"string","description":"Model of the gateway\n"},"name":{"type":"string","description":"Name of the gateway\n"}},"type":"object"},"ovh:CloudProject/LoadBalancerNetworkPrivateNetwork:LoadBalancerNetworkPrivateNetwork":{"properties":{"id":{"type":"string","description":"Private network ID\n"},"subnetId":{"type":"string","description":"Subnet ID\n"}},"type":"object","required":["id","subnetId"]},"ovh:CloudProject/NetworkPrivateRegionsAttribute:NetworkPrivateRegionsAttribute":{"properties":{"openstackid":{"type":"string"},"region":{"type":"string"},"status":{"type":"string","description":"the status of the network. should be normally set to 'ACTIVE'.\n"}},"type":"object","required":["status"],"language":{"nodejs":{"requiredOutputs":["openstackid","region","status"]}}},"ovh:CloudProject/NetworkPrivateRegionsStatus:NetworkPrivateRegionsStatus":{"properties":{"region":{"type":"string"},"status":{"type":"string","description":"the status of the network. should be normally set to 'ACTIVE'.\n"}},"type":"object","required":["status"],"language":{"nodejs":{"requiredOutputs":["region","status"]}}},"ovh:CloudProject/NetworkPrivateSubnetIpPool:NetworkPrivateSubnetIpPool":{"properties":{"dhcp":{"type":"boolean","description":"Enable DHCP. Changing this forces a new resource to be created. Defaults to false.\n"},"end":{"type":"string","description":"Last ip for this region. Changing this value recreates the subnet.\n"},"network":{"type":"string","description":"Global network in CIDR format. Changing this value recreates the subnet\n"},"region":{"type":"string","description":"The region in which the network subnet will be created. Ex.: \"GRA1\". Changing this value recreates the resource.\n"},"start":{"type":"string","description":"First ip for this region. Changing this value recreates the subnet.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["dhcp","end","network","region","start"]}}},"ovh:CloudProject/NetworkPrivateSubnetV2AllocationPool:NetworkPrivateSubnetV2AllocationPool":{"properties":{"end":{"type":"string"},"start":{"type":"string"}},"type":"object","required":["end","start"]},"ovh:CloudProject/NetworkPrivateSubnetV2HostRoute:NetworkPrivateSubnetV2HostRoute":{"properties":{"destination":{"type":"string"},"nexthop":{"type":"string"}},"type":"object","required":["destination","nexthop"]},"ovh:CloudProject/ProjectOrder:ProjectOrder":{"properties":{"date":{"type":"string","description":"date\n"},"details":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/ProjectOrderDetail:ProjectOrderDetail"},"description":"Information about a Bill entry\n"},"expirationDate":{"type":"string","description":"expiration date\n"},"orderId":{"type":"integer","description":"order id, the same as the `id`\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["date","details","expirationDate","orderId"]}}},"ovh:CloudProject/ProjectOrderDetail:ProjectOrderDetail":{"properties":{"description":{"type":"string","description":"A description associated with the user.\n"},"domain":{"type":"string","description":"expiration date\n"},"orderDetailId":{"type":"integer","description":"order detail id\n"},"quantity":{"type":"string","description":"quantity\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","domain","orderDetailId","quantity"]}}},"ovh:CloudProject/ProjectPlan:ProjectPlan":{"properties":{"catalogName":{"type":"string","description":"Catalog name\n"},"configurations":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/ProjectPlanConfiguration:ProjectPlanConfiguration"},"description":"Representation of a configuration item for personalizing product\n"},"duration":{"type":"string","description":"duration\n"},"planCode":{"type":"string","description":"Plan code. This value must be adapted depending on your `OVH_ENDPOINT` value. It's `project.2018` for `ovh-{eu,ca}` and `project` when using `ovh-us`.\n"},"pricingMode":{"type":"string","description":"Pricing model identifier\n"}},"type":"object","required":["duration","planCode","pricingMode"]},"ovh:CloudProject/ProjectPlanConfiguration:ProjectPlanConfiguration":{"properties":{"label":{"type":"string","description":"Identifier of the resource\n"},"value":{"type":"string","description":"Path to the resource in API.OVH.COM\n"}},"type":"object","required":["label","value"]},"ovh:CloudProject/ProjectPlanOption:ProjectPlanOption":{"properties":{"catalogName":{"type":"string","description":"Catalog name\n"},"configurations":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/ProjectPlanOptionConfiguration:ProjectPlanOptionConfiguration"},"description":"Representation of a configuration item for personalizing product\n"},"duration":{"type":"string","description":"duration\n"},"planCode":{"type":"string","description":"Plan code\n"},"pricingMode":{"type":"string","description":"Pricing model identifier\n"}},"type":"object","required":["duration","planCode","pricingMode"]},"ovh:CloudProject/ProjectPlanOptionConfiguration:ProjectPlanOptionConfiguration":{"properties":{"label":{"type":"string","description":"Identifier of the resource\n"},"value":{"type":"string","description":"Path to the resource in API.OVH.COM\n"}},"type":"object","required":["label","value"]},"ovh:CloudProject/ProjectRegionService:ProjectRegionService":{"properties":{"endpoint":{"type":"string","description":"Endpoint URL\n"},"name":{"type":"string","description":"Service name\n"},"status":{"type":"string","description":"Service status\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["endpoint","name","status"]}}},"ovh:CloudProject/RancherCurrentState:RancherCurrentState":{"properties":{"bootstrapPassword":{"type":"string","description":"Bootstrap password of the managed Rancher service, returned only on creation\n","secret":true},"iamAuthEnabled":{"type":"boolean","description":"Allows Rancher to use identities managed by OVHcloud IAM (Identity and Access Management) to control access\n"},"ipRestrictions":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/RancherCurrentStateIpRestriction:RancherCurrentStateIpRestriction"},"description":"List of allowed CIDR blocks for a managed Rancher service's IP restrictions. When empty, any IP is allowed\n"},"name":{"type":"string","description":"Name of the managed Rancher service\n"},"networking":{"$ref":"#/types/ovh:CloudProject/RancherCurrentStateNetworking:RancherCurrentStateNetworking","description":"Networking properties of a managed Rancher service\n"},"plan":{"type":"string","description":"Plan of the managed Rancher service\n"},"region":{"type":"string","description":"Region of the managed Rancher service\n"},"url":{"type":"string","description":"URL of the managed Rancher service\n"},"usage":{"$ref":"#/types/ovh:CloudProject/RancherCurrentStateUsage:RancherCurrentStateUsage","description":"Latest metrics regarding the usage of the managed Rancher service\n"},"version":{"type":"string","description":"Version of the managed Rancher service\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["bootstrapPassword","iamAuthEnabled","ipRestrictions","name","networking","plan","region","url","usage","version"]}}},"ovh:CloudProject/RancherCurrentStateIpRestriction:RancherCurrentStateIpRestriction":{"properties":{"cidrBlock":{"type":"string","description":"Allowed CIDR block (/subnet is optional, if unspecified then /32 will be used)\n"},"description":{"type":"string","description":"Description of the allowed CIDR block\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cidrBlock","description"]}}},"ovh:CloudProject/RancherCurrentStateNetworking:RancherCurrentStateNetworking":{"properties":{"egressCidrBlocks":{"type":"array","items":{"type":"string"},"description":"Specifies the CIDR ranges for egress IP addresses used by Rancher. Ensure these ranges are allowed in any IP restrictions for services that Rancher will access.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["egressCidrBlocks"]}}},"ovh:CloudProject/RancherCurrentStateUsage:RancherCurrentStateUsage":{"properties":{"datetime":{"type":"string","description":"Date of the sample\n"},"orchestratedVcpus":{"type":"number","description":"Total number of vCPUs orchestrated by the managed Rancher service through the downstream clusters\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["datetime","orchestratedVcpus"]}}},"ovh:CloudProject/RancherCurrentTask:RancherCurrentTask":{"properties":{"id":{"type":"string","description":"Identifier of the current task\n"},"link":{"type":"string","description":"Link to the task details\n"},"status":{"type":"string","description":"Current global status of the current task\n"},"type":{"type":"string","description":"Type of the current task\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","link","status","type"]}}},"ovh:CloudProject/RancherTargetSpec:RancherTargetSpec":{"properties":{"iamAuthEnabled":{"type":"boolean","description":"Allows Rancher to use identities managed by OVHcloud IAM (Identity and Access Management) to control access\n"},"ipRestrictions":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/RancherTargetSpecIpRestriction:RancherTargetSpecIpRestriction"},"description":"List of allowed CIDR blocks for a managed Rancher service's IP restrictions. When empty, any IP is allowed\n"},"name":{"type":"string","description":"Name of the managed Rancher service\n"},"plan":{"type":"string","description":"Plan of the managed Rancher service. Available plans for an existing managed Rancher can be retrieved using GET /rancher/rancherID/capabilities/plan\n"},"version":{"type":"string","description":"Version of the managed Rancher service. Available versions for an existing managed Rancher can be retrieved using ovh*cloud*project*rancher*version datasource. Default is the latest version.\n"}},"type":"object","required":["name","plan"],"language":{"nodejs":{"requiredOutputs":["iamAuthEnabled","ipRestrictions","name","plan","version"]}}},"ovh:CloudProject/RancherTargetSpecIpRestriction:RancherTargetSpecIpRestriction":{"properties":{"cidrBlock":{"type":"string","description":"Allowed CIDR block (/subnet is optional, if unspecified then /32 will be used)\n"},"description":{"type":"string","description":"Description of the allowed CIDR block\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cidrBlock","description"]}}},"ovh:CloudProject/RegionNetworkSubnet:RegionNetworkSubnet":{"properties":{"allocationPools":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/RegionNetworkSubnetAllocationPool:RegionNetworkSubnetAllocationPool"},"description":"List of IP pools allocated in subnet\n"},"cidr":{"type":"string","description":"Subnet range in CIDR notation\n"},"dnsNameServers":{"type":"array","items":{"type":"string"},"description":"DNS nameservers\n"},"enableDhcp":{"type":"boolean","description":"Enable DHCP for the subnet\n"},"enableGatewayIp":{"type":"boolean","description":"Set a gateway ip for the subnet\n"},"gatewayIp":{"type":"string","description":"Gateway IP\n"},"hostRoutes":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/RegionNetworkSubnetHostRoute:RegionNetworkSubnetHostRoute"},"description":"Host routes\n"},"ipVersion":{"type":"number","description":"IP version\n"},"name":{"type":"string","description":"Subnet name\n"},"useDefaultPublicDnsresolver":{"type":"boolean","description":"Use default DNS\n"}},"type":"object","required":["cidr","enableDhcp","enableGatewayIp","ipVersion"]},"ovh:CloudProject/RegionNetworkSubnetAllocationPool:RegionNetworkSubnetAllocationPool":{"properties":{"end":{"type":"string","description":"Last IP for the pool (eg: 192.168.1.24)\n"},"start":{"type":"string","description":"First IP for the pool (eg: 192.168.1.12)\n"}},"type":"object"},"ovh:CloudProject/RegionNetworkSubnetHostRoute:RegionNetworkSubnetHostRoute":{"properties":{"destination":{"type":"string","description":"Host route destination (eg: 192.168.1.0/24)\n"},"nextHop":{"type":"string","description":"Host route next hop (eg: 192.168.1.254)\n"}},"type":"object"},"ovh:CloudProject/StorageEncryption:StorageEncryption":{"properties":{"sseAlgorithm":{"type":"string","description":"Encryption algorithm\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["sseAlgorithm"]}}},"ovh:CloudProject/StorageObject:StorageObject":{"properties":{"etag":{"type":"string","description":"ETag\n"},"isDeleteMarker":{"type":"boolean","description":"Whether this object is a delete marker\n"},"isLatest":{"type":"boolean","description":"Whether this is the latest version of the object\n"},"key":{"type":"string","description":"Key\n"},"lastModified":{"type":"string","description":"Last modification date\n"},"size":{"type":"number","description":"Size (bytes)\n"},"storageClass":{"type":"string","description":"Storage class\n"},"versionId":{"type":"string","description":"Version ID of the object\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["etag","isDeleteMarker","isLatest","key","lastModified","size","storageClass","versionId"]}}},"ovh:CloudProject/StorageObjectLock:StorageObjectLock":{"properties":{"rule":{"$ref":"#/types/ovh:CloudProject/StorageObjectLockRule:StorageObjectLockRule","description":"Object lock default rule\n"},"status":{"type":"string","description":"Object lock status\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["rule","status"]}}},"ovh:CloudProject/StorageObjectLockRule:StorageObjectLockRule":{"properties":{"mode":{"type":"string","description":"Object lock mode\n"},"period":{"type":"string","description":"The retention period that the default retention configuration must apply (e.g., P30D for 30 days)\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["mode","period"]}}},"ovh:CloudProject/StorageReplication:StorageReplication":{"properties":{"rules":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/StorageReplicationRule:StorageReplicationRule"},"description":"Replication rules\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["rules"]}}},"ovh:CloudProject/StorageReplicationRule:StorageReplicationRule":{"properties":{"deleteMarkerReplication":{"type":"string","description":"Delete marker replication\n"},"destination":{"$ref":"#/types/ovh:CloudProject/StorageReplicationRuleDestination:StorageReplicationRuleDestination","description":"Rule destination configuration\n"},"filter":{"$ref":"#/types/ovh:CloudProject/StorageReplicationRuleFilter:StorageReplicationRuleFilter","description":"Rule filters\n"},"id":{"type":"string","description":"Rule ID\n"},"priority":{"type":"number","description":"Rule priority\n"},"status":{"type":"string","description":"Rule status\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["deleteMarkerReplication","destination","filter","id","priority","status"]}}},"ovh:CloudProject/StorageReplicationRuleDestination:StorageReplicationRuleDestination":{"properties":{"name":{"type":"string","description":"Destination bucket name\n"},"region":{"type":"string","description":"Destination region\n"},"removeOnMainBucketDeletion":{"type":"boolean","description":"Whether to remove replicated bucket when the main bucket is deleted\n"},"storageClass":{"type":"string","description":"Destination storage class\n"}},"type":"object","required":["name","region"],"language":{"nodejs":{"requiredOutputs":["name","region","storageClass"]}}},"ovh:CloudProject/StorageReplicationRuleFilter:StorageReplicationRuleFilter":{"properties":{"prefix":{"type":"string","description":"Prefix filter\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags filter\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["prefix","tags"]}}},"ovh:CloudProject/StorageVersioning:StorageVersioning":{"properties":{"status":{"type":"string","description":"Versioning status\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["status"]}}},"ovh:CloudProject/UserRole:UserRole":{"properties":{"description":{"type":"string","description":"A description associated with the user.\n"},"id":{"type":"string","description":"id of the role\n"},"name":{"type":"string","description":"name of the role\n"},"permissions":{"type":"array","items":{"type":"string"},"description":"list of permissions associated with the role\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","id","name","permissions"]}}},"ovh:CloudProject/VolumeSubOperation:VolumeSubOperation":{"properties":{"resourceId":{"type":"string","description":"Affected resource of the sub-operation\n"},"resourceType":{"type":"string","description":"The started date of the sub-operation\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["resourceId","resourceType"]}}},"ovh:CloudProject/getCapabilitiesContainerFilterFeature:getCapabilitiesContainerFilterFeature":{"properties":{"vulnerability":{"type":"boolean","description":"Vulnerability scanning\n"}},"type":"object","required":["vulnerability"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getCapabilitiesContainerFilterRegistryLimit:getCapabilitiesContainerFilterRegistryLimit":{"properties":{"imageStorage":{"type":"integer","description":"Docker image storage limits in bytes\n"},"parallelRequest":{"type":"integer","description":"Parallel requests on Docker image API (/v2 Docker registry API)\n"}},"type":"object","required":["imageStorage","parallelRequest"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getCapabilitiesContainerRegistryResult:getCapabilitiesContainerRegistryResult":{"properties":{"plans":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/getCapabilitiesContainerRegistryResultPlan:getCapabilitiesContainerRegistryResultPlan"},"description":"Available plans in the region\n"},"regionName":{"type":"string","description":"The region name\n"}},"type":"object","required":["plans","regionName"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getCapabilitiesContainerRegistryResultPlan:getCapabilitiesContainerRegistryResultPlan":{"properties":{"code":{"type":"string","description":"Plan code from the catalog\n"},"createdAt":{"type":"string","description":"Plan creation date\n"},"features":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/getCapabilitiesContainerRegistryResultPlanFeature:getCapabilitiesContainerRegistryResultPlanFeature"},"description":"Features of the plan\n"},"id":{"type":"string","description":"Plan ID\n"},"name":{"type":"string","description":"Plan name\n"},"registryLimits":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/getCapabilitiesContainerRegistryResultPlanRegistryLimit:getCapabilitiesContainerRegistryResultPlanRegistryLimit"},"description":"Container registry limits\n"},"updatedAt":{"type":"string","description":"Plan last update date\n"}},"type":"object","required":["code","createdAt","features","id","name","registryLimits","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getCapabilitiesContainerRegistryResultPlanFeature:getCapabilitiesContainerRegistryResultPlanFeature":{"properties":{"vulnerability":{"type":"boolean","description":"Vulnerability scanning\n"}},"type":"object","required":["vulnerability"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getCapabilitiesContainerRegistryResultPlanRegistryLimit:getCapabilitiesContainerRegistryResultPlanRegistryLimit":{"properties":{"imageStorage":{"type":"integer","description":"Docker image storage limits in bytes\n"},"parallelRequest":{"type":"integer","description":"Parallel requests on Docker image API (/v2 Docker registry API)\n"}},"type":"object","required":["imageStorage","parallelRequest"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getContainerRegistriesResult:getContainerRegistriesResult":{"properties":{"createdAt":{"type":"string","description":"Registry creation date\n"},"iamEnabled":{"type":"boolean","description":"OVHCloud IAM enabled\n"},"id":{"type":"string","description":"Registry ID\n"},"name":{"type":"string","description":"Registry name\n"},"projectId":{"type":"string","description":"Project ID of your registry\n"},"region":{"type":"string","description":"Region of the registry\n"},"size":{"type":"integer","description":"Current size of the registry (bytes)\n"},"status":{"type":"string","description":"Registry status\n"},"updatedAt":{"type":"string","description":"Registry last update date\n"},"url":{"type":"string","description":"Access url of the registry\n"},"version":{"type":"string","description":"Version of your registry\n"}},"type":"object","required":["createdAt","iamEnabled","id","name","projectId","region","size","status","updatedAt","url","version"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getContainerRegistryUsersResult:getContainerRegistryUsersResult":{"properties":{"email":{"type":"string","description":"User email\n"},"id":{"type":"string","description":"User ID\n"},"user":{"type":"string","description":"User name\n"}},"type":"object","required":["email","id","user"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getFlavorsFlavor:getFlavorsFlavor":{"properties":{"available":{"type":"boolean","description":"Available in stock\n"},"capabilities":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/getFlavorsFlavorCapability:getFlavorsFlavorCapability"},"description":"Capabilities of the flavor\n"},"disk":{"type":"number","description":"Number of disks\n"},"id":{"type":"string","description":"Flavor id\n"},"inboundBandwidth":{"type":"number","description":"Max capacity of inbound traffic in Mbit/s\n"},"name":{"type":"string","description":"Flavor name\n"},"osType":{"type":"string","description":"OS to install on\n"},"outboundBandwidth":{"type":"number","description":"Max capacity of outbound traffic in Mbit/s\n"},"planCodes":{"$ref":"#/types/ovh:CloudProject/getFlavorsFlavorPlanCodes:getFlavorsFlavorPlanCodes","description":"Plan codes to order instances\n"},"quota":{"type":"number","description":"Number instance you can spawn with your actual quota\n"},"ram":{"type":"number","description":"Ram quantity (Gio)\n"},"region":{"type":"string","description":"Flavor region\n"},"type":{"type":"string","description":"Flavor type\n"},"vcpus":{"type":"number","description":"Number of VCPUs\n"}},"type":"object","required":["available","capabilities","disk","id","inboundBandwidth","name","osType","outboundBandwidth","planCodes","quota","ram","region","type","vcpus"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getFlavorsFlavorCapability:getFlavorsFlavorCapability":{"properties":{"enabled":{"type":"boolean","description":"Is the capability enabled\n"},"name":{"type":"string","description":"Name of the capability\n"}},"type":"object","required":["enabled","name"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getFlavorsFlavorPlanCodes:getFlavorsFlavorPlanCodes":{"properties":{"hourly":{"type":"string","description":"Plan code to order hourly instance\n"},"monthly":{"type":"string","description":"Plan code to order monthly instance\n"}},"type":"object","required":["hourly","monthly"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getFloatingIPsCloudProjectFloatingip:getFloatingIPsCloudProjectFloatingip":{"properties":{"associatedEntity":{"$ref":"#/types/ovh:CloudProject/getFloatingIPsCloudProjectFloatingipAssociatedEntity:getFloatingIPsCloudProjectFloatingipAssociatedEntity","description":"Associated entity with the floating IP\n"},"id":{"type":"string","description":"ID of the floating IP\n"},"ip":{"type":"string","description":"Value of the floating IP\n"},"networkId":{"type":"string","description":"ID of the network\n"},"region":{"type":"string","description":"Floating ip region\n"},"status":{"type":"string","description":"Status of the floating IP (active┃down┃error)\n"}},"type":"object","required":["associatedEntity","id","ip","networkId","region","status"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getFloatingIPsCloudProjectFloatingipAssociatedEntity:getFloatingIPsCloudProjectFloatingipAssociatedEntity":{"properties":{"gatewayId":{"type":"string","description":"ID of the gateway\n"},"id":{"type":"string","description":"ID of the floating IP\n"},"ip":{"type":"string","description":"Value of the floating IP\n"},"type":{"type":"string","description":"Type of the port (dhcp┃instance┃loadbalancer┃routerInterface┃unknown)\n"}},"type":"object","required":["gatewayId","id","ip","type"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getImagesImage:getImagesImage":{"properties":{"creationDate":{"type":"string","description":"Image creation date\n"},"flavorType":{"type":"string","description":"Image usable only for this type of flavor if not null\n"},"id":{"type":"string","description":"Image ID\n"},"minDisk":{"type":"number","description":"Minimum disks required to use image\n"},"minRam":{"type":"number","description":"Minimum RAM required to use image\n"},"name":{"type":"string","description":"Image name\n"},"planCode":{"type":"string","description":"Order plan code\n"},"region":{"type":"string","description":"Image region\n"},"size":{"type":"number","description":"Image size (in GiB)\n"},"status":{"type":"string","description":"Image status\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags about the image\n"},"type":{"type":"string","description":"Image type\n"},"user":{"type":"string","description":"User to connect with\n"},"visibility":{"type":"string","description":"Image visibility\n"}},"type":"object","required":["creationDate","flavorType","id","minDisk","minRam","name","planCode","region","size","status","tags","type","user","visibility"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getInstanceAddress:getInstanceAddress":{"properties":{"ip":{"type":"string","description":"IP address\n"},"version":{"type":"integer","description":"IP version\n"}},"type":"object","required":["ip","version"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getInstanceAttachedVolume:getInstanceAttachedVolume":{"properties":{"id":{"type":"string","description":"Instance id\n"}},"type":"object","required":["id"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getInstancesInstance:getInstancesInstance":{"properties":{"addresses":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/getInstancesInstanceAddress:getInstancesInstanceAddress"},"description":"Instance IP addresses\n"},"attachedVolumes":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/getInstancesInstanceAttachedVolume:getInstancesInstanceAttachedVolume"},"description":"Volumes attached to the instance\n"},"availabilityZone":{"type":"string","description":"Availability zone of the instance\n"},"flavorId":{"type":"string","description":"Flavor id\n"},"flavorName":{"type":"string","description":"Flavor name\n"},"id":{"type":"string","description":"Instance id\n"},"imageId":{"type":"string","description":"Image id\n"},"name":{"type":"string","description":"Instance name\n"},"sshKey":{"type":"string","description":"SSH Keypair\n"},"status":{"type":"string","description":"Instance status\n"},"taskState":{"type":"string","description":"Instance task state\n"}},"type":"object","required":["addresses","attachedVolumes","availabilityZone","flavorId","flavorName","id","imageId","name","sshKey","status","taskState"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getInstancesInstanceAddress:getInstancesInstanceAddress":{"properties":{"ip":{"type":"string","description":"IP address\n"},"version":{"type":"integer","description":"IP version\n"}},"type":"object","required":["ip","version"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getInstancesInstanceAttachedVolume:getInstancesInstanceAttachedVolume":{"properties":{"id":{"type":"string","description":"Instance id\n"}},"type":"object","required":["id"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getKubeCustomization:getKubeCustomization":{"properties":{"apiservers":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/getKubeCustomizationApiserver:getKubeCustomizationApiserver"},"description":"Kubernetes API server customization\n","deprecationMessage":"Use customization_apiserver instead"}},"type":"object","required":["apiservers"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getKubeCustomizationApiserver:getKubeCustomizationApiserver":{"properties":{"admissionplugins":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/getKubeCustomizationApiserverAdmissionplugin:getKubeCustomizationApiserverAdmissionplugin"},"description":"Kubernetes API server admission plugins customization\n"}},"type":"object","required":["admissionplugins"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getKubeCustomizationApiserverAdmissionplugin:getKubeCustomizationApiserverAdmissionplugin":{"properties":{"disableds":{"type":"array","items":{"type":"string"},"description":"Array of admission plugins disabled, default is [] and only AlwaysPulImages can be disabled at this time.\n"},"enableds":{"type":"array","items":{"type":"string"},"description":"Array of admission plugins enabled, default is [\"NodeRestriction\",\"AlwaysPulImages\"] and only these admission plugins can be enabled at this time.\n"}},"type":"object","required":["disableds","enableds"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getKubeCustomizationKubeProxy:getKubeCustomizationKubeProxy":{"properties":{"iptables":{"$ref":"#/types/ovh:CloudProject/getKubeCustomizationKubeProxyIptables:getKubeCustomizationKubeProxyIptables","description":"Kubernetes cluster kube-proxy customization of iptables specific config.\n"},"ipvs":{"$ref":"#/types/ovh:CloudProject/getKubeCustomizationKubeProxyIpvs:getKubeCustomizationKubeProxyIpvs","description":"Kubernetes cluster kube-proxy customization of IPVS specific config (durations format is [RFC3339](https://www.rfc-editor.org/rfc/rfc3339) duration.\n"}},"type":"object"},"ovh:CloudProject/getKubeCustomizationKubeProxyIptables:getKubeCustomizationKubeProxyIptables":{"properties":{"minSyncPeriod":{"type":"string","description":"Minimum period that IPVS rules are refreshed in [RFC3339](https://www.rfc-editor.org/rfc/rfc3339) duration.\n"},"syncPeriod":{"type":"string","description":"Minimum period that IPVS rules are refreshed, in [RFC3339](https://www.rfc-editor.org/rfc/rfc3339) duration format.\n"}},"type":"object"},"ovh:CloudProject/getKubeCustomizationKubeProxyIpvs:getKubeCustomizationKubeProxyIpvs":{"properties":{"minSyncPeriod":{"type":"string","description":"Minimum period that IPVS rules are refreshed in [RFC3339](https://www.rfc-editor.org/rfc/rfc3339) duration.\n"},"scheduler":{"type":"string","description":"IPVS scheduler.\n"},"syncPeriod":{"type":"string","description":"Minimum period that IPVS rules are refreshed, in [RFC3339](https://www.rfc-editor.org/rfc/rfc3339) duration format.\n"},"tcpFinTimeout":{"type":"string","description":"Timeout value used for IPVS TCP sessions after receiving a FIN in RFC3339 duration.\n"},"tcpTimeout":{"type":"string","description":"Timeout value used for idle IPVS TCP sessions in [RFC3339](https://www.rfc-editor.org/rfc/rfc3339) duration.\n"},"udpTimeout":{"type":"string","description":"timeout value used for IPVS UDP packets in [RFC3339](https://www.rfc-editor.org/rfc/rfc3339) duration.\n"}},"type":"object"},"ovh:CloudProject/getKubeKubeconfigAttribute:getKubeKubeconfigAttribute":{"properties":{"clientCertificate":{"type":"string","description":"(Sensitive) Client certificate data for authentication.\n","secret":true},"clientKey":{"type":"string","description":"(Sensitive) Client private key data for authentication.\n","secret":true},"clusterCaCertificate":{"type":"string","description":"(Sensitive) Cluster certificate authority data.\n","secret":true},"host":{"type":"string","description":"Kubernetes API server endpoint.\n"}},"type":"object","required":["clientCertificate","clientKey","clusterCaCertificate","host"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getKubeNodePoolNodesNode:getKubeNodePoolNodesNode":{"properties":{"createdAt":{"type":"string","description":"Creation date.\n"},"deployedAt":{"type":"string","description":"(Optional) Date of the effective deployment.\n"},"flavor":{"type":"string","description":"Flavor name.\n"},"id":{"type":"string","description":"ID of the node.\n"},"instanceId":{"type":"string","description":"Openstack ID of the underlying VM of the node.\n"},"isUpToDate":{"type":"boolean","description":"Is the node in the target version of the cluster.\n"},"name":{"type":"string","description":"Name of the node pool from which we want the nodes.\n"},"nodePoolId":{"type":"string","description":"Managed kubernetes node pool ID.\n"},"projectId":{"type":"string","description":"Public cloud project ID.\n"},"status":{"type":"string","description":"Current status.\n"},"updatedAt":{"type":"string","description":"Last update date.\n"},"version":{"type":"string","description":"Version in which the node is.\n"}},"type":"object","required":["createdAt","deployedAt","flavor","id","instanceId","isUpToDate","name","nodePoolId","projectId","status","updatedAt","version"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getKubeNodePoolTemplate:getKubeNodePoolTemplate":{"properties":{"metadata":{"$ref":"#/types/ovh:CloudProject/getKubeNodePoolTemplateMetadata:getKubeNodePoolTemplateMetadata","description":"metadata\n"},"spec":{"$ref":"#/types/ovh:CloudProject/getKubeNodePoolTemplateSpec:getKubeNodePoolTemplateSpec","description":"spec\n"}},"type":"object"},"ovh:CloudProject/getKubeNodePoolTemplateMetadata:getKubeNodePoolTemplateMetadata":{"properties":{"annotations":{"type":"object","additionalProperties":{"type":"string"},"description":"annotations\n"},"finalizers":{"type":"array","items":{"type":"string"},"description":"finalizers\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"labels\n"}},"type":"object"},"ovh:CloudProject/getKubeNodePoolTemplateSpec:getKubeNodePoolTemplateSpec":{"properties":{"taints":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"taints\n"},"unschedulable":{"type":"boolean","description":"unschedulable\n"}},"type":"object"},"ovh:CloudProject/getKubeNodesNode:getKubeNodesNode":{"properties":{"createdAt":{"type":"string","description":"Creation date\n"},"deployedAt":{"type":"string","description":"(Optional) Date of the effective deployment\n"},"flavor":{"type":"string","description":"Flavor name\n"},"id":{"type":"string","description":"ID of the node\n"},"instanceId":{"type":"string","description":"Openstack ID of the underlying VM of the node\n"},"isUpToDate":{"type":"boolean","description":"Is the node in the target version of the cluster\n"},"name":{"type":"string","description":"Name of the node\n"},"nodePoolId":{"type":"string","description":"Managed kubernetes node pool ID\n"},"projectId":{"type":"string","description":"Public cloud project ID\n"},"status":{"type":"string","description":"Current status\n"},"updatedAt":{"type":"string","description":"Last update date\n"},"version":{"type":"string","description":"Version in which the node is\n"}},"type":"object","required":["createdAt","deployedAt","flavor","id","instanceId","isUpToDate","name","nodePoolId","projectId","status","updatedAt","version"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getLoadBalancerFlavorsFlavor:getLoadBalancerFlavorsFlavor":{"properties":{"id":{"type":"string","description":"Flavor id\n"},"name":{"type":"string","description":"Flavor name\n"},"region":{"type":"string","description":"Region name\n"}},"type":"object","required":["id","name","region"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getLoadBalancerFloatingIp:getLoadBalancerFloatingIp":{"properties":{"id":{"type":"string","description":"ID of the loadbalancer\n"},"ip":{"type":"string","description":"Value of the floating IP\n"}},"type":"object","required":["id","ip"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getLoadBalancersLoadbalancer:getLoadBalancersLoadbalancer":{"properties":{"createdAt":{"type":"string","description":"Date of creation of the loadbalancer\n"},"flavorId":{"type":"string","description":"ID of the flavor\n"},"floatingIp":{"$ref":"#/types/ovh:CloudProject/getLoadBalancersLoadbalancerFloatingIp:getLoadBalancersLoadbalancerFloatingIp","description":"Information about the floating IP\n"},"id":{"type":"string","description":"ID of the floating IP\n"},"name":{"type":"string","description":"Name of the loadbalancer\n"},"operatingStatus":{"type":"string","description":"Operating status of the loadbalancer\n"},"provisioningStatus":{"type":"string","description":"Provisioning status of the loadbalancer\n"},"region":{"type":"string","description":"Region of the loadbalancer\n"},"updatedAt":{"type":"string","description":"Last update date of the loadbalancer\n"},"vipAddress":{"type":"string","description":"IP address of the Virtual IP\n"},"vipNetworkId":{"type":"string","description":"Openstack ID of the network for the Virtual IP\n"},"vipSubnetId":{"type":"string","description":"ID of the subnet for the Virtual IP\n"}},"type":"object","required":["createdAt","flavorId","floatingIp","id","name","operatingStatus","provisioningStatus","region","updatedAt","vipAddress","vipNetworkId","vipSubnetId"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getLoadBalancersLoadbalancerFloatingIp:getLoadBalancersLoadbalancerFloatingIp":{"properties":{"id":{"type":"string","description":"ID of the floating IP\n"},"ip":{"type":"string","description":"Value of the floating IP\n"}},"type":"object","required":["id","ip"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getNetworkPrivateRegion:getNetworkPrivateRegion":{"properties":{"openstackId":{"type":"string","description":"Network ID on openstack region\n"},"region":{"type":"string","description":"Name of the region\n"},"status":{"type":"string","description":"Status of the network\n"}},"type":"object","required":["openstackId","region","status"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getNetworkPrivateSubnetsSubnet:getNetworkPrivateSubnetsSubnet":{"properties":{"cidr":{"type":"string","description":"CIDR of the subnet\n"},"dhcpEnabled":{"type":"boolean","description":"Whether or not if DHCP is enabled for the subnet\n"},"gatewayIp":{"type":"string","description":"Gateway IP of the subnet\n"},"id":{"type":"string","description":"ID of the subnet\n"},"ipPools":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/getNetworkPrivateSubnetsSubnetIpPool:getNetworkPrivateSubnetsSubnetIpPool"},"description":"List of ip pools allocated in the subnet\n"}},"type":"object","required":["cidr","dhcpEnabled","gatewayIp","id","ipPools"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getNetworkPrivateSubnetsSubnetIpPool:getNetworkPrivateSubnetsSubnetIpPool":{"properties":{"dhcp":{"type":"boolean","description":"Whether or not if DHCP is enabled\n"},"end":{"type":"string","description":"Last IP for this region (eg: 192.168.1.24)\n"},"network":{"type":"string","description":"Global network with cidr (eg: 192.168.1.0/24)\n"},"region":{"type":"string","description":"Region associated to the subnet\n"},"start":{"type":"string","description":"First IP for this region (eg: 192.168.1.12)\n"}},"type":"object","required":["dhcp","end","network","region","start"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getNetworkPrivatesNetwork:getNetworkPrivatesNetwork":{"properties":{"id":{"type":"string","description":"ID of the network\n"},"name":{"type":"string","description":"Name of the network\n"},"regions":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/getNetworkPrivatesNetworkRegion:getNetworkPrivatesNetworkRegion"},"description":"Information about the private network in the openstack region\n"},"status":{"type":"string","description":"Status of the network\n"},"type":{"type":"string","description":"Type of the network\n"},"vlanId":{"type":"number","description":"VLAN ID of the network\n"}},"type":"object","required":["id","name","regions","status","type","vlanId"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getNetworkPrivatesNetworkRegion:getNetworkPrivatesNetworkRegion":{"properties":{"openstackId":{"type":"string","description":"Network ID on openstack region\n"},"region":{"type":"string","description":"Name of the region\n"},"status":{"type":"string","description":"Status of the network\n"}},"type":"object","required":["openstackId","region","status"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getOpenSearchUserAcl:getOpenSearchUserAcl":{"properties":{"pattern":{"type":"string","description":"Pattern of the ACL.\n"},"permission":{"type":"string","description":"Permission of the ACL.\n"}},"type":"object","required":["pattern","permission"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getPrometheusTarget:getPrometheusTarget":{"properties":{"host":{"type":"string","description":"Host of the endpoint\n"},"port":{"type":"integer","description":"Connection port for the endpoint\n"}},"type":"object","required":["host","port"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getRancherCurrentState:getRancherCurrentState":{"properties":{"bootstrapPassword":{"type":"string","description":"Bootstrap password of the managed Rancher service, returned only on creation\n","secret":true},"iamAuthEnabled":{"type":"boolean","description":"Allows Rancher to use identities managed by OVHcloud IAM (Identity and Access Management) to control access\n"},"ipRestrictions":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/getRancherCurrentStateIpRestriction:getRancherCurrentStateIpRestriction"},"description":"List of allowed CIDR blocks for a managed Rancher service's IP restrictions. When empty, any IP is allowed\n"},"name":{"type":"string","description":"Name of the managed Rancher service\n"},"networking":{"$ref":"#/types/ovh:CloudProject/getRancherCurrentStateNetworking:getRancherCurrentStateNetworking","description":"Networking properties of a managed Rancher service\n"},"plan":{"type":"string","description":"Plan of the managed Rancher service\n"},"region":{"type":"string","description":"Region of the managed Rancher service\n"},"url":{"type":"string","description":"URL of the managed Rancher service\n"},"usage":{"$ref":"#/types/ovh:CloudProject/getRancherCurrentStateUsage:getRancherCurrentStateUsage","description":"Latest metrics regarding the usage of the managed Rancher service\n"},"version":{"type":"string","description":"Version of the managed Rancher service\n"}},"type":"object","required":["bootstrapPassword","iamAuthEnabled","ipRestrictions","name","networking","plan","region","url","usage","version"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getRancherCurrentStateIpRestriction:getRancherCurrentStateIpRestriction":{"properties":{"cidrBlock":{"type":"string","description":"Allowed CIDR block (/subnet is optional, if unspecified then /32 will be used)\n"},"description":{"type":"string","description":"Description of the allowed CIDR block\n"}},"type":"object","required":["cidrBlock","description"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getRancherCurrentStateNetworking:getRancherCurrentStateNetworking":{"properties":{"egressCidrBlocks":{"type":"array","items":{"type":"string"},"description":"Specifies the CIDR ranges for egress IP addresses used by Rancher. Ensure these ranges are allowed in any IP restrictions for services that Rancher will access.\n"}},"type":"object","required":["egressCidrBlocks"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getRancherCurrentStateUsage:getRancherCurrentStateUsage":{"properties":{"datetime":{"type":"string","description":"Date of the sample\n"},"orchestratedVcpus":{"type":"number","description":"Total number of vCPUs orchestrated by the managed Rancher service through the downstream clusters\n"}},"type":"object","required":["datetime","orchestratedVcpus"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getRancherCurrentTask:getRancherCurrentTask":{"properties":{"id":{"type":"string","description":"Identifier of the current task\n"},"link":{"type":"string","description":"Link to the task details\n"},"status":{"type":"string","description":"Current global status of the current task\n"},"type":{"type":"string","description":"Type of the current task\n"}},"type":"object","required":["id","link","status","type"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getRancherPlanPlan:getRancherPlanPlan":{"properties":{"cause":{"type":"string","description":"Cause for an unavailability\n"},"message":{"type":"string","description":"Human-readable description of the unavailability cause\n"},"name":{"type":"string","description":"Name of the plan\n"},"status":{"type":"string","description":"Status of the plan\n"}},"type":"object","required":["cause","message","name","status"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getRancherTargetSpec:getRancherTargetSpec":{"properties":{"iamAuthEnabled":{"type":"boolean","description":"Allows Rancher to use identities managed by OVHcloud IAM (Identity and Access Management) to control access\n"},"ipRestrictions":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/getRancherTargetSpecIpRestriction:getRancherTargetSpecIpRestriction"},"description":"List of allowed CIDR blocks for a managed Rancher service's IP restrictions. When empty, any IP is allowed\n"},"name":{"type":"string","description":"Name of the managed Rancher service\n"},"plan":{"type":"string","description":"Plan of the managed Rancher service. Available plans for an existing managed Rancher can be retrieved using GET /rancher/rancherID/capabilities/plan\n"},"version":{"type":"string","description":"Version of the managed Rancher service. Available versions for an existing managed Rancher can be retrieved using GET /rancher/rancherID/capabilities/version\n"}},"type":"object","required":["iamAuthEnabled","ipRestrictions","name","plan","version"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getRancherTargetSpecIpRestriction:getRancherTargetSpecIpRestriction":{"properties":{"cidrBlock":{"type":"string","description":"Allowed CIDR block (/subnet is optional, if unspecified then /32 will be used)\n"},"description":{"type":"string","description":"Description of the allowed CIDR block\n"}},"type":"object","required":["cidrBlock","description"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getRancherVersionVersion:getRancherVersionVersion":{"properties":{"cause":{"type":"string","description":"Cause for an unavailability\n"},"changelogUrl":{"type":"string","description":"Changelog URL of the version\n"},"message":{"type":"string","description":"Human-readable description of the unavailability cause\n"},"name":{"type":"string","description":"Name of the version\n"},"status":{"type":"string","description":"Status of the version\n"}},"type":"object","required":["cause","changelogUrl","message","name","status"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getRegionService:getRegionService":{"properties":{"endpoint":{"type":"string","description":"Endpoint URL\n"},"name":{"type":"string","description":"The name of the region associated with the public cloud project.\n"},"status":{"type":"string","description":"the status of the service\n"}},"type":"object","required":["endpoint","name","status"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getStorageEncryption:getStorageEncryption":{"properties":{"sseAlgorithm":{"type":"string","description":"Encryption algorithm\n"}},"type":"object","required":["sseAlgorithm"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getStorageObject:getStorageObject":{"properties":{"etag":{"type":"string","description":"ETag\n"},"isDeleteMarker":{"type":"boolean","description":"Whether this object is a delete marker\n"},"isLatest":{"type":"boolean","description":"Whether this is the latest version of the object\n"},"key":{"type":"string","description":"Key\n"},"lastModified":{"type":"string","description":"Last modification date\n"},"size":{"type":"number","description":"Size (bytes)\n"},"storageClass":{"type":"string","description":"Storage class\n"},"versionId":{"type":"string","description":"Version ID of the object\n"}},"type":"object","required":["etag","isDeleteMarker","isLatest","key","lastModified","size","storageClass","versionId"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getStorageObjectsObject:getStorageObjectsObject":{"properties":{"etag":{"type":"string","description":"ETag\n"},"isDeleteMarker":{"type":"boolean","description":"Whether this object is a delete marker\n"},"isLatest":{"type":"boolean","description":"Whether this is the latest version of the object\n"},"key":{"type":"string","description":"Key\n"},"lastModified":{"type":"string","description":"Last modification date\n"},"size":{"type":"number","description":"Size (bytes)\n"},"storageClass":{"type":"string","description":"Storage class\n"},"versionId":{"type":"string","description":"Version ID of the object\n"}},"type":"object","required":["etag","isDeleteMarker","isLatest","key","lastModified","size","storageClass","versionId"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getStorageReplication:getStorageReplication":{"properties":{"rules":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/getStorageReplicationRule:getStorageReplicationRule"},"description":"Replication rules\n"}},"type":"object","required":["rules"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getStorageReplicationRule:getStorageReplicationRule":{"properties":{"deleteMarkerReplication":{"type":"string","description":"Delete marker replication\n"},"destination":{"$ref":"#/types/ovh:CloudProject/getStorageReplicationRuleDestination:getStorageReplicationRuleDestination","description":"Rule destination configuration\n"},"filter":{"$ref":"#/types/ovh:CloudProject/getStorageReplicationRuleFilter:getStorageReplicationRuleFilter","description":"Rule filters\n"},"id":{"type":"string","description":"Rule ID\n"},"priority":{"type":"number","description":"Rule priority\n"},"status":{"type":"string","description":"Rule status\n"}},"type":"object","required":["deleteMarkerReplication","destination","filter","id","priority","status"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getStorageReplicationRuleDestination:getStorageReplicationRuleDestination":{"properties":{"name":{"type":"string","description":"Destination bucket name\n"},"region":{"type":"string","description":"Destination region, can be null if destination bucket has been deleted\n"},"removeOnMainBucketDeletion":{"type":"boolean"},"storageClass":{"type":"string","description":"Destination storage class\n"}},"type":"object","required":["name","region","removeOnMainBucketDeletion","storageClass"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getStorageReplicationRuleFilter:getStorageReplicationRuleFilter":{"properties":{"prefix":{"type":"string","description":"Prefix filter\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags filter\n"}},"type":"object","required":["prefix","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getStorageVersioning:getStorageVersioning":{"properties":{"status":{"type":"string","description":"Versioning status\n"}},"type":"object","required":["status"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getStoragesContainer:getStoragesContainer":{"properties":{"createdAt":{"type":"string","description":"The date and timestamp when the resource was created\n"},"encryption":{"$ref":"#/types/ovh:CloudProject/getStoragesContainerEncryption:getStoragesContainerEncryption","description":"Encryption configuration\n"},"name":{"type":"string","description":"Container name\n"},"objects":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/getStoragesContainerObject:getStoragesContainerObject"},"description":"Container objects\n"},"objectsCount":{"type":"number","description":"Container total objects count\n"},"objectsSize":{"type":"number","description":"Container total objects size (bytes)\n"},"ownerId":{"type":"number","description":"Container owner user ID\n"},"region":{"type":"string","description":"Container region\n"},"replication":{"$ref":"#/types/ovh:CloudProject/getStoragesContainerReplication:getStoragesContainerReplication","description":"Replication configuration\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Container tags\n"},"versioning":{"$ref":"#/types/ovh:CloudProject/getStoragesContainerVersioning:getStoragesContainerVersioning","description":"Versioning configuration\n"},"virtualHost":{"type":"string","description":"Container virtual host\n"}},"type":"object","required":["createdAt","encryption","name","objects","objectsCount","objectsSize","ownerId","region","replication","tags","versioning","virtualHost"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getStoragesContainerEncryption:getStoragesContainerEncryption":{"properties":{"sseAlgorithm":{"type":"string","description":"Encryption algorithm\n"}},"type":"object","required":["sseAlgorithm"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getStoragesContainerObject:getStoragesContainerObject":{"properties":{"etag":{"type":"string","description":"ETag\n"},"isDeleteMarker":{"type":"boolean","description":"Whether this object is a delete marker\n"},"isLatest":{"type":"boolean","description":"Whether this is the latest version of the object\n"},"key":{"type":"string","description":"Key\n"},"lastModified":{"type":"string","description":"Last modification date\n"},"size":{"type":"number","description":"Size (bytes)\n"},"storageClass":{"type":"string","description":"Storage class\n"},"versionId":{"type":"string","description":"Version ID of the object\n"}},"type":"object","required":["etag","isDeleteMarker","isLatest","key","lastModified","size","storageClass","versionId"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getStoragesContainerReplication:getStoragesContainerReplication":{"properties":{"rules":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/getStoragesContainerReplicationRule:getStoragesContainerReplicationRule"},"description":"Replication rules\n"}},"type":"object","required":["rules"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getStoragesContainerReplicationRule:getStoragesContainerReplicationRule":{"properties":{"deleteMarkerReplication":{"type":"string","description":"Delete marker replication\n"},"destination":{"$ref":"#/types/ovh:CloudProject/getStoragesContainerReplicationRuleDestination:getStoragesContainerReplicationRuleDestination","description":"Rule destination configuration\n"},"filter":{"$ref":"#/types/ovh:CloudProject/getStoragesContainerReplicationRuleFilter:getStoragesContainerReplicationRuleFilter","description":"Rule filters\n"},"id":{"type":"string","description":"Rule ID\n"},"priority":{"type":"number","description":"Rule priority\n"},"status":{"type":"string","description":"Rule status\n"}},"type":"object","required":["deleteMarkerReplication","destination","filter","id","priority","status"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getStoragesContainerReplicationRuleDestination:getStoragesContainerReplicationRuleDestination":{"properties":{"name":{"type":"string","description":"Destination bucket name\n"},"region":{"type":"string","description":"Destination region, can be null if destination bucket has been deleted\n"},"removeOnMainBucketDeletion":{"type":"boolean"},"storageClass":{"type":"string","description":"Destination storage class\n"}},"type":"object","required":["name","region","removeOnMainBucketDeletion","storageClass"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getStoragesContainerReplicationRuleFilter:getStoragesContainerReplicationRuleFilter":{"properties":{"prefix":{"type":"string","description":"Prefix filter\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags filter\n"}},"type":"object","required":["prefix","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getStoragesContainerVersioning:getStoragesContainerVersioning":{"properties":{"status":{"type":"string","description":"Versioning status\n"}},"type":"object","required":["status"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getUserRole:getUserRole":{"properties":{"description":{"type":"string","description":"description of the role\n"},"id":{"type":"string","description":"id of the role\n"},"name":{"type":"string","description":"name of the role\n"},"permissions":{"type":"array","items":{"type":"string"},"description":"list of permissions associated with the role\n"}},"type":"object","required":["description","id","name","permissions"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getUsersUser:getUsersUser":{"properties":{"creationDate":{"type":"string","description":"the date the user was created.\n"},"description":{"type":"string","description":"description of the role\n"},"roles":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/getUsersUserRole:getUsersUserRole"},"description":"A list of roles associated with the user.\n"},"status":{"type":"string","description":"the status of the user. should be normally set to 'ok'.\n"},"userId":{"type":"string","description":"The ID of a public cloud project's user.\n"},"username":{"type":"string","description":"the username generated for the user. This username can be used with the Openstack API.\n"}},"type":"object","required":["creationDate","description","roles","status","userId","username"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getUsersUserRole:getUsersUserRole":{"properties":{"description":{"type":"string","description":"description of the role\n"},"id":{"type":"string","description":"id of the role\n"},"name":{"type":"string","description":"name of the role\n"},"permissions":{"type":"array","items":{"type":"string"},"description":"list of permissions associated with the role\n"}},"type":"object","required":["description","id","name","permissions"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProject/getVolumesVolume:getVolumesVolume":{"properties":{"id":{"type":"string","description":"The id of the volume\n"},"name":{"type":"string","description":"The name of the volume\n"},"size":{"type":"number","description":"The size of the volume\n"}},"type":"object","required":["id","name","size"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProjectDatabase/OpensearchUserAcl:OpensearchUserAcl":{"properties":{"pattern":{"type":"string","description":"Pattern of the ACL.\n"},"permission":{"type":"string","description":"Permission of the ACL Available permission:\n"}},"type":"object","required":["pattern","permission"]},"ovh:CloudProjectDatabase/PrometheusTarget:PrometheusTarget":{"properties":{"host":{"type":"string","description":"Host of the endpoint\n"},"port":{"type":"integer","description":"Connection port for the endpoint\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["host","port"]}}},"ovh:CloudProjectDatabase/getCapabilitiesEngine:getCapabilitiesEngine":{"properties":{"defaultVersion":{"type":"string","description":"Default version used for the engine.\n"},"description":{"type":"string","description":"Description of the plan.\n"},"name":{"type":"string","description":"Name of the plan.\n"},"sslModes":{"type":"array","items":{"type":"string"},"description":"SSL modes for this engine.\n"},"versions":{"type":"array","items":{"type":"string"},"description":"Versions available for this engine.\n"}},"type":"object","required":["defaultVersion","description","name","sslModes","versions"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProjectDatabase/getCapabilitiesFlavor:getCapabilitiesFlavor":{"properties":{"core":{"type":"integer","description":"Flavor core number.\n"},"memory":{"type":"integer","description":"Flavor ram size in GB.\n"},"name":{"type":"string","description":"Name of the plan.\n"},"storage":{"type":"integer","description":"Flavor disk size in GB.\n"}},"type":"object","required":["core","memory","name","storage"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProjectDatabase/getCapabilitiesOption:getCapabilitiesOption":{"properties":{"name":{"type":"string","description":"Name of the plan.\n"},"type":{"type":"string","description":"Type of the option.\n"}},"type":"object","required":["name","type"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProjectDatabase/getCapabilitiesPlan:getCapabilitiesPlan":{"properties":{"backupRetention":{"type":"string","description":"Automatic backup retention duration.\n"},"description":{"type":"string","description":"Description of the plan.\n"},"name":{"type":"string","description":"Name of the plan.\n"}},"type":"object","required":["backupRetention","description","name"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProjectDatabase/getDatabaseEndpoint:getDatabaseEndpoint":{"properties":{"component":{"type":"string","description":"Type of component the URI relates to.\n"},"domain":{"type":"string","description":"Domain of the cluster.\n"},"path":{"type":"string","description":"Path of the endpoint.\n"},"port":{"type":"integer","description":"Connection port for the endpoint.\n"},"scheme":{"type":"string","description":"Scheme used to generate the URI.\n"},"ssl":{"type":"boolean","description":"Defines whether the endpoint uses SSL.\n"},"sslMode":{"type":"string","description":"SSL mode used to connect to the service if the SSL is enabled.\n"},"uri":{"type":"string","description":"URI of the endpoint.\n"}},"type":"object","required":["component","domain","path","port","scheme","ssl","sslMode","uri"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProjectDatabase/getDatabaseIpRestriction:getDatabaseIpRestriction":{"properties":{"description":{"type":"string","description":"Description of the IP restriction\n"},"ip":{"type":"string","description":"Authorized IP\n"},"status":{"type":"string","description":"Current status of the cluster.\n"}},"type":"object","required":["description","ip","status"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:CloudProjectDatabase/getDatabaseNode:getDatabaseNode":{"properties":{"networkId":{"type":"string","description":"Private network id in which the node should be deployed. It's the regional openstackId of the private network\n"},"region":{"type":"string","description":"Public cloud region in which the node should be deployed.\n"},"subnetId":{"type":"string","description":"Private subnet ID in which the node is.\n"}},"type":"object","required":["networkId","region","subnetId"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Dbaas/LogsInputConfiguration:LogsInputConfiguration":{"properties":{"flowgger":{"$ref":"#/types/ovh:Dbaas/LogsInputConfigurationFlowgger:LogsInputConfigurationFlowgger","description":"Flowgger configuration\n"},"logstash":{"$ref":"#/types/ovh:Dbaas/LogsInputConfigurationLogstash:LogsInputConfigurationLogstash","description":"Logstash configuration\n"}},"type":"object"},"ovh:Dbaas/LogsInputConfigurationFlowgger:LogsInputConfigurationFlowgger":{"properties":{"logFormat":{"type":"string","description":"Type of format to decode. One of \"RFC5424\", \"LTSV\", \"GELF\", \"CAPNP\"\n"},"logFraming":{"type":"string","description":"Indicates how messages are delimited. One of \"LINE\", \"NUL\", \"SYSLEN\", \"CAPNP\"\n"}},"type":"object","required":["logFormat","logFraming"]},"ovh:Dbaas/LogsInputConfigurationLogstash:LogsInputConfigurationLogstash":{"properties":{"filterSection":{"type":"string","description":"The filter section of logstash.conf\n"},"inputSection":{"type":"string","description":"The filter section of logstash.conf\n"},"patternSection":{"type":"string","description":"The list of customs Grok patterns\n"}},"type":"object","required":["inputSection"]},"ovh:Dedicated/ServerCustomizations:ServerCustomizations":{"properties":{"configDriveMetadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Config Drive MetaData\n"},"configDriveUserData":{"type":"string","description":"Config Drive UserData\n"},"efiBootloaderPath":{"type":"string","description":"Path of the EFI bootloader\n"},"hostname":{"type":"string","description":"Custom hostname\n"},"httpHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"Image HTTP Headers\n"},"imageCheckSum":{"type":"string","description":"Image checksum\n"},"imageCheckSumType":{"type":"string","description":"Checksum type\n"},"imageType":{"type":"string","description":"Image Type\n"},"imageUrl":{"type":"string","description":"Image URL\n"},"language":{"type":"string","description":"Display Language\n"},"postInstallationScript":{"type":"string","description":"Post-Installation Script\n"},"postInstallationScriptExtension":{"type":"string","description":"Post-Installation Script File Extension\n"},"sshKey":{"type":"string","description":"SSH Public Key\n"}},"type":"object"},"ovh:Dedicated/ServerIam:ServerIam":{"properties":{"displayName":{"type":"string","description":"Resource display name\n"},"id":{"type":"string","description":"Unique identifier of the resource in the IAM\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource tags. Tags that were internally computed are prefixed with `ovh:`\n"},"urn":{"type":"string","description":"URN of the private database, used when writing IAM policies\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["displayName","id","tags","urn"]}}},"ovh:Dedicated/ServerNetworkingInterface:ServerNetworkingInterface":{"properties":{"macs":{"type":"array","items":{"type":"string"},"description":"Interface Mac address\n","willReplaceOnChanges":true},"type":{"type":"string","description":"Interface type\n","willReplaceOnChanges":true}},"type":"object","required":["macs","type"]},"ovh:Dedicated/ServerOrder:ServerOrder":{"properties":{"date":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/types/ovh:Dedicated/ServerOrderDetail:ServerOrderDetail"}},"expirationDate":{"type":"string"},"orderId":{"type":"number"}},"type":"object","language":{"nodejs":{"requiredOutputs":["date","details","expirationDate","orderId"]}}},"ovh:Dedicated/ServerOrderDetail:ServerOrderDetail":{"properties":{"description":{"type":"string"},"detailType":{"type":"string","description":"Product type of item in order\n"},"domain":{"type":"string"},"orderDetailId":{"type":"number"},"quantity":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","detailType","domain","orderDetailId","quantity"]}}},"ovh:Dedicated/ServerPlan:ServerPlan":{"properties":{"configurations":{"type":"array","items":{"$ref":"#/types/ovh:Dedicated/ServerPlanConfiguration:ServerPlanConfiguration"}},"duration":{"type":"string","description":"Duration selected for the purchase of the product\n"},"itemId":{"type":"number","description":"Cart item to be linked\n"},"planCode":{"type":"string","description":"Identifier of the option offer\n"},"pricingMode":{"type":"string","description":"Pricing mode selected for the purchase of the product\n"},"quantity":{"type":"number","description":"Quantity of product desired\n"}},"type":"object","required":["duration","planCode","pricingMode"],"language":{"nodejs":{"requiredOutputs":["configurations","duration","planCode","pricingMode"]}}},"ovh:Dedicated/ServerPlanConfiguration:ServerPlanConfiguration":{"properties":{"label":{"type":"string","description":"Label for your configuration item\n"},"value":{"type":"string","description":"Value or resource URL on API.OVH.COM of your configuration item\n"}},"type":"object","required":["label","value"]},"ovh:Dedicated/ServerPlanOption:ServerPlanOption":{"properties":{"configurations":{"type":"array","items":{"$ref":"#/types/ovh:Dedicated/ServerPlanOptionConfiguration:ServerPlanOptionConfiguration"}},"duration":{"type":"string","description":"Duration selected for the purchase of the product\n"},"planCode":{"type":"string","description":"Identifier of the option offer\n"},"pricingMode":{"type":"string","description":"Pricing mode selected for the purchase of the product\n"},"quantity":{"type":"number","description":"Quantity of product desired\n"}},"type":"object","required":["duration","planCode","pricingMode","quantity"]},"ovh:Dedicated/ServerPlanOptionConfiguration:ServerPlanOptionConfiguration":{"properties":{"label":{"type":"string","description":"Label for your configuration item\n"},"value":{"type":"string","description":"Value or resource URL on API.OVH.COM of your configuration item\n"}},"type":"object","required":["label","value"]},"ovh:Dedicated/ServerReinstallTaskCustomizations:ServerReinstallTaskCustomizations":{"properties":{"configDriveMetadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Config Drive MetaData\n","willReplaceOnChanges":true},"configDriveUserData":{"type":"string","description":"Config Drive UserData\n","willReplaceOnChanges":true},"efiBootloaderPath":{"type":"string","description":"EFI bootloader path\n","willReplaceOnChanges":true},"hostname":{"type":"string","description":"Custom hostname\n","willReplaceOnChanges":true},"httpHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"Image HTTP Headers\n","willReplaceOnChanges":true},"imageCheckSum":{"type":"string","description":"Image checksum\n","willReplaceOnChanges":true},"imageCheckSumType":{"type":"string","description":"Checksum type\n","willReplaceOnChanges":true},"imageType":{"type":"string","description":"Image Type\n","willReplaceOnChanges":true},"imageUrl":{"type":"string","description":"Image URL\n","willReplaceOnChanges":true},"language":{"type":"string","description":"Display Language\n","willReplaceOnChanges":true},"postInstallationScript":{"type":"string","description":"Post-Installation Script\n","willReplaceOnChanges":true},"postInstallationScriptExtension":{"type":"string","description":"Post-Installation Script File Extension\n","willReplaceOnChanges":true},"sshKey":{"type":"string","description":"SSH Public Key\n","willReplaceOnChanges":true}},"type":"object"},"ovh:Dedicated/ServerReinstallTaskStorage:ServerReinstallTaskStorage":{"properties":{"diskGroupId":{"type":"integer","description":"Disk group id to install the OS to (default is 0, meaning automatic).\n","willReplaceOnChanges":true},"hardwareRaids":{"type":"array","items":{"$ref":"#/types/ovh:Dedicated/ServerReinstallTaskStorageHardwareRaid:ServerReinstallTaskStorageHardwareRaid"},"description":"Hardware Raid configurations (if not specified, all disks of the chosen disk group id will be configured in JBOD mode).\n","willReplaceOnChanges":true},"partitionings":{"type":"array","items":{"$ref":"#/types/ovh:Dedicated/ServerReinstallTaskStoragePartitioning:ServerReinstallTaskStoragePartitioning"},"description":"Partitioning configuration\n","willReplaceOnChanges":true}},"type":"object"},"ovh:Dedicated/ServerReinstallTaskStorageHardwareRaid:ServerReinstallTaskStorageHardwareRaid":{"properties":{"arrays":{"type":"integer","description":"Number of arrays (default is 1)\n","willReplaceOnChanges":true},"disks":{"type":"integer","description":"Total number of disks in the disk group involved in the hardware raid configuration (all disks of the disk group by default)\n","willReplaceOnChanges":true},"raidLevel":{"type":"integer","description":"Hardware raid type (default is 1)\n","willReplaceOnChanges":true},"spares":{"type":"integer","description":"Number of disks in the disk group involved in the spare (default is 0)\n","willReplaceOnChanges":true}},"type":"object"},"ovh:Dedicated/ServerReinstallTaskStoragePartitioning:ServerReinstallTaskStoragePartitioning":{"properties":{"disks":{"type":"integer","description":"Total number of disks in the disk group involved in the partitioning configuration (all disks of the disk group by default)\n","willReplaceOnChanges":true},"layouts":{"type":"array","items":{"$ref":"#/types/ovh:Dedicated/ServerReinstallTaskStoragePartitioningLayout:ServerReinstallTaskStoragePartitioningLayout"},"description":"Custom partitioning layout (default is the default layout of the operating system's default partitioning scheme). Accept multiple values (multiple partitions):\n"},"schemeName":{"type":"string","description":"Partitioning scheme (if applicable with selected operating system)\n","willReplaceOnChanges":true}},"type":"object"},"ovh:Dedicated/ServerReinstallTaskStoragePartitioningLayout:ServerReinstallTaskStoragePartitioningLayout":{"properties":{"extras":{"type":"array","items":{"$ref":"#/types/ovh:Dedicated/ServerReinstallTaskStoragePartitioningLayoutExtra:ServerReinstallTaskStoragePartitioningLayoutExtra"},"description":"Partition extras parameters (when applicable)\n","willReplaceOnChanges":true},"fileSystem":{"type":"string","description":"File system type\n","willReplaceOnChanges":true},"mountPoint":{"type":"string","description":"Mount point\n","willReplaceOnChanges":true},"raidLevel":{"type":"integer","description":"Software raid type (default is 1)\n","willReplaceOnChanges":true},"size":{"type":"integer","description":"Partition size in MiB (default value is 0 which means to fill the disk with that partition)\n","willReplaceOnChanges":true}},"type":"object","required":["fileSystem","mountPoint"]},"ovh:Dedicated/ServerReinstallTaskStoragePartitioningLayoutExtra:ServerReinstallTaskStoragePartitioningLayoutExtra":{"properties":{"lvs":{"type":"array","items":{"$ref":"#/types/ovh:Dedicated/ServerReinstallTaskStoragePartitioningLayoutExtraLv:ServerReinstallTaskStoragePartitioningLayoutExtraLv"},"description":"LVM-specific parameters (when applicable)\n","willReplaceOnChanges":true},"zps":{"type":"array","items":{"$ref":"#/types/ovh:Dedicated/ServerReinstallTaskStoragePartitioningLayoutExtraZp:ServerReinstallTaskStoragePartitioningLayoutExtraZp"},"description":"ZFS-specific parameters (when applicable)\n","willReplaceOnChanges":true}},"type":"object"},"ovh:Dedicated/ServerReinstallTaskStoragePartitioningLayoutExtraLv:ServerReinstallTaskStoragePartitioningLayoutExtraLv":{"properties":{"name":{"type":"string","description":"Logical volume name\n","willReplaceOnChanges":true}},"type":"object"},"ovh:Dedicated/ServerReinstallTaskStoragePartitioningLayoutExtraZp:ServerReinstallTaskStoragePartitioningLayoutExtraZp":{"properties":{"name":{"type":"string","description":"zpool name (generated automatically if not specified, note that multiple ZFS partitions with same zpool names will be configured as multiple datasets belonging to the same zpool if compatible)\n","willReplaceOnChanges":true}},"type":"object"},"ovh:Dedicated/ServerStorage:ServerStorage":{"properties":{"diskGroupId":{"type":"number","description":"Disk group id (default is 0, meaning automatic)\n"},"hardwareRaids":{"type":"array","items":{"$ref":"#/types/ovh:Dedicated/ServerStorageHardwareRaid:ServerStorageHardwareRaid"},"description":"Hardware Raid configurations (if not specified, all disks of the chosen disk group id will be configured in JBOD mode)\n"},"partitioning":{"$ref":"#/types/ovh:Dedicated/ServerStoragePartitioning:ServerStoragePartitioning","description":"Partitioning configuration\n"}},"type":"object"},"ovh:Dedicated/ServerStorageHardwareRaid:ServerStorageHardwareRaid":{"properties":{"arrays":{"type":"number","description":"Number of arrays (default is 1)\n"},"disks":{"type":"number","description":"Total number of disks in the disk group involved in the hardware raid configuration (all disks of the disk group by default)\n"},"raidLevel":{"type":"number","description":"Hardware raid type (default is 1)\n"},"spares":{"type":"number","description":"Number of disks in the disk group involved in the spare (default is 0)\n"}},"type":"object"},"ovh:Dedicated/ServerStoragePartitioning:ServerStoragePartitioning":{"properties":{"disks":{"type":"number","description":"Total number of disks in the disk group involved in the partitioning configuration (all disks of the disk group by default)\n"},"layouts":{"type":"array","items":{"$ref":"#/types/ovh:Dedicated/ServerStoragePartitioningLayout:ServerStoragePartitioningLayout"},"description":"Custom partitioning layout (default is the default layout of the operating system's default partitioning scheme)\n"},"schemeName":{"type":"string","description":"Partitioning scheme (if applicable with selected operating system)\n"}},"type":"object"},"ovh:Dedicated/ServerStoragePartitioningLayout:ServerStoragePartitioningLayout":{"properties":{"extras":{"$ref":"#/types/ovh:Dedicated/ServerStoragePartitioningLayoutExtras:ServerStoragePartitioningLayoutExtras","description":"Partition extras parameters\n"},"fileSystem":{"type":"string","description":"File system type\n"},"mountPoint":{"type":"string","description":"Mount point\n"},"raidLevel":{"type":"number","description":"Software raid type (default is 1)\n"},"size":{"type":"number","description":"Partition size in MiB (default value is 0 which means to fill the disk with that partition)\n"}},"type":"object","required":["fileSystem","mountPoint"]},"ovh:Dedicated/ServerStoragePartitioningLayoutExtras:ServerStoragePartitioningLayoutExtras":{"properties":{"lv":{"$ref":"#/types/ovh:Dedicated/ServerStoragePartitioningLayoutExtrasLv:ServerStoragePartitioningLayoutExtrasLv","description":"LVM-specific parameters\n"},"zp":{"$ref":"#/types/ovh:Dedicated/ServerStoragePartitioningLayoutExtrasZp:ServerStoragePartitioningLayoutExtrasZp","description":"ZFS-specific parameters\n"}},"type":"object"},"ovh:Dedicated/ServerStoragePartitioningLayoutExtrasLv:ServerStoragePartitioningLayoutExtrasLv":{"properties":{"name":{"type":"string","description":"Dedicated server name\n"}},"type":"object"},"ovh:Dedicated/ServerStoragePartitioningLayoutExtrasZp:ServerStoragePartitioningLayoutExtrasZp":{"properties":{"name":{"type":"string","description":"Dedicated server name\n"}},"type":"object"},"ovh:Dedicated/getCloudIam:getCloudIam":{"properties":{"displayName":{"type":"string","description":"Resource display name\n"},"id":{"type":"string","description":"Unique identifier of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource tags. Tags that were internally computed are prefixed with ovh:\n"},"urn":{"type":"string","description":"Unique resource name used in policies\n"}},"type":"object","required":["displayName","id","tags","urn"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Dedicated/getCloudVersion:getCloudVersion":{"properties":{"build":{"type":"string"},"major":{"type":"string"},"minor":{"type":"string"}},"type":"object","required":["build","major","minor"],"language":{"nodejs":{"requiredInputs":[]}}},"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":["inputQuotaSize","inputQuotaUsed","isThrottled","outputQuotaSize","outputQuotaUsed","resetQuotaDate"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Dedicated/getServerSpecificationsNetworkTrafficInputQuotaSize:getServerSpecificationsNetworkTrafficInputQuotaSize":{"properties":{"unit":{"type":"string"},"value":{"type":"number"}},"type":"object","required":["unit","value"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Dedicated/getServerSpecificationsNetworkTrafficInputQuotaUsed:getServerSpecificationsNetworkTrafficInputQuotaUsed":{"properties":{"unit":{"type":"string"},"value":{"type":"number"}},"type":"object","required":["unit","value"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Dedicated/getServerSpecificationsNetworkTrafficOutputQuotaSize:getServerSpecificationsNetworkTrafficOutputQuotaSize":{"properties":{"unit":{"type":"string"},"value":{"type":"number"}},"type":"object","required":["unit","value"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Dedicated/getServerSpecificationsNetworkTrafficOutputQuotaUsed:getServerSpecificationsNetworkTrafficOutputQuotaUsed":{"properties":{"unit":{"type":"string"},"value":{"type":"number"}},"type":"object","required":["unit","value"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Dedicated/getServerSpecificationsNetworkVmac:getServerSpecificationsNetworkVmac":{"properties":{"supported":{"type":"boolean","description":"Whether server is compatible vmac\n"}},"type":"object","required":["supported"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Dedicated/getServerSpecificationsNetworkVrack:getServerSpecificationsNetworkVrack":{"properties":{"bandwidth":{"$ref":"#/types/ovh:Dedicated/getServerSpecificationsNetworkVrackBandwidth:getServerSpecificationsNetworkVrackBandwidth","description":"vrack bandwidth limitation\n"},"type":{"type":"string","description":"Bandwidth offer type (included┃standard)\n"}},"type":"object","required":["bandwidth","type"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Dedicated/getServerSpecificationsNetworkVrackBandwidth:getServerSpecificationsNetworkVrackBandwidth":{"properties":{"unit":{"type":"string"},"value":{"type":"number"}},"type":"object","required":["unit","value"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Domain/DSRecordsDsRecord:DSRecordsDsRecord":{"properties":{"algorithm":{"type":"string","description":"The record algorithm (`RSASHA1`, `RSASHA1_NSEC3_SHA1`, `RSASHA256`, `RSASHA512`, `ECDSAP256SHA256`, `ECDSAP384SHA384`, `ED25519`)\n"},"flags":{"type":"string","description":"The record flag (`ZONE_SIGNING_KEY`, `KEY_SIGNING_KEY`)\n"},"publicKey":{"type":"string","description":"The record base64 encoded public key\n"},"tag":{"type":"integer","description":"The record tag\n"}},"type":"object","required":["algorithm","flags","publicKey","tag"]},"ovh:Domain/NameCurrentState:NameCurrentState":{"properties":{"additionalStates":{"type":"array","items":{"type":"string"},"description":"Domain additional states\n"},"dnsConfiguration":{"$ref":"#/types/ovh:Domain/NameCurrentStateDnsConfiguration:NameCurrentStateDnsConfiguration","description":"The domain DNS configuration\n"},"extension":{"type":"string","description":"Extension of the domain name\n"},"mainState":{"type":"string","description":"Domain main state\n"},"name":{"type":"string","description":"Domain name\n"},"protectionState":{"type":"string","description":"Domain protection state\n"},"suspensionState":{"type":"string","description":"Domain suspension state\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["additionalStates","dnsConfiguration","extension","mainState","name","protectionState","suspensionState"]}}},"ovh:Domain/NameCurrentStateDnsConfiguration:NameCurrentStateDnsConfiguration":{"properties":{"configurationType":{"type":"string","description":"The type of DNS configuration of the domain\n"},"glueRecordIpv6supported":{"type":"boolean","description":"Whether the registry supports IPv6 or not\n"},"hostSupported":{"type":"boolean","description":"Whether the registry accepts hosts or not\n"},"maxDns":{"type":"number","description":"The maximum number of name servers allowed by the registry\n"},"minDns":{"type":"number","description":"The minimum number of name servers allowed by the registry\n"},"nameServers":{"type":"array","items":{"$ref":"#/types/ovh:Domain/NameCurrentStateDnsConfigurationNameServer:NameCurrentStateDnsConfigurationNameServer"},"description":"The name servers used by the domain name\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["configurationType","glueRecordIpv6supported","hostSupported","maxDns","minDns","nameServers"]}}},"ovh:Domain/NameCurrentStateDnsConfigurationNameServer:NameCurrentStateDnsConfigurationNameServer":{"properties":{"ipv4":{"type":"string","description":"The IPv4 associated to the name server\n"},"ipv6":{"type":"string","description":"The IPv6 associated to the name server\n"},"nameServer":{"type":"string","description":"The host name\n"},"nameServerType":{"type":"string","description":"The type of name server\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ipv4","ipv6","nameServer","nameServerType"]}}},"ovh:Domain/NameCurrentTask:NameCurrentTask":{"properties":{"id":{"type":"string","description":"Identifier of the current task\n"},"link":{"type":"string","description":"Link to the task details\n"},"status":{"type":"string","description":"Current global status of the current task\n"},"type":{"type":"string","description":"Type of the current task\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","link","status","type"]}}},"ovh:Domain/NameIam:NameIam":{"properties":{"displayName":{"type":"string","description":"Resource display name\n"},"id":{"type":"string","description":"Unique identifier of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource tags. Tags that were internally computed are prefixed with ovh:\n"},"urn":{"type":"string","description":"Unique resource name used in policies\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["displayName","id","tags","urn"]}}},"ovh:Domain/NameOrder:NameOrder":{"properties":{"date":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/types/ovh:Domain/NameOrderDetail:NameOrderDetail"}},"expirationDate":{"type":"string"},"orderId":{"type":"number"}},"type":"object","language":{"nodejs":{"requiredOutputs":["date","details","expirationDate","orderId"]}}},"ovh:Domain/NameOrderDetail:NameOrderDetail":{"properties":{"description":{"type":"string"},"detailType":{"type":"string","description":"Product type of item in order\n"},"domain":{"type":"string"},"orderDetailId":{"type":"number"},"quantity":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","detailType","domain","orderDetailId","quantity"]}}},"ovh:Domain/NamePlan:NamePlan":{"properties":{"configurations":{"type":"array","items":{"$ref":"#/types/ovh:Domain/NamePlanConfiguration:NamePlanConfiguration"}},"duration":{"type":"string","description":"Duration selected for the purchase of the product (defaults to \"P1Y\")\n"},"itemId":{"type":"number","description":"Cart item to be linked\n"},"planCode":{"type":"string","description":"Identifier of the option offer\n"},"pricingMode":{"type":"string","description":"Pricing mode selected for the purchase of the product\n"},"quantity":{"type":"number","description":"Quantity of product desired\n"}},"type":"object","required":["duration","planCode","pricingMode"],"language":{"nodejs":{"requiredOutputs":["configurations","duration","planCode","pricingMode"]}}},"ovh:Domain/NamePlanConfiguration:NamePlanConfiguration":{"properties":{"label":{"type":"string","description":"Label for your configuration item\n"},"value":{"type":"string","description":"Value or resource URL on API.OVH.COM of your configuration item\n"}},"type":"object","required":["label","value"]},"ovh:Domain/NamePlanOption:NamePlanOption":{"properties":{"configurations":{"type":"array","items":{"$ref":"#/types/ovh:Domain/NamePlanOptionConfiguration:NamePlanOptionConfiguration"}},"duration":{"type":"string","description":"Duration selected for the purchase of the product\n"},"planCode":{"type":"string","description":"Identifier of the option offer\n"},"pricingMode":{"type":"string","description":"Pricing mode selected for the purchase of the product\n"},"quantity":{"type":"number","description":"Quantity of product desired\n"}},"type":"object","required":["duration","planCode","pricingMode","quantity"]},"ovh:Domain/NamePlanOptionConfiguration:NamePlanOptionConfiguration":{"properties":{"label":{"type":"string","description":"Label for your configuration item\n"},"value":{"type":"string","description":"Value or resource URL on API.OVH.COM of your configuration item\n"}},"type":"object","required":["label","value"]},"ovh:Domain/NameServersServer:NameServersServer":{"properties":{"host":{"type":"string","description":"The server hostname\n"},"ip":{"type":"string","description":"The server IP\n"}},"type":"object","required":["host"]},"ovh:Domain/NameTargetSpec:NameTargetSpec":{"properties":{"dnsConfiguration":{"$ref":"#/types/ovh:Domain/NameTargetSpecDnsConfiguration:NameTargetSpecDnsConfiguration","description":"The domain DNS configuration\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["dnsConfiguration"]}}},"ovh:Domain/NameTargetSpecDnsConfiguration:NameTargetSpecDnsConfiguration":{"properties":{"nameServers":{"type":"array","items":{"$ref":"#/types/ovh:Domain/NameTargetSpecDnsConfigurationNameServer:NameTargetSpecDnsConfigurationNameServer"},"description":"The name servers to update\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["nameServers"]}}},"ovh:Domain/NameTargetSpecDnsConfigurationNameServer:NameTargetSpecDnsConfigurationNameServer":{"properties":{"ipv4":{"type":"string","description":"The IPv4 associated to the name server\n"},"ipv6":{"type":"string","description":"The IPv6 associated to the name server\n"},"nameServer":{"type":"string","description":"The host name\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ipv4","ipv6","nameServer"]}}},"ovh:Domain/ZoneOrder:ZoneOrder":{"properties":{"date":{"type":"string","description":"date\n"},"details":{"type":"array","items":{"$ref":"#/types/ovh:Domain/ZoneOrderDetail:ZoneOrderDetail"},"description":"Information about a Bill entry\n"},"expirationDate":{"type":"string","description":"expiration date\n"},"orderId":{"type":"integer","description":"order id\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["date","details","expirationDate","orderId"]}}},"ovh:Domain/ZoneOrderDetail:ZoneOrderDetail":{"properties":{"description":{"type":"string","description":"description\n"},"domain":{"type":"string","description":"expiration date\n"},"orderDetailId":{"type":"integer","description":"order detail id\n"},"quantity":{"type":"string","description":"quantity\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","domain","orderDetailId","quantity"]}}},"ovh:Domain/ZonePlan:ZonePlan":{"properties":{"catalogName":{"type":"string","description":"Catalog name\n"},"configurations":{"type":"array","items":{"$ref":"#/types/ovh:Domain/ZonePlanConfiguration:ZonePlanConfiguration"},"description":"Representation of a configuration item for personalizing product. 2 configurations are required : one for `zone` and one for `template`\n"},"duration":{"type":"string","description":"duration\n"},"planCode":{"type":"string","description":"Plan code\n"},"pricingMode":{"type":"string","description":"Pricing model identifier\n"}},"type":"object","required":["duration","planCode","pricingMode"]},"ovh:Domain/ZonePlanConfiguration:ZonePlanConfiguration":{"properties":{"label":{"type":"string","description":"Identifier of the resource : `zone` or `template`\n"},"value":{"type":"string","description":"For `zone`, the value is the zone name `myzone.example.com`. For `template`, the value can be `basic`, `minimized` or `redirect` which is the same as `minimized` with additional entries for a redirect configuration.\n"}},"type":"object","required":["label","value"]},"ovh:Domain/ZonePlanOption:ZonePlanOption":{"properties":{"catalogName":{"type":"string","description":"Catalog name\n"},"configurations":{"type":"array","items":{"$ref":"#/types/ovh:Domain/ZonePlanOptionConfiguration:ZonePlanOptionConfiguration"},"description":"Representation of a configuration item for personalizing product\n"},"duration":{"type":"string","description":"duration\n"},"planCode":{"type":"string","description":"Plan code\n"},"pricingMode":{"type":"string","description":"Pricing model identifier\n"}},"type":"object","required":["duration","planCode","pricingMode"]},"ovh:Domain/ZonePlanOptionConfiguration:ZonePlanOptionConfiguration":{"properties":{"label":{"type":"string","description":"Identifier of the resource\n"},"value":{"type":"string","description":"Path to the resource in API.OVH.COM\n"}},"type":"object","required":["label","value"]},"ovh:Hosting/PrivateDatabaseOrder:PrivateDatabaseOrder":{"properties":{"date":{"type":"string","description":"date\n"},"details":{"type":"array","items":{"$ref":"#/types/ovh:Hosting/PrivateDatabaseOrderDetail:PrivateDatabaseOrderDetail"},"description":"Information about a Bill entry\n"},"expirationDate":{"type":"string","description":"expiration date\n"},"orderId":{"type":"integer","description":"order id\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["date","details","expirationDate","orderId"]}}},"ovh:Hosting/PrivateDatabaseOrderDetail:PrivateDatabaseOrderDetail":{"properties":{"description":{"type":"string","description":"Custom description on your privatedatabase order.\n"},"domain":{"type":"string","description":"expiration date\n"},"orderDetailId":{"type":"integer","description":"order detail id\n"},"quantity":{"type":"string","description":"quantity\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","domain","orderDetailId","quantity"]}}},"ovh:Hosting/PrivateDatabasePlan:PrivateDatabasePlan":{"properties":{"catalogName":{"type":"string","description":"Catalog name\n"},"configurations":{"type":"array","items":{"$ref":"#/types/ovh:Hosting/PrivateDatabasePlanConfiguration:PrivateDatabasePlanConfiguration"},"description":"Representation of a configuration item for personalizing product\n"},"duration":{"type":"string","description":"duration.\n"},"planCode":{"type":"string","description":"Plan code.\n"},"pricingMode":{"type":"string","description":"Pricing model identifier\n"}},"type":"object","required":["duration","planCode","pricingMode"]},"ovh:Hosting/PrivateDatabasePlanConfiguration:PrivateDatabasePlanConfiguration":{"properties":{"label":{"type":"string","description":"Identifier of the resource\n"},"value":{"type":"string","description":"Path to the resource in API.OVH.COM\n\nPlan order valid values can be found on OVHcloud [APIv6](https://api.ovh.com/console/#/hosting/privateDatabase/availableOrderCapacities~GET)\n"}},"type":"object","required":["label","value"]},"ovh:Hosting/PrivateDatabasePlanOption:PrivateDatabasePlanOption":{"properties":{"catalogName":{"type":"string","description":"Catalog name\n"},"configurations":{"type":"array","items":{"$ref":"#/types/ovh:Hosting/PrivateDatabasePlanOptionConfiguration:PrivateDatabasePlanOptionConfiguration"},"description":"Representation of a configuration item for personalizing product\n"},"duration":{"type":"string","description":"Service duration\n"},"planCode":{"type":"string","description":"Plan code\n"},"pricingMode":{"type":"string","description":"Pricing model identifier\n"}},"type":"object","required":["duration","planCode","pricingMode"]},"ovh:Hosting/PrivateDatabasePlanOptionConfiguration:PrivateDatabasePlanOptionConfiguration":{"properties":{"label":{"type":"string","description":"Identifier of the resource\n"},"value":{"type":"string","description":"Path to the resource in API.OVH.COM\n"}},"type":"object","required":["label","value"]},"ovh:Hosting/getPrivateDatabaseDbUser:getPrivateDatabaseDbUser":{"properties":{"grantType":{"type":"string","description":"Grant of this user for this database\n"},"userName":{"type":"string","description":"User's name granted on this database\n"}},"type":"object","required":["grantType","userName"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Hosting/getPrivateDatabaseUserDatabase:getPrivateDatabaseUserDatabase":{"properties":{"databaseName":{"type":"string","description":"Database's name linked to this user\n"},"grantType":{"type":"string","description":"Grant of this user for this database\n"}},"type":"object","required":["databaseName","grantType"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Iam/PolicyConditions:PolicyConditions":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/ovh:Iam/PolicyConditionsCondition:PolicyConditionsCondition"},"description":"List of condition blocks. Each condition supports:\n"},"operator":{"type":"string","description":"Operator to combine conditions. Valid values are `AND`, `OR`, `NOT`, or `MATCH`.\n"},"values":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value pairs to match (e.g., resource.Tag(name), date(Europe/Paris).WeekDay, request.IP)\n"}},"type":"object","required":["operator"]},"ovh:Iam/PolicyConditionsCondition:PolicyConditionsCondition":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/ovh:Iam/PolicyConditionsConditionCondition:PolicyConditionsConditionCondition"},"description":"A list of nested conditions. This is the recursive part.\n"},"operator":{"type":"string","description":"Operator for this condition (typically `MATCH`).\n"},"values":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of key-value pairs to match. Keys can reference:\n* Resource tags: `resource.Tag(tag_name)` (e.g., `resource.Tag(environment)`)\n* Date/time: `date(timezone).WeekDay`, `date(timezone).WeekDay.In` (e.g., `date(Europe/Paris).WeekDay`)\n* Request attributes: `request.IP`\n\n**Note:** Conditions can be nested up to 3 levels deep. The `MATCH` operator is terminal and cannot have sub-conditions.\n"}},"type":"object","required":["operator"]},"ovh:Iam/PolicyConditionsConditionCondition:PolicyConditionsConditionCondition":{"properties":{"operator":{"type":"string","description":"Operator for this condition (MATCH, AND, OR, NOT)\n"},"values":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value pairs to match (e.g., resource.Tag(name), date(Europe/Paris).WeekDay, request.IP)\n"}},"type":"object","required":["operator"]},"ovh:Iam/getPolicyCondition:getPolicyCondition":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/ovh:Iam/getPolicyConditionCondition:getPolicyConditionCondition"},"description":"List of condition blocks. Each condition supports:\n"},"operator":{"type":"string","description":"Operator for this condition.\n"},"values":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of key-value pairs to match.\n"}},"type":"object","required":["conditions","operator","values"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Iam/getPolicyConditionCondition:getPolicyConditionCondition":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/ovh:Iam/getPolicyConditionConditionCondition:getPolicyConditionConditionCondition"},"description":"List of condition blocks. Each condition supports:\n"},"operator":{"type":"string","description":"Operator for this condition.\n"},"values":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of key-value pairs to match.\n"}},"type":"object","required":["conditions","operator","values"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Iam/getPolicyConditionConditionCondition:getPolicyConditionConditionCondition":{"properties":{"operator":{"type":"string","description":"Operator for this condition.\n"},"values":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of key-value pairs to match.\n"}},"type":"object","required":["operator","values"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Iam/getReferenceActionsAction:getReferenceActionsAction":{"properties":{"action":{"type":"string","description":"Name of the action\n"},"categories":{"type":"array","items":{"type":"string"},"description":"List of the categories of the action\n"},"description":{"type":"string","description":"Description of the action\n"},"resourceType":{"type":"string","description":"Resource type the action is related to\n"}},"type":"object","required":["action","categories","description","resourceType"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Ip/IpServiceOrder:IpServiceOrder":{"properties":{"date":{"type":"string","description":"date\n"},"details":{"type":"array","items":{"$ref":"#/types/ovh:Ip/IpServiceOrderDetail:IpServiceOrderDetail"},"description":"Information about a Bill entry\n"},"expirationDate":{"type":"string","description":"expiration date\n"},"orderId":{"type":"integer","description":"order id\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["date","details","expirationDate","orderId"]}}},"ovh:Ip/IpServiceOrderDetail:IpServiceOrderDetail":{"properties":{"description":{"type":"string","description":"Custom description on your ip.\n"},"domain":{"type":"string","description":"expiration date\n"},"orderDetailId":{"type":"integer","description":"order detail id\n"},"quantity":{"type":"string","description":"quantity\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","domain","orderDetailId","quantity"]}}},"ovh:Ip/IpServicePlan:IpServicePlan":{"properties":{"catalogName":{"type":"string","description":"Catalog name\n"},"configurations":{"type":"array","items":{"$ref":"#/types/ovh:Ip/IpServicePlanConfiguration:IpServicePlanConfiguration"},"description":"Representation of a configuration item for personalizing product\n"},"duration":{"type":"string","description":"duration\n"},"planCode":{"type":"string","description":"Plan code\n"},"pricingMode":{"type":"string","description":"Pricing model identifier\n"}},"type":"object","required":["duration","planCode","pricingMode"]},"ovh:Ip/IpServicePlanConfiguration:IpServicePlanConfiguration":{"properties":{"label":{"type":"string","description":"Identifier of the resource\n"},"value":{"type":"string","description":"Path to the resource in API.OVH.COM\n"}},"type":"object","required":["label","value"]},"ovh:Ip/IpServicePlanOption:IpServicePlanOption":{"properties":{"catalogName":{"type":"string","description":"Catalog name\n"},"configurations":{"type":"array","items":{"$ref":"#/types/ovh:Ip/IpServicePlanOptionConfiguration:IpServicePlanOptionConfiguration"},"description":"Representation of a configuration item for personalizing product. The list of available configurations can be retrieved using call [GET /order/cart/{cartId}/item/{itemId}/requiredConfiguration](https://eu.api.ovh.com/console/?section=%2Forder\u0026branch=v1#get-/order/cart/-cartId-/item/-itemId-/requiredConfiguration)\n"},"duration":{"type":"string","description":"duration\n"},"planCode":{"type":"string","description":"Plan code\n"},"pricingMode":{"type":"string","description":"Pricing model identifier\n"}},"type":"object","required":["duration","planCode","pricingMode"]},"ovh:Ip/IpServicePlanOptionConfiguration:IpServicePlanOptionConfiguration":{"properties":{"label":{"type":"string","description":"Identifier of the resource\n"},"value":{"type":"string","description":"Path to the resource in API.OVH.COM\n"}},"type":"object","required":["label","value"]},"ovh:Ip/IpServiceRoutedTo:IpServiceRoutedTo":{"properties":{"serviceName":{"type":"string","description":"service name\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["serviceName"]}}},"ovh:Ip/MoveRoutedTo:MoveRoutedTo":{"properties":{"serviceName":{"type":"string","description":"Name of the service to route the IP to. IP will be parked if this value is an empty string\n"}},"type":"object","required":["serviceName"]},"ovh:Ip/getServiceRoutedTo:getServiceRoutedTo":{"properties":{"serviceName":{"type":"string","description":"The service name\n"}},"type":"object","required":["serviceName"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:IpLoadBalancing/HttpFarmProbe:HttpFarmProbe":{"properties":{"forceSsl":{"type":"boolean","description":"Force use of SSL (TLS)\n"},"interval":{"type":"integer","description":"probe interval, Value between 30 and 3600 seconds, default 30\n"},"match":{"type":"string","description":"What to match `pattern` against (`contains`, `default`, `internal`, `matches`, `status`)\n"},"method":{"type":"string","description":"HTTP probe method (`GET`, `HEAD`, `OPTIONS`, `internal`)\n"},"negate":{"type":"boolean","description":"Negate probe result\n"},"pattern":{"type":"string","description":"Pattern to match against `match`\n"},"port":{"type":"integer","description":"Port for backends to receive traffic on.\n"},"type":{"type":"string","description":"Valid values : `http`, `internal`, `mysql`, `oco`, `pgsql`, `smtp`, `tcp`\n"},"url":{"type":"string","description":"URL for HTTP probe type.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["match","method","pattern","port","type","url"]}}},"ovh:IpLoadBalancing/HttpRouteAction:HttpRouteAction":{"properties":{"status":{"type":"integer","description":"HTTP status code for \"redirect\" and \"reject\" actions\n"},"target":{"type":"string","description":"Farm ID for \"farm\" action type or URL template for \"redirect\" action. You may use ${uri}, ${protocol}, ${host}, ${port} and ${path} variables in redirect target\n"},"type":{"type":"string","description":"Action to trigger if all the rules of this route matches\n"}},"type":"object","required":["type"]},"ovh:IpLoadBalancing/HttpRouteRule:HttpRouteRule":{"properties":{"field":{"type":"string","description":"Name of the field to match like \"protocol\" or \"host\" \"/ipLoadbalancing/{serviceName}/route/availableRules\" for a list of available rules\n"},"match":{"type":"string","description":"Matching operator. Not all operators are available for all fields. See \"availableRules\"\n"},"negate":{"type":"boolean","description":"Invert the matching operator effect\n"},"pattern":{"type":"string","description":"Value to match against this match. Interpretation if this field depends on the match and field\n"},"ruleId":{"type":"integer","description":"Id of your rule\n"},"subField":{"type":"string","description":"Name of sub-field, if applicable. This may be a Cookie or Header name for instance\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["field","match","negate","pattern","ruleId","subField"]}}},"ovh:IpLoadBalancing/LoadBalancerOrder:LoadBalancerOrder":{"properties":{"date":{"type":"string","description":"date\n"},"details":{"type":"array","items":{"$ref":"#/types/ovh:IpLoadBalancing/LoadBalancerOrderDetail:LoadBalancerOrderDetail"},"description":"Information about a Bill entry\n"},"expirationDate":{"type":"string","description":"expiration date\n"},"orderId":{"type":"integer","description":"order id\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["date","details","expirationDate","orderId"]}}},"ovh:IpLoadBalancing/LoadBalancerOrderDetail:LoadBalancerOrderDetail":{"properties":{"description":{"type":"string","description":"description\n"},"domain":{"type":"string","description":"expiration date\n"},"orderDetailId":{"type":"integer","description":"order detail id\n"},"quantity":{"type":"string","description":"quantity\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","domain","orderDetailId","quantity"]}}},"ovh:IpLoadBalancing/LoadBalancerOrderableZone:LoadBalancerOrderableZone":{"properties":{"name":{"type":"string","description":"The zone three letter code\n"},"planCode":{"type":"string","description":"The billing planCode for this zone\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name","planCode"]}}},"ovh:IpLoadBalancing/LoadBalancerPlan:LoadBalancerPlan":{"properties":{"catalogName":{"type":"string","description":"Catalog name\n"},"configurations":{"type":"array","items":{"$ref":"#/types/ovh:IpLoadBalancing/LoadBalancerPlanConfiguration:LoadBalancerPlanConfiguration"},"description":"Representation of a configuration item for personalizing product\n"},"duration":{"type":"string","description":"duration\n"},"planCode":{"type":"string","description":"Plan code\n"},"pricingMode":{"type":"string","description":"Pricing model identifier\n"}},"type":"object","required":["duration","planCode","pricingMode"]},"ovh:IpLoadBalancing/LoadBalancerPlanConfiguration:LoadBalancerPlanConfiguration":{"properties":{"label":{"type":"string","description":"Identifier of the resource\n"},"value":{"type":"string","description":"Path to the resource in API.OVH.COM\n"}},"type":"object","required":["label","value"]},"ovh:IpLoadBalancing/LoadBalancerPlanOption:LoadBalancerPlanOption":{"properties":{"catalogName":{"type":"string","description":"Catalog name\n"},"configurations":{"type":"array","items":{"$ref":"#/types/ovh:IpLoadBalancing/LoadBalancerPlanOptionConfiguration:LoadBalancerPlanOptionConfiguration"},"description":"Representation of a configuration item for personalizing product\n"},"duration":{"type":"string","description":"duration\n"},"planCode":{"type":"string","description":"Plan code\n"},"pricingMode":{"type":"string","description":"Pricing model identifier\n"}},"type":"object","required":["duration","planCode","pricingMode"]},"ovh:IpLoadBalancing/LoadBalancerPlanOptionConfiguration:LoadBalancerPlanOptionConfiguration":{"properties":{"label":{"type":"string","description":"Identifier of the resource\n"},"value":{"type":"string","description":"Path to the resource in API.OVH.COM\n"}},"type":"object","required":["label","value"]},"ovh:IpLoadBalancing/TcpFarmProbe:TcpFarmProbe":{"properties":{"forceSsl":{"type":"boolean","description":"Force use of SSL (TLS)\n"},"interval":{"type":"integer","description":"probe interval, Value between 30 and 3600 seconds, default 30\n"},"match":{"type":"string","description":"What to match `pattern` against (`contains`, `default`, `internal`, `matches`, `status`)\n"},"method":{"type":"string","description":"HTTP probe method (`GET`, `HEAD`, `OPTIONS`, `internal`)\n"},"negate":{"type":"boolean","description":"Negate probe result\n"},"pattern":{"type":"string","description":"Pattern to match against `match`\n"},"port":{"type":"integer","description":"Port for backends to receive traffic on.\n"},"type":{"type":"string","description":"Valid values : `http`, `internal`, `mysql`, `oco`, `pgsql`, `smtp`, `tcp`\n"},"url":{"type":"string","description":"URL for HTTP probe type.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["match","type"]}}},"ovh:IpLoadBalancing/TcpRouteAction:TcpRouteAction":{"properties":{"target":{"type":"string","description":"Farm ID for \"farm\" action type, empty for others.\n"},"type":{"type":"string","description":"Action to trigger if all the rules of this route matches\n"}},"type":"object","required":["type"]},"ovh:IpLoadBalancing/TcpRouteRule:TcpRouteRule":{"properties":{"field":{"type":"string","description":"Name of the field to match like \"protocol\" or \"host\" \"/ipLoadbalancing/{serviceName}/route/availableRules\" for a list of available rules\n"},"match":{"type":"string","description":"Matching operator. Not all operators are available for all fields. See \"availableRules\"\n"},"negate":{"type":"boolean","description":"Invert the matching operator effect\n"},"pattern":{"type":"string","description":"Value to match against this match. Interpretation if this field depends on the match and field\n"},"ruleId":{"type":"integer","description":"Id of your rule\n"},"subField":{"type":"string","description":"Name of sub-field, if applicable. This may be a Cookie or Header name for instance\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["field","match","negate","pattern","ruleId","subField"]}}},"ovh:IpLoadBalancing/getIpLoadBalancingOrderableZone:getIpLoadBalancingOrderableZone":{"properties":{"name":{"type":"string","description":"The zone three letter code\n"},"planCode":{"type":"string","description":"The billing planCode for this zone\n"}},"type":"object","required":["name","planCode"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Me/getMeCurrency:getMeCurrency":{"properties":{"code":{"type":"string","description":"Currency code used by this account (e.g EUR, USD, ...)\n"},"symbol":{"type":"string","description":"Currency symbol used by this account (e.g €, $, ...)\n"}},"type":"object","required":["code","symbol"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:OVHcloud/ConnectIam:ConnectIam":{"properties":{"displayName":{"type":"string","description":"Resource display name\n"},"id":{"type":"string","description":"Unique identifier of the resource in the IAM\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource tags. Tags that were internally computed are prefixed with `ovh:`\n"},"urn":{"type":"string","description":"URN of the private database, used when writing IAM policies\n"}},"type":"object","required":["displayName","id","tags","urn"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:OVHcloud/ConnectsOcc:ConnectsOcc":{"properties":{"bandwidth":{"type":"string","description":"Service bandwidth\n"},"description":{"type":"string","description":"Service description\n"},"iam":{"$ref":"#/types/ovh:OVHcloud/ConnectsOccIam:ConnectsOccIam","description":"IAM resource information\n"},"interfaceLists":{"type":"array","items":{"type":"number"},"description":"List of interfaces linked to a service\n"},"pop":{"type":"string","description":"Pop reference where the service is delivered\n"},"portQuantity":{"type":"string","description":"Port quantity\n"},"product":{"type":"string","description":"Product name of the service\n"},"providerName":{"type":"string","description":"Service provider\n"},"serviceName":{"type":"string","description":"Service name\n"},"status":{"type":"string","description":"Service status\n"},"uuid":{"type":"string","description":"uuid of the Ovhcloud Connect service\n"},"vrack":{"type":"string","description":"vrack linked to the service\n"}},"type":"object","required":["bandwidth","description","iam","interfaceLists","pop","portQuantity","product","providerName","serviceName","status","uuid","vrack"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:OVHcloud/ConnectsOccIam:ConnectsOccIam":{"properties":{"displayName":{"type":"string","description":"Resource display name\n"},"id":{"type":"string","description":"Unique identifier of the resource in the IAM\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource tags. Tags that were internally computed are prefixed with `ovh:`\n"},"urn":{"type":"string","description":"URN of the private database, used when writing IAM policies\n"}},"type":"object","required":["displayName","id","tags","urn"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Okms/OkmsIam:OkmsIam":{"properties":{"displayName":{"type":"string","description":"(String) Resource display name\n"},"id":{"type":"string","description":"(String) Unique identifier of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"(Map of String) Resource tags. Tags that were internally computed are prefixed with ovh:\n"},"urn":{"type":"string","description":"(String) Unique resource name used in policies\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["displayName","id","tags","urn"]}}},"ovh:Okms/SecretIam:SecretIam":{"properties":{"displayName":{"type":"string","description":"Resource display name\n"},"id":{"type":"string","description":"Unique identifier of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource tags. Tags that were internally computed are prefixed with ovh:\n"},"urn":{"type":"string","description":"Unique resource name used in policies\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["displayName","id","tags","urn"]}}},"ovh:Okms/SecretMetadata:SecretMetadata":{"properties":{"casRequired":{"type":"boolean","description":"The “Cas” parameter will be required for each write request if set to true. When the “cas” (Check and set) is specified, the current version of the secret is verified before updating it.\n"},"createdAt":{"type":"string","description":"Time of creation of the secret\n"},"currentVersion":{"type":"number","description":"The secret version\n"},"customMetadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Custom metadata\n"},"deactivateVersionAfter":{"type":"string","description":"Time duration before a version is deactivated\n"},"maxVersions":{"type":"number","description":"The number of versions to keep (10 default)\n"},"oldestVersion":{"type":"number","description":"The secret oldest version\n"},"updatedAt":{"type":"string","description":"Time of the last update of the secret\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["casRequired","createdAt","currentVersion","customMetadata","deactivateVersionAfter","maxVersions","oldestVersion","updatedAt"]}}},"ovh:Okms/SecretVersion:SecretVersion":{"properties":{"createdAt":{"type":"string","description":"Time of creation of the secret version\n"},"data":{"type":"string","secret":true},"deactivatedAt":{"type":"string","description":"Time of deactivation of the secret version\n"},"id":{"type":"number","description":"Secret version\n"},"state":{"type":"string","description":"State of the secret version\n"}},"type":"object","required":["data"],"language":{"nodejs":{"requiredOutputs":["createdAt","data","deactivatedAt","id","state"]}}},"ovh:Okms/ServiceKeyJWKIam:ServiceKeyJWKIam":{"properties":{"displayName":{"type":"string","description":"Resource display name\n"},"id":{"type":"string","description":"Unique identifier of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource tags. Tags that were internally computed are prefixed with ovh:\n"},"urn":{"type":"string","description":"Unique resource name used in policies\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["displayName","id","tags","urn"]}}},"ovh:Okms/ServiceKeyJWKKey:ServiceKeyJWKKey":{"properties":{"alg":{"type":"string","description":"The algorithm intended to be used with the key\n"},"crv":{"type":"string","description":"The cryptographic curve used with the key\n"},"d":{"type":"string","description":"The RSA or EC private exponent\n","secret":true},"dp":{"type":"string","description":"The RSA private key's first factor CRT exponent\n","secret":true},"dq":{"type":"string","description":"The RSA private key's second factor CRT exponent\n","secret":true},"e":{"type":"string","description":"The exponent value for the RSA public key\n"},"k":{"type":"string","description":"The value of the symmetric (or other single-valued) key\n","secret":true},"keyOps":{"type":"array","items":{"type":"string"},"description":"The operation for which the key is intended to be used\n"},"kid":{"type":"string","description":"key ID parameter used to match a specific key\n"},"kty":{"type":"string","description":"Key type parameter identifies the cryptographic algorithm family used with the key, such as RSA or EC\n"},"n":{"type":"string","description":"The modulus value for the RSA public key\n"},"p":{"type":"string","description":"The first prime factor of the RSA private key\n","secret":true},"q":{"type":"string","description":"The second prime factor of the RSA private key\n","secret":true},"qi":{"type":"string","description":"The CRT coefficient of the second factor of the RSA private key\n","secret":true},"use":{"type":"string","description":"The intended use of the public key\n"},"x":{"type":"string","description":"The x coordinate for the Elliptic Curve point\n"},"y":{"type":"string","description":"The y coordinate for the Elliptic Curve point\n"}},"type":"object","required":["keyOps","kty"],"language":{"nodejs":{"requiredOutputs":["keyOps","kid","kty"]}}},"ovh:Okms/getOkmsResourceIam:getOkmsResourceIam":{"properties":{"displayName":{"type":"string","description":"(String) Resource display name\n"},"id":{"type":"string","description":"Should be set to the ID of your KMS\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"(Map of String) Resource tags. Tags that were internally computed are prefixed with ovh:\n"},"urn":{"type":"string","description":"(String) Unique resource name used in policies\n"}},"type":"object","required":["displayName","id","tags","urn"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Okms/getOkmsServiceKeyIam:getOkmsServiceKeyIam":{"properties":{"displayName":{"type":"string","description":"Resource display name\n"},"id":{"type":"string","description":"ID of the service key\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource tags. Tags that were internally computed are prefixed with ovh:\n"},"urn":{"type":"string","description":"Unique resource name used in policies\n"}},"type":"object","required":["displayName","id","tags","urn"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Okms/getOkmsServiceKeyJwkIam:getOkmsServiceKeyJwkIam":{"properties":{"displayName":{"type":"string","description":"Resource display name\n"},"id":{"type":"string","description":"ID of the service key\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource tags. Tags that were internally computed are prefixed with ovh:\n"},"urn":{"type":"string","description":"Unique resource name used in policies\n"}},"type":"object","required":["displayName","id","tags","urn"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Okms/getOkmsServiceKeyJwkKey:getOkmsServiceKeyJwkKey":{"properties":{"alg":{"type":"string","description":"The algorithm intended to be used with the key\n"},"crv":{"type":"string","description":"The cryptographic curve used with the key\n"},"e":{"type":"string","description":"The exponent value for the RSA public key\n"},"keyOps":{"type":"array","items":{"type":"string"},"description":"The operation for which the key is intended to be used\n"},"kid":{"type":"string","description":"key ID parameter used to match a specific key\n"},"kty":{"type":"string","description":"Key type parameter identifies the cryptographic algorithm family used with the key, such as RSA or EC\n"},"n":{"type":"string","description":"The modulus value for the RSA public key\n"},"use":{"type":"string","description":"The intended use of the public key\n"},"x":{"type":"string","description":"The x coordinate for the Elliptic Curve point\n"},"y":{"type":"string","description":"The y coordinate for the Elliptic Curve point\n"}},"type":"object","required":["alg","crv","e","keyOps","kid","kty","n","use","x","y"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Okms/getOkmsServiceKeyPemIam:getOkmsServiceKeyPemIam":{"properties":{"displayName":{"type":"string","description":"Resource display name\n"},"id":{"type":"string","description":"Unique identifier of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource tags. Tags that were internally computed are prefixed with ovh:\n"},"urn":{"type":"string","description":"Unique resource name used in policies\n"}},"type":"object","required":["displayName","id","tags","urn"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Okms/getOkmsServiceKeyPemKeysPem:getOkmsServiceKeyPemKeysPem":{"properties":{"pem":{"type":"string","description":"The key in base64 encoded PEM format\n"}},"type":"object","required":["pem"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Order/getCartProductOptionsPlanPrice:getCartProductOptionsPlanPrice":{"properties":{"capacities":{"type":"array","items":{"$ref":"pulumi.json#/Any"},"description":"Capacities of the pricing (type of pricing)\n"},"description":{"type":"string","description":"Description of the pricing\n"},"duration":{"type":"string","description":"Duration for ordering the product\n"},"interval":{"type":"integer","description":"Interval of renewal\n"},"maximumQuantity":{"type":"integer","description":"Maximum quantity that can be ordered\n"},"maximumRepeat":{"type":"integer","description":"Maximum repeat for renewal\n"},"minimumQuantity":{"type":"integer","description":"Minimum quantity that can be ordered\n"},"minimumRepeat":{"type":"integer","description":"Minimum repeat for renewal\n"},"priceInUcents":{"type":"integer","description":"Price of the product in micro-centims\n"},"prices":{"type":"array","items":{"$ref":"#/types/ovh:Order/getCartProductOptionsPlanPricePrice:getCartProductOptionsPlanPricePrice"},"description":"Price of the product (Price with its currency and textual representation)\n"},"pricingMode":{"type":"string","description":"Pricing model identifier\n"},"pricingType":{"type":"string","description":"Pricing type\n"}},"type":"object","required":["capacities","description","duration","interval","maximumQuantity","maximumRepeat","minimumQuantity","minimumRepeat","prices","priceInUcents","pricingMode","pricingType"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Order/getCartProductOptionsPlanPricePrice:getCartProductOptionsPlanPricePrice":{"properties":{"currencyCode":{"type":"string","description":"Currency code\n"},"text":{"type":"string","description":"Textual representation\n"},"value":{"type":"number","description":"The effective price\n"}},"type":"object","required":["currencyCode","text","value"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Order/getCartProductOptionsPlanSelectedPrice:getCartProductOptionsPlanSelectedPrice":{"properties":{"capacities":{"type":"array","items":{"$ref":"pulumi.json#/Any"},"description":"Capacities of the pricing (type of pricing)\n"},"description":{"type":"string","description":"Description of the pricing\n"},"duration":{"type":"string","description":"Duration for ordering the product\n"},"interval":{"type":"integer","description":"Interval of renewal\n"},"maximumQuantity":{"type":"integer","description":"Maximum quantity that can be ordered\n"},"maximumRepeat":{"type":"integer","description":"Maximum repeat for renewal\n"},"minimumQuantity":{"type":"integer","description":"Minimum quantity that can be ordered\n"},"minimumRepeat":{"type":"integer","description":"Minimum repeat for renewal\n"},"priceInUcents":{"type":"integer","description":"Price of the product in micro-centims\n"},"prices":{"type":"array","items":{"$ref":"#/types/ovh:Order/getCartProductOptionsPlanSelectedPricePrice:getCartProductOptionsPlanSelectedPricePrice"},"description":"Price of the product (Price with its currency and textual representation)\n"},"pricingMode":{"type":"string","description":"Pricing model identifier\n"},"pricingType":{"type":"string","description":"Pricing type\n"}},"type":"object","required":["capacities","description","duration","interval","maximumQuantity","maximumRepeat","minimumQuantity","minimumRepeat","prices","priceInUcents","pricingMode","pricingType"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Order/getCartProductOptionsPlanSelectedPricePrice:getCartProductOptionsPlanSelectedPricePrice":{"properties":{"currencyCode":{"type":"string","description":"Currency code\n"},"text":{"type":"string","description":"Textual representation\n"},"value":{"type":"number","description":"The effective price\n"}},"type":"object","required":["currencyCode","text","value"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Order/getCartProductOptionsResult:getCartProductOptionsResult":{"properties":{"exclusive":{"type":"boolean","description":"Define if options of this family are exclusive with each other\n"},"family":{"type":"string","description":"Option family\n"},"mandatory":{"type":"boolean","description":"Define if an option of this family is mandatory\n"},"planCode":{"type":"string","description":"Product offer identifier\n"},"prices":{"type":"array","items":{"$ref":"#/types/ovh:Order/getCartProductOptionsResultPrice:getCartProductOptionsResultPrice"},"description":"Prices of the product offer\n"},"productName":{"type":"string","description":"Name of the product\n"},"productType":{"type":"string","description":"Product type\n"}},"type":"object","required":["exclusive","family","mandatory","planCode","prices","productName","productType"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Order/getCartProductOptionsResultPrice:getCartProductOptionsResultPrice":{"properties":{"capacities":{"type":"array","items":{"$ref":"pulumi.json#/Any"},"description":"Capacities of the pricing (type of pricing)\n"},"description":{"type":"string","description":"Description of the pricing\n"},"duration":{"type":"string","description":"Duration for ordering the product\n"},"interval":{"type":"integer","description":"Interval of renewal\n"},"maximumQuantity":{"type":"integer","description":"Maximum quantity that can be ordered\n"},"maximumRepeat":{"type":"integer","description":"Maximum repeat for renewal\n"},"minimumQuantity":{"type":"integer","description":"Minimum quantity that can be ordered\n"},"minimumRepeat":{"type":"integer","description":"Minimum repeat for renewal\n"},"priceInUcents":{"type":"integer","description":"Price of the product in micro-centims\n"},"prices":{"type":"array","items":{"$ref":"#/types/ovh:Order/getCartProductOptionsResultPricePrice:getCartProductOptionsResultPricePrice"},"description":"Price of the product (Price with its currency and textual representation)\n"},"pricingMode":{"type":"string","description":"Pricing model identifier\n"},"pricingType":{"type":"string","description":"Pricing type\n"}},"type":"object","required":["capacities","description","duration","interval","maximumQuantity","maximumRepeat","minimumQuantity","minimumRepeat","prices","priceInUcents","pricingMode","pricingType"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Order/getCartProductOptionsResultPricePrice:getCartProductOptionsResultPricePrice":{"properties":{"currencyCode":{"type":"string","description":"Currency code\n"},"text":{"type":"string","description":"Textual representation\n"},"value":{"type":"number","description":"The effective price\n"}},"type":"object","required":["currencyCode","text","value"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Order/getCartProductPlanPrice:getCartProductPlanPrice":{"properties":{"capacities":{"type":"array","items":{"$ref":"pulumi.json#/Any"},"description":"Capacities of the pricing (type of pricing)\n"},"description":{"type":"string","description":"Description of the pricing\n"},"duration":{"type":"string","description":"Duration for ordering the product\n"},"interval":{"type":"integer","description":"Interval of renewal\n"},"maximumQuantity":{"type":"integer","description":"Maximum quantity that can be ordered\n"},"maximumRepeat":{"type":"integer","description":"Maximum repeat for renewal\n"},"minimumQuantity":{"type":"integer","description":"Minimum quantity that can be ordered\n"},"minimumRepeat":{"type":"integer","description":"Minimum repeat for renewal\n"},"priceInUcents":{"type":"integer","description":"Price of the product in micro-centims\n"},"prices":{"type":"array","items":{"$ref":"#/types/ovh:Order/getCartProductPlanPricePrice:getCartProductPlanPricePrice"},"description":"Price of the product (Price with its currency and textual representation)\n"},"pricingMode":{"type":"string","description":"Pricing model identifier\n"},"pricingType":{"type":"string","description":"Pricing type\n"}},"type":"object","required":["capacities","description","duration","interval","maximumQuantity","maximumRepeat","minimumQuantity","minimumRepeat","prices","priceInUcents","pricingMode","pricingType"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Order/getCartProductPlanPricePrice:getCartProductPlanPricePrice":{"properties":{"currencyCode":{"type":"string","description":"Currency code\n"},"text":{"type":"string","description":"Textual representation\n"},"value":{"type":"number","description":"The effective price\n"}},"type":"object","required":["currencyCode","text","value"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Order/getCartProductPlanSelectedPrice:getCartProductPlanSelectedPrice":{"properties":{"capacities":{"type":"array","items":{"$ref":"pulumi.json#/Any"},"description":"Capacities of the pricing (type of pricing)\n"},"description":{"type":"string","description":"Description of the pricing\n"},"duration":{"type":"string","description":"Duration for ordering the product\n"},"interval":{"type":"integer","description":"Interval of renewal\n"},"maximumQuantity":{"type":"integer","description":"Maximum quantity that can be ordered\n"},"maximumRepeat":{"type":"integer","description":"Maximum repeat for renewal\n"},"minimumQuantity":{"type":"integer","description":"Minimum quantity that can be ordered\n"},"minimumRepeat":{"type":"integer","description":"Minimum repeat for renewal\n"},"priceInUcents":{"type":"integer","description":"Price of the product in micro-centims\n"},"prices":{"type":"array","items":{"$ref":"#/types/ovh:Order/getCartProductPlanSelectedPricePrice:getCartProductPlanSelectedPricePrice"},"description":"Price of the product (Price with its currency and textual representation)\n"},"pricingMode":{"type":"string","description":"Pricing model identifier\n"},"pricingType":{"type":"string","description":"Pricing type\n"}},"type":"object","required":["capacities","description","duration","interval","maximumQuantity","maximumRepeat","minimumQuantity","minimumRepeat","prices","priceInUcents","pricingMode","pricingType"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Order/getCartProductPlanSelectedPricePrice:getCartProductPlanSelectedPricePrice":{"properties":{"currencyCode":{"type":"string","description":"Currency code\n"},"text":{"type":"string","description":"Textual representation\n"},"value":{"type":"number","description":"The effective price\n"}},"type":"object","required":["currencyCode","text","value"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Order/getCartProductResult:getCartProductResult":{"properties":{"planCode":{"type":"string","description":"Product offer identifier\n"},"prices":{"type":"array","items":{"$ref":"#/types/ovh:Order/getCartProductResultPrice:getCartProductResultPrice"},"description":"Prices of the product offer\n"},"productName":{"type":"string","description":"Name of the product\n"},"productType":{"type":"string","description":"Product type\n"}},"type":"object","required":["planCode","prices","productName","productType"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Order/getCartProductResultPrice:getCartProductResultPrice":{"properties":{"capacities":{"type":"array","items":{"$ref":"pulumi.json#/Any"},"description":"Capacities of the pricing (type of pricing)\n"},"description":{"type":"string","description":"Description of the pricing\n"},"duration":{"type":"string","description":"Duration for ordering the product\n"},"interval":{"type":"integer","description":"Interval of renewal\n"},"maximumQuantity":{"type":"integer","description":"Maximum quantity that can be ordered\n"},"maximumRepeat":{"type":"integer","description":"Maximum repeat for renewal\n"},"minimumQuantity":{"type":"integer","description":"Minimum quantity that can be ordered\n"},"minimumRepeat":{"type":"integer","description":"Minimum repeat for renewal\n"},"priceInUcents":{"type":"integer","description":"Price of the product in micro-centims\n"},"prices":{"type":"array","items":{"$ref":"#/types/ovh:Order/getCartProductResultPricePrice:getCartProductResultPricePrice"},"description":"Price of the product (Price with its currency and textual representation)\n"},"pricingMode":{"type":"string","description":"Pricing model identifier\n"},"pricingType":{"type":"string","description":"Pricing type\n"}},"type":"object","required":["capacities","description","duration","interval","maximumQuantity","maximumRepeat","minimumQuantity","minimumRepeat","prices","priceInUcents","pricingMode","pricingType"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Order/getCartProductResultPricePrice:getCartProductResultPricePrice":{"properties":{"currencyCode":{"type":"string","description":"Currency code\n"},"text":{"type":"string","description":"Textual representation\n"},"value":{"type":"number","description":"The effective price\n"}},"type":"object","required":["currencyCode","text","value"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:VMware/getCloudDirectorBackupCurrentState:getCloudDirectorBackupCurrentState":{"properties":{"azName":{"type":"string","description":"Availability zone of VMware Cloud Director organization backup\n"},"offers":{"type":"array","items":{"$ref":"#/types/ovh:VMware/getCloudDirectorBackupCurrentStateOffer:getCloudDirectorBackupCurrentStateOffer"},"description":"List of your VMware Cloud Director organization backup offers\n"}},"type":"object","required":["azName","offers"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:VMware/getCloudDirectorBackupCurrentStateOffer:getCloudDirectorBackupCurrentStateOffer":{"properties":{"name":{"type":"string","description":"Backup service offer type (BRONZE|SILVER|GOLD)\n"},"protectionPrimaryRegion":{"type":"string","description":"Backup repository primary region\n"},"protectionReplicatedRegion":{"type":"string","description":"Backup repository replicated region\n"},"quotaInTb":{"type":"number","description":"Backup repository quota in TB\n"},"status":{"type":"string","description":"Backup offer status\n"},"usedSpaceInGb":{"type":"number","description":"Backup repository used space in GB\n"}},"type":"object","required":["name","protectionPrimaryRegion","protectionReplicatedRegion","quotaInTb","status","usedSpaceInGb"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:VMware/getCloudDirectorBackupCurrentTask:getCloudDirectorBackupCurrentTask":{"properties":{"id":{"type":"string","description":"Identifier of the current task\n"},"link":{"type":"string","description":"Link to the task details\n"},"status":{"type":"string","description":"Current global status of the current task\n"},"type":{"type":"string","description":"Type of the current task\n"}},"type":"object","required":["id","link","status","type"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:VMware/getCloudDirectorBackupIam:getCloudDirectorBackupIam":{"properties":{"displayName":{"type":"string","description":"Resource display name\n"},"id":{"type":"string","description":"Unique identifier of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource tags. Tags that were internally computed are prefixed with ovh:\n"},"urn":{"type":"string","description":"Unique resource name used in policies\n"}},"type":"object","required":["displayName","id","tags","urn"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:VMware/getCloudDirectorBackupTargetSpec:getCloudDirectorBackupTargetSpec":{"properties":{"offers":{"type":"array","items":{"$ref":"#/types/ovh:VMware/getCloudDirectorBackupTargetSpecOffer:getCloudDirectorBackupTargetSpecOffer"},"description":"List of your VMware Cloud Director backup offers\n"}},"type":"object","required":["offers"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:VMware/getCloudDirectorBackupTargetSpecOffer:getCloudDirectorBackupTargetSpecOffer":{"properties":{"name":{"type":"string","description":"Backup service offer type (BRONZE|SILVER|GOLD)\n"},"quotaInTb":{"type":"number","description":"Backup repository quota in TB\n"}},"type":"object","required":["name","quotaInTb"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:VMware/getCloudDirectorOrganizationCurrentState:getCloudDirectorOrganizationCurrentState":{"properties":{"apiUrl":{"type":"string","description":"API URL to interact with your VMware Cloud Director organization at OVHcloud\n"},"billingType":{"type":"string","description":"Billing type of your VMware Cloud Director project\n"},"description":{"type":"string","description":"Description of your VMware Cloud Director organization on OVHcloud\n"},"fullName":{"type":"string","description":"Human readable full name of your VMware Cloud Director organization\n"},"name":{"type":"string","description":"Name of your VMware Cloud Director organization\n"},"region":{"type":"string","description":"Datacenter where your VMware Cloud Director organization is physically located\n"},"spla":{"type":"boolean","description":"SPLA licensing state\n"},"webInterfaceUrl":{"type":"string","description":"URL to administrate your VMware Cloud Director organization at OVHcloud\n"}},"type":"object","required":["apiUrl","billingType","description","fullName","name","region","spla","webInterfaceUrl"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:VMware/getCloudDirectorOrganizationCurrentTask:getCloudDirectorOrganizationCurrentTask":{"properties":{"id":{"type":"string","description":"Identifier of the current task\n"},"link":{"type":"string","description":"Link to the task details\n"},"status":{"type":"string","description":"Current global status of the current task\n"},"type":{"type":"string","description":"Type of the current task\n"}},"type":"object","required":["id","link","status","type"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:VMware/getCloudDirectorOrganizationIam:getCloudDirectorOrganizationIam":{"properties":{"displayName":{"type":"string","description":"Resource display name\n"},"id":{"type":"string","description":"Unique identifier of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource tags. Tags that were internally computed are prefixed with ovh:\n"},"urn":{"type":"string","description":"Unique resource name used in policies\n"}},"type":"object","required":["displayName","id","tags","urn"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:VMware/getCloudDirectorOrganizationTargetSpec:getCloudDirectorOrganizationTargetSpec":{"properties":{"description":{"type":"string","description":"Description of your VMware Cloud Director organization at OVHcloud\n"},"fullName":{"type":"string","description":"Human readable full name of your VMware Cloud Director organization\n"}},"type":"object","required":["description","fullName"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:Vps/VpsIam:VpsIam":{"properties":{"displayName":{"type":"string","description":"Custom display name\n"},"id":{"type":"string","description":"Unique identifier of the resource in the IAM\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource tags. Tags that were internally computed are prefixed with `ovh:`\n"},"urn":{"type":"string","description":"URN of the private database, used when writing IAM policies\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["displayName","id","tags","urn"]}}},"ovh:Vps/VpsModel:VpsModel":{"properties":{"availableOptions":{"type":"array","items":{"type":"string"},"description":"All options the VPS can have (additionalDisk┃automatedBackup┃cpanel┃ftpbackup┃plesk┃snapshot┃veeam┃windows)\n"},"datacenters":{"type":"array","items":{"type":"string"},"description":"Datacenters where this model is available\n"},"disk":{"type":"number","description":"Disk capacity of this VPS\n"},"maximumAdditionnalIp":{"type":"number","description":"Maximum number of additional IPs\n"},"memory":{"type":"number","description":"RAM of the VPS\n"},"name":{"type":"string","description":"Name of the VPS\n"},"offer":{"type":"string","description":"Description of this VPS offer\n"},"vcore":{"type":"number","description":"Number of vcores\n"},"version":{"type":"string","description":"All versions that VPS can have (2013v1┃2014v1┃2015v1┃2017v1┃2017v2┃2017v3┃2018v1┃2018v2┃2019v1)\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["availableOptions","datacenters","disk","maximumAdditionnalIp","memory","name","offer","vcore","version"]}}},"ovh:Vps/VpsOrder:VpsOrder":{"properties":{"date":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/types/ovh:Vps/VpsOrderDetail:VpsOrderDetail"}},"expirationDate":{"type":"string"},"orderId":{"type":"number"}},"type":"object","language":{"nodejs":{"requiredOutputs":["date","details","expirationDate","orderId"]}}},"ovh:Vps/VpsOrderDetail:VpsOrderDetail":{"properties":{"description":{"type":"string"},"detailType":{"type":"string","description":"Product type of item in order\n"},"domain":{"type":"string"},"orderDetailId":{"type":"number"},"quantity":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","detailType","domain","orderDetailId","quantity"]}}},"ovh:Vps/VpsPlan:VpsPlan":{"properties":{"configurations":{"type":"array","items":{"$ref":"#/types/ovh:Vps/VpsPlanConfiguration:VpsPlanConfiguration"},"description":"Representation of a configuration item for personalizing product\n"},"duration":{"type":"string","description":"duration\n"},"itemId":{"type":"number","description":"Cart item to be linked\n"},"planCode":{"type":"string","description":"Plan code\n"},"pricingMode":{"type":"string","description":"Pricing model identifier\n"},"quantity":{"type":"number","description":"Quantity of product desired\n"}},"type":"object","required":["duration","planCode","pricingMode"],"language":{"nodejs":{"requiredOutputs":["configurations","duration","planCode","pricingMode"]}}},"ovh:Vps/VpsPlanConfiguration:VpsPlanConfiguration":{"properties":{"label":{"type":"string","description":"Identifier of the resource\n"},"value":{"type":"string","description":"Path to the resource in api.ovh.com\n"}},"type":"object","required":["label","value"]},"ovh:Vps/VpsPlanOption:VpsPlanOption":{"properties":{"configurations":{"type":"array","items":{"$ref":"#/types/ovh:Vps/VpsPlanOptionConfiguration:VpsPlanOptionConfiguration"},"description":"Representation of a configuration item for personalizing product. Available values can be retrieved on API using [catalog endpoint](https://eu.api.ovh.com/console/?section=%2Forder\u0026branch=v1#get-/order/catalog/public/vps).\n"},"duration":{"type":"string","description":"duration\n"},"planCode":{"type":"string","description":"Plan code\n"},"pricingMode":{"type":"string","description":"Pricing model identifier\n"},"quantity":{"type":"number","description":"Quantity of product desired\n"}},"type":"object","required":["duration","planCode","pricingMode","quantity"]},"ovh:Vps/VpsPlanOptionConfiguration:VpsPlanOptionConfiguration":{"properties":{"label":{"type":"string","description":"Identifier of the resource\n"},"value":{"type":"string","description":"Path to the resource in api.ovh.com\n"}},"type":"object","required":["label","value"]},"ovh:Vrack/IpV6BridgedSubrange:IpV6BridgedSubrange":{"properties":{"gateway":{"type":"string","description":"Your gateway\n"},"slaac":{"type":"string","description":"Slaac status \u003cenabled|disabled\u003e\n"},"subrange":{"type":"string","description":"IPv6 CIDR notation (e.g., 2001:41d0::/128)\n"}},"type":"object","required":["slaac"],"language":{"nodejs":{"requiredOutputs":["gateway","slaac","subrange"]}}},"ovh:Vrack/VrackOrder:VrackOrder":{"properties":{"date":{"type":"string","description":"date\n"},"details":{"type":"array","items":{"$ref":"#/types/ovh:Vrack/VrackOrderDetail:VrackOrderDetail"},"description":"Information about a Bill entry\n"},"expirationDate":{"type":"string","description":"expiration date\n"},"orderId":{"type":"integer","description":"order id\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["date","details","expirationDate","orderId"]}}},"ovh:Vrack/VrackOrderDetail:VrackOrderDetail":{"properties":{"description":{"type":"string","description":"yourvrackdescription\n"},"domain":{"type":"string","description":"expiration date\n"},"orderDetailId":{"type":"integer","description":"order detail id\n"},"quantity":{"type":"string","description":"quantity\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","domain","orderDetailId","quantity"]}}},"ovh:Vrack/VrackPlan:VrackPlan":{"properties":{"catalogName":{"type":"string","description":"Catalog name\n"},"configurations":{"type":"array","items":{"$ref":"#/types/ovh:Vrack/VrackPlanConfiguration:VrackPlanConfiguration"},"description":"Representation of a configuration item for personalizing product\n"},"duration":{"type":"string","description":"duration\n"},"planCode":{"type":"string","description":"Plan code\n"},"pricingMode":{"type":"string","description":"Pricing model identifier\n"}},"type":"object","required":["duration","planCode","pricingMode"]},"ovh:Vrack/VrackPlanConfiguration:VrackPlanConfiguration":{"properties":{"label":{"type":"string","description":"Identifier of the resource\n"},"value":{"type":"string","description":"Path to the resource in API.OVH.COM\n"}},"type":"object","required":["label","value"]},"ovh:Vrack/VrackPlanOption:VrackPlanOption":{"properties":{"catalogName":{"type":"string","description":"Catalog name\n"},"configurations":{"type":"array","items":{"$ref":"#/types/ovh:Vrack/VrackPlanOptionConfiguration:VrackPlanOptionConfiguration"},"description":"Representation of a configuration item for personalizing product\n"},"duration":{"type":"string","description":"duration\n"},"planCode":{"type":"string","description":"Plan code\n"},"pricingMode":{"type":"string","description":"Pricing model identifier\n"}},"type":"object","required":["duration","planCode","pricingMode"]},"ovh:Vrack/VrackPlanOptionConfiguration:VrackPlanOptionConfiguration":{"properties":{"label":{"type":"string","description":"Identifier of the resource\n"},"value":{"type":"string","description":"Path to the resource in API.OVH.COM\n"}},"type":"object","required":["label","value"]},"ovh:index/CloudProjectStorageObjectBucketLifecycleConfigurationRule:CloudProjectStorageObjectBucketLifecycleConfigurationRule":{"properties":{"abortIncompleteMultipartUpload":{"$ref":"#/types/ovh:index/CloudProjectStorageObjectBucketLifecycleConfigurationRuleAbortIncompleteMultipartUpload:CloudProjectStorageObjectBucketLifecycleConfigurationRuleAbortIncompleteMultipartUpload","description":"Configuration for aborting incomplete multipart uploads.\n"},"expiration":{"$ref":"#/types/ovh:index/CloudProjectStorageObjectBucketLifecycleConfigurationRuleExpiration:CloudProjectStorageObjectBucketLifecycleConfigurationRuleExpiration","description":"Configuration for expiring current object versions.\n"},"filter":{"$ref":"#/types/ovh:index/CloudProjectStorageObjectBucketLifecycleConfigurationRuleFilter:CloudProjectStorageObjectBucketLifecycleConfigurationRuleFilter","description":"Filters that identify the objects the rule applies to. If omitted, the rule applies to all objects.\n"},"id":{"type":"string","description":"Rule ID. If omitted, generated by the server.\n"},"noncurrentVersionExpiration":{"$ref":"#/types/ovh:index/CloudProjectStorageObjectBucketLifecycleConfigurationRuleNoncurrentVersionExpiration:CloudProjectStorageObjectBucketLifecycleConfigurationRuleNoncurrentVersionExpiration","description":"Configuration for expiring noncurrent object versions (requires versioning).\n"},"noncurrentVersionTransitions":{"type":"array","items":{"$ref":"#/types/ovh:index/CloudProjectStorageObjectBucketLifecycleConfigurationRuleNoncurrentVersionTransition:CloudProjectStorageObjectBucketLifecycleConfigurationRuleNoncurrentVersionTransition"},"description":"Configuration for transitioning noncurrent object versions to a different storage class (requires versioning).\n"},"status":{"type":"string","description":"Rule status. Accepted values: `enabled`, `disabled`.\n"},"transitions":{"type":"array","items":{"$ref":"#/types/ovh:index/CloudProjectStorageObjectBucketLifecycleConfigurationRuleTransition:CloudProjectStorageObjectBucketLifecycleConfigurationRuleTransition"},"description":"Configuration for transitioning current object versions to a different storage class.\n"}},"type":"object","required":["status"],"language":{"nodejs":{"requiredOutputs":["id","status"]}}},"ovh:index/CloudProjectStorageObjectBucketLifecycleConfigurationRuleAbortIncompleteMultipartUpload:CloudProjectStorageObjectBucketLifecycleConfigurationRuleAbortIncompleteMultipartUpload":{"properties":{"daysAfterInitiation":{"type":"number","description":"Number of days after initiation before an incomplete multipart upload is aborted.\n"}},"type":"object"},"ovh:index/CloudProjectStorageObjectBucketLifecycleConfigurationRuleExpiration:CloudProjectStorageObjectBucketLifecycleConfigurationRuleExpiration":{"properties":{"date":{"type":"string","description":"ISO 8601 date after which objects are deleted (e.g. `2026-01-01`). Mutually exclusive with `days` and `expired_object_delete_marker`.\n"},"days":{"type":"number","description":"Number of days after creation before the object is deleted. Mutually exclusive with `date` and `expired_object_delete_marker`.\n"},"expiredObjectDeleteMarker":{"type":"boolean","description":"If `true`, delete markers with no noncurrent versions are automatically removed. Cannot be specified with `days` or `date`.\n"}},"type":"object"},"ovh:index/CloudProjectStorageObjectBucketLifecycleConfigurationRuleFilter:CloudProjectStorageObjectBucketLifecycleConfigurationRuleFilter":{"properties":{"objectSizeGreaterThan":{"type":"number","description":"Minimum object size in bytes to which the rule applies.\n"},"objectSizeLessThan":{"type":"number","description":"Maximum object size in bytes to which the rule applies.\n"},"prefix":{"type":"string","description":"Prefix filter — the rule applies only to objects whose key starts with this prefix.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags filter — the rule applies only to objects with all the specified tags.\n"}},"type":"object"},"ovh:index/CloudProjectStorageObjectBucketLifecycleConfigurationRuleNoncurrentVersionExpiration:CloudProjectStorageObjectBucketLifecycleConfigurationRuleNoncurrentVersionExpiration":{"properties":{"newerNoncurrentVersions":{"type":"number","description":"Number of noncurrent versions to retain. All noncurrent versions beyond this count are permanently deleted.\n"},"noncurrentDays":{"type":"number","description":"Number of days after an object becomes noncurrent before it is deleted.\n"}},"type":"object"},"ovh:index/CloudProjectStorageObjectBucketLifecycleConfigurationRuleNoncurrentVersionTransition:CloudProjectStorageObjectBucketLifecycleConfigurationRuleNoncurrentVersionTransition":{"properties":{"newerNoncurrentVersions":{"type":"number","description":"Number of noncurrent versions to retain in the same storage class before transitioning.\n"},"noncurrentDays":{"type":"number","description":"Number of days after an object becomes noncurrent before it is transitioned.\n"},"storageClass":{"type":"string","description":"The storage class to transition noncurrent objects to.\n"}},"type":"object"},"ovh:index/CloudProjectStorageObjectBucketLifecycleConfigurationRuleTransition:CloudProjectStorageObjectBucketLifecycleConfigurationRuleTransition":{"properties":{"date":{"type":"string","description":"ISO 8601 date after which objects are transitioned (e.g. `2026-01-01`). Mutually exclusive with `days`.\n"},"days":{"type":"number","description":"Number of days after creation before objects are transitioned. Mutually exclusive with `date`.\n"},"storageClass":{"type":"string","description":"The storage class to transition objects to. Accepted values: `STANDARD`, `STANDARD_IA`, `GLACIER_IR`, `DEEP_ARCHIVE`.\n"}},"type":"object","required":["storageClass"]},"ovh:index/StorageEfsIam:StorageEfsIam":{"properties":{"displayName":{"type":"string","description":"Resource display name\n"},"id":{"type":"string","description":"Unique identifier of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource tags. Tags that were internally computed are prefixed with ovh:\n"},"urn":{"type":"string","description":"Unique resource name used in policies\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["displayName","id","tags","urn"]}}},"ovh:index/StorageEfsOrder:StorageEfsOrder":{"properties":{"date":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/types/ovh:index/StorageEfsOrderDetail:StorageEfsOrderDetail"}},"expirationDate":{"type":"string"},"orderId":{"type":"number"}},"type":"object","language":{"nodejs":{"requiredOutputs":["date","details","expirationDate","orderId"]}}},"ovh:index/StorageEfsOrderDetail:StorageEfsOrderDetail":{"properties":{"description":{"type":"string"},"detailType":{"type":"string","description":"Product type of item in order\n"},"domain":{"type":"string"},"orderDetailId":{"type":"number"},"quantity":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","detailType","domain","orderDetailId","quantity"]}}},"ovh:index/StorageEfsPlan:StorageEfsPlan":{"properties":{"configurations":{"type":"array","items":{"$ref":"#/types/ovh:index/StorageEfsPlanConfiguration:StorageEfsPlanConfiguration"}},"duration":{"type":"string","description":"Duration selected for the purchase of the product\n"},"itemId":{"type":"number","description":"Cart item to be linked\n"},"planCode":{"type":"string","description":"Identifier of the option offer\n"},"pricingMode":{"type":"string","description":"Pricing mode selected for the purchase of the product\n"},"quantity":{"type":"number","description":"Quantity of product desired\n"}},"type":"object","required":["duration","planCode","pricingMode"],"language":{"nodejs":{"requiredOutputs":["configurations","duration","planCode","pricingMode"]}}},"ovh:index/StorageEfsPlanConfiguration:StorageEfsPlanConfiguration":{"properties":{"label":{"type":"string","description":"Label for your configuration item\n"},"value":{"type":"string","description":"Value or resource URL on API.OVH.COM of your configuration item\n"}},"type":"object","required":["label","value"]},"ovh:index/StorageEfsPlanOption:StorageEfsPlanOption":{"properties":{"configurations":{"type":"array","items":{"$ref":"#/types/ovh:index/StorageEfsPlanOptionConfiguration:StorageEfsPlanOptionConfiguration"}},"duration":{"type":"string","description":"Duration selected for the purchase of the product\n"},"planCode":{"type":"string","description":"Identifier of the option offer\n"},"pricingMode":{"type":"string","description":"Pricing mode selected for the purchase of the product\n"},"quantity":{"type":"number","description":"Quantity of product desired\n"}},"type":"object","required":["duration","planCode","pricingMode","quantity"]},"ovh:index/StorageEfsPlanOptionConfiguration:StorageEfsPlanOptionConfiguration":{"properties":{"label":{"type":"string","description":"Label for your configuration item\n"},"value":{"type":"string","description":"Value or resource URL on API.OVH.COM of your configuration item\n"}},"type":"object","required":["label","value"]},"ovh:index/VrackservicesCurrentState:VrackservicesCurrentState":{"properties":{"productStatus":{"type":"string","description":"Product status of the vRack Services\n"},"region":{"type":"string","description":"Region of the vRack Services. List of compatible regions can be retrieved from /reference/region\n"},"subnets":{"type":"array","items":{"$ref":"#/types/ovh:index/VrackservicesCurrentStateSubnet:VrackservicesCurrentStateSubnet"},"description":"Subnets of the current vRack Services\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["productStatus","region","subnets"]}}},"ovh:index/VrackservicesCurrentStateSubnet:VrackservicesCurrentStateSubnet":{"properties":{"cidr":{"type":"string","description":"IP address range of the subnet in CIDR format\n"},"displayName":{"type":"string","description":"Display name of the subnet\n"},"serviceEndpoints":{"type":"array","items":{"$ref":"#/types/ovh:index/VrackservicesCurrentStateSubnetServiceEndpoint:VrackservicesCurrentStateSubnetServiceEndpoint"},"description":"Service endpoints of the subnet\n"},"serviceRange":{"$ref":"#/types/ovh:index/VrackservicesCurrentStateSubnetServiceRange:VrackservicesCurrentStateSubnetServiceRange","description":"Defines a smaller subnet dedicated to the managed services IPs\n"},"vlan":{"type":"number","description":"Unique inner VLAN that allows subnets segregation\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cidr","displayName","serviceEndpoints","serviceRange","vlan"]}}},"ovh:index/VrackservicesCurrentStateSubnetServiceEndpoint:VrackservicesCurrentStateSubnetServiceEndpoint":{"properties":{"endpoints":{"type":"array","items":{"$ref":"#/types/ovh:index/VrackservicesCurrentStateSubnetServiceEndpointEndpoint:VrackservicesCurrentStateSubnetServiceEndpointEndpoint"},"description":"Endpoints representing the IPs assigned to the managed services\n"},"managedServiceUrn":{"type":"string","description":"IAM Resource URN of the managed service. Compatible managed service types are listed by /reference/compatibleManagedServiceType call.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["endpoints","managedServiceUrn"]}}},"ovh:index/VrackservicesCurrentStateSubnetServiceEndpointEndpoint:VrackservicesCurrentStateSubnetServiceEndpointEndpoint":{"properties":{"description":{"type":"string","description":"IP description defined in the managed service\n"},"ip":{"type":"string","description":"IP address assigned by OVHcloud\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","ip"]}}},"ovh:index/VrackservicesCurrentStateSubnetServiceRange:VrackservicesCurrentStateSubnetServiceRange":{"properties":{"cidr":{"type":"string","description":"CIDR dedicated to the subnet's services\n"},"remainingIps":{"type":"number","description":"Number of remaining IPs in the service range\n"},"reservedIps":{"type":"number","description":"Number of service range IPs reserved by OVHcloud\n"},"usedIps":{"type":"number","description":"Number of service range IPs assigned to the managed services\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cidr","remainingIps","reservedIps","usedIps"]}}},"ovh:index/VrackservicesCurrentTask:VrackservicesCurrentTask":{"properties":{"id":{"type":"string","description":"Identifier of the current task\n"},"link":{"type":"string","description":"Link to the related resource\n"},"status":{"type":"string","description":"Current global status of the current task\n"},"type":{"type":"string","description":"Type of the current task\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","link","status","type"]}}},"ovh:index/VrackservicesIam:VrackservicesIam":{"properties":{"displayName":{"type":"string","description":"Resource display name\n"},"id":{"type":"string","description":"Unique identifier of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource tags. Tags that were internally computed are prefixed with ovh:\n"},"urn":{"type":"string","description":"Unique resource name used in policies\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["displayName","id","tags","urn"]}}},"ovh:index/VrackservicesOrder:VrackservicesOrder":{"properties":{"date":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/types/ovh:index/VrackservicesOrderDetail:VrackservicesOrderDetail"}},"expirationDate":{"type":"string"},"orderId":{"type":"number"}},"type":"object","language":{"nodejs":{"requiredOutputs":["date","details","expirationDate","orderId"]}}},"ovh:index/VrackservicesOrderDetail:VrackservicesOrderDetail":{"properties":{"description":{"type":"string"},"detailType":{"type":"string","description":"Product type of item in order\n"},"domain":{"type":"string"},"orderDetailId":{"type":"number"},"quantity":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","detailType","domain","orderDetailId","quantity"]}}},"ovh:index/VrackservicesPlan:VrackservicesPlan":{"properties":{"configurations":{"type":"array","items":{"$ref":"#/types/ovh:index/VrackservicesPlanConfiguration:VrackservicesPlanConfiguration"}},"duration":{"type":"string","description":"Duration selected for the purchase of the product\n"},"itemId":{"type":"number","description":"Cart item to be linked\n"},"planCode":{"type":"string","description":"Identifier of the option offer\n"},"pricingMode":{"type":"string","description":"Pricing mode selected for the purchase of the product\n"},"quantity":{"type":"number","description":"Quantity of product desired\n"}},"type":"object","required":["duration","planCode","pricingMode"],"language":{"nodejs":{"requiredOutputs":["configurations","duration","planCode","pricingMode"]}}},"ovh:index/VrackservicesPlanConfiguration:VrackservicesPlanConfiguration":{"properties":{"label":{"type":"string","description":"Label for your configuration item\n"},"value":{"type":"string","description":"Value or resource URL on API.OVH.COM of your configuration item\n"}},"type":"object","required":["label","value"]},"ovh:index/VrackservicesPlanOption:VrackservicesPlanOption":{"properties":{"configurations":{"type":"array","items":{"$ref":"#/types/ovh:index/VrackservicesPlanOptionConfiguration:VrackservicesPlanOptionConfiguration"}},"duration":{"type":"string","description":"Duration selected for the purchase of the product\n"},"planCode":{"type":"string","description":"Identifier of the option offer\n"},"pricingMode":{"type":"string","description":"Pricing mode selected for the purchase of the product\n"},"quantity":{"type":"number","description":"Quantity of product desired\n"}},"type":"object","required":["duration","planCode","pricingMode","quantity"]},"ovh:index/VrackservicesPlanOptionConfiguration:VrackservicesPlanOptionConfiguration":{"properties":{"label":{"type":"string","description":"Label for your configuration item\n"},"value":{"type":"string","description":"Value or resource URL on API.OVH.COM of your configuration item\n"}},"type":"object","required":["label","value"]},"ovh:index/VrackservicesTargetSpec:VrackservicesTargetSpec":{"properties":{"subnets":{"type":"array","items":{"$ref":"#/types/ovh:index/VrackservicesTargetSpecSubnet:VrackservicesTargetSpecSubnet"},"description":"Target specification of the subnets. Maximum one subnet per vRack Services\n"}},"type":"object","required":["subnets"]},"ovh:index/VrackservicesTargetSpecSubnet:VrackservicesTargetSpecSubnet":{"properties":{"cidr":{"type":"string","description":"IPv4 CIDR notation (e.g., 192.0.2.0/24)\n"},"displayName":{"type":"string","description":"Display name of the subnet. Format must follow `^[a-zA-Z0-9-_.]{0,40}$`\n"},"serviceEndpoints":{"type":"array","items":{"$ref":"#/types/ovh:index/VrackservicesTargetSpecSubnetServiceEndpoint:VrackservicesTargetSpecSubnetServiceEndpoint"},"description":"Target specification of the Service Endpoints\n"},"serviceRange":{"$ref":"#/types/ovh:index/VrackservicesTargetSpecSubnetServiceRange:VrackservicesTargetSpecSubnetServiceRange","description":"Target specification of the range dedicated to the subnet's services\n"},"vlan":{"type":"number","description":"Unique inner VLAN that allows subnets segregation. Authorized values: [2 - 4094] and `null` (untagged traffic)\n"}},"type":"object","required":["cidr","serviceEndpoints","serviceRange"]},"ovh:index/VrackservicesTargetSpecSubnetServiceEndpoint:VrackservicesTargetSpecSubnetServiceEndpoint":{"properties":{"managedServiceUrn":{"type":"string","description":"IAM Resource URN of the managed service. Managed service Region must match vRack Services Region. Compatible managed service types are listed by /reference/compatibleManagedServiceType call\n"}},"type":"object","required":["managedServiceUrn"]},"ovh:index/VrackservicesTargetSpecSubnetServiceRange:VrackservicesTargetSpecSubnetServiceRange":{"properties":{"cidr":{"type":"string","description":"IPv4 CIDR notation (e.g., 192.0.2.0/24)\n"}},"type":"object","required":["cidr"]},"ovh:index/getCloudProjectFlavorCapability:getCloudProjectFlavorCapability":{"properties":{"enabled":{"type":"boolean","description":"Is the capability enabled\n"},"name":{"type":"string","description":"Name of the capability\n"}},"type":"object","required":["enabled","name"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getCloudProjectFlavorPlanCodes:getCloudProjectFlavorPlanCodes":{"properties":{"hourly":{"type":"string","description":"Plan code to order hourly instance\n"},"monthly":{"type":"string","description":"Plan code to order monthly instance\n"}},"type":"object","required":["hourly","monthly"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getCloudProjectGatewayExternalInformation:getCloudProjectGatewayExternalInformation":{"properties":{"ips":{"type":"array","items":{"$ref":"#/types/ovh:index/getCloudProjectGatewayExternalInformationIp:getCloudProjectGatewayExternalInformationIp"},"description":"External ips of the gateway\n"},"networkId":{"type":"string","description":"External network ID of the gateway\n"}},"type":"object","required":["ips","networkId"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getCloudProjectGatewayExternalInformationIp:getCloudProjectGatewayExternalInformationIp":{"properties":{"ip":{"type":"string","description":"External IP of the gateway\n"},"subnetId":{"type":"string","description":"Subnet ID of the ip\n"}},"type":"object","required":["ip","subnetId"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getCloudProjectGatewayInterface:getCloudProjectGatewayInterface":{"properties":{"id":{"type":"string","description":"ID of the interface\n"},"ip":{"type":"string","description":"IP of the interface\n"},"networkId":{"type":"string","description":"Network ID of the interface\n"},"subnetId":{"type":"string","description":"Subnet ID of the interface\n"}},"type":"object","required":["id","ip","networkId","subnetId"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getCloudProjectRancherCapabilitiesPlanPlan:getCloudProjectRancherCapabilitiesPlanPlan":{"properties":{"cause":{"type":"string","description":"Cause for an unavailability\n"},"message":{"type":"string","description":"Human-readable description of the unavailability cause\n"},"name":{"type":"string","description":"Name of the plan\n"},"status":{"type":"string","description":"Status of the plan\n"}},"type":"object","required":["cause","message","name","status"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getCloudProjectRancherCapabilitiesVersionVersion:getCloudProjectRancherCapabilitiesVersionVersion":{"properties":{"cause":{"type":"string","description":"Cause for an unavailability\n"},"changelogUrl":{"type":"string","description":"Changelog URL of the version\n"},"message":{"type":"string","description":"Human-readable description of the unavailability cause\n"},"name":{"type":"string","description":"Name of the version\n"},"status":{"type":"string","description":"Status of the version\n"}},"type":"object","required":["cause","changelogUrl","message","name","status"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getCloudProjectSshKeysSshKey:getCloudProjectSshKeysSshKey":{"properties":{"id":{"type":"string","description":"SSH key ID\n"},"name":{"type":"string","description":"SSH key name\n"},"publicKey":{"type":"string","description":"SSH public key\n"},"regions":{"type":"array","items":{"type":"string"},"description":"SSH key regions\n"}},"type":"object","required":["id","name","publicKey","regions"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getCloudProjectStorageObjectBucketLifecycleConfigurationRule:getCloudProjectStorageObjectBucketLifecycleConfigurationRule":{"properties":{"abortIncompleteMultipartUpload":{"$ref":"#/types/ovh:index/getCloudProjectStorageObjectBucketLifecycleConfigurationRuleAbortIncompleteMultipartUpload:getCloudProjectStorageObjectBucketLifecycleConfigurationRuleAbortIncompleteMultipartUpload","description":"Abort incomplete multipart upload configuration.\n"},"expiration":{"$ref":"#/types/ovh:index/getCloudProjectStorageObjectBucketLifecycleConfigurationRuleExpiration:getCloudProjectStorageObjectBucketLifecycleConfigurationRuleExpiration","description":"Lifecycle rule expiration configuration.\n"},"filter":{"$ref":"#/types/ovh:index/getCloudProjectStorageObjectBucketLifecycleConfigurationRuleFilter:getCloudProjectStorageObjectBucketLifecycleConfigurationRuleFilter","description":"Rule filters.\n"},"id":{"type":"string","description":"Rule ID.\n"},"noncurrentVersionExpiration":{"$ref":"#/types/ovh:index/getCloudProjectStorageObjectBucketLifecycleConfigurationRuleNoncurrentVersionExpiration:getCloudProjectStorageObjectBucketLifecycleConfigurationRuleNoncurrentVersionExpiration","description":"Specifies when noncurrent object versions expire.\n"},"noncurrentVersionTransitions":{"type":"array","items":{"$ref":"#/types/ovh:index/getCloudProjectStorageObjectBucketLifecycleConfigurationRuleNoncurrentVersionTransition:getCloudProjectStorageObjectBucketLifecycleConfigurationRuleNoncurrentVersionTransition"},"description":"Specifies the transition rule for noncurrent object versions.\n"},"status":{"type":"string","description":"Rule status.\n"},"transitions":{"type":"array","items":{"$ref":"#/types/ovh:index/getCloudProjectStorageObjectBucketLifecycleConfigurationRuleTransition:getCloudProjectStorageObjectBucketLifecycleConfigurationRuleTransition"},"description":"Specifies when an object transitions to a specified storage class.\n"}},"type":"object","required":["abortIncompleteMultipartUpload","expiration","filter","id","noncurrentVersionExpiration","noncurrentVersionTransitions","status","transitions"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getCloudProjectStorageObjectBucketLifecycleConfigurationRuleAbortIncompleteMultipartUpload:getCloudProjectStorageObjectBucketLifecycleConfigurationRuleAbortIncompleteMultipartUpload":{"properties":{"daysAfterInitiation":{"type":"number","description":"Specifies the number of days after which an incomplete multipart upload is aborted.\n"}},"type":"object","required":["daysAfterInitiation"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getCloudProjectStorageObjectBucketLifecycleConfigurationRuleExpiration:getCloudProjectStorageObjectBucketLifecycleConfigurationRuleExpiration":{"properties":{"date":{"type":"string","description":"Indicates at what date the objects will be deleted (ISO 8601).\n"},"days":{"type":"number","description":"Objects will be deleted past this lifetime (in days).\n"},"expiredObjectDeleteMarker":{"type":"boolean","description":"Indicates whether a delete marker with no noncurrent versions will be removed.\n"}},"type":"object","required":["date","days","expiredObjectDeleteMarker"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getCloudProjectStorageObjectBucketLifecycleConfigurationRuleFilter:getCloudProjectStorageObjectBucketLifecycleConfigurationRuleFilter":{"properties":{"objectSizeGreaterThan":{"type":"number","description":"Minimum object size in bytes to which the rule applies.\n"},"objectSizeLessThan":{"type":"number","description":"Maximum object size in bytes to which the rule applies.\n"},"prefix":{"type":"string","description":"Prefix filter.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags filter.\n"}},"type":"object","required":["objectSizeGreaterThan","objectSizeLessThan","prefix","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getCloudProjectStorageObjectBucketLifecycleConfigurationRuleNoncurrentVersionExpiration:getCloudProjectStorageObjectBucketLifecycleConfigurationRuleNoncurrentVersionExpiration":{"properties":{"newerNoncurrentVersions":{"type":"number","description":"Specifies how many noncurrent versions to retain.\n"},"noncurrentDays":{"type":"number","description":"Specifies the number of days an object is noncurrent before it can be expired.\n"}},"type":"object","required":["newerNoncurrentVersions","noncurrentDays"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getCloudProjectStorageObjectBucketLifecycleConfigurationRuleNoncurrentVersionTransition:getCloudProjectStorageObjectBucketLifecycleConfigurationRuleNoncurrentVersionTransition":{"properties":{"newerNoncurrentVersions":{"type":"number","description":"Specifies how many noncurrent versions to retain in the same storage class.\n"},"noncurrentDays":{"type":"number","description":"Specifies the number of days an object is noncurrent before the transition.\n"},"storageClass":{"type":"string","description":"The storage class to which you want the noncurrent object to transition.\n"}},"type":"object","required":["newerNoncurrentVersions","noncurrentDays","storageClass"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getCloudProjectStorageObjectBucketLifecycleConfigurationRuleTransition:getCloudProjectStorageObjectBucketLifecycleConfigurationRuleTransition":{"properties":{"date":{"type":"string","description":"Indicates when objects are transitioned to the specified storage class (ISO 8601).\n"},"days":{"type":"number","description":"Indicates the number of days after creation when objects are transitioned.\n"},"storageClass":{"type":"string","description":"The storage class to which you want the object to transition.\n"}},"type":"object","required":["date","days","storageClass"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getDbaasLogsOutputGraylogStreamUrlUrl:getDbaasLogsOutputGraylogStreamUrlUrl":{"properties":{"address":{"type":"string","description":"URL address\n"},"type":{"type":"string","description":"URL type (e.g. `GRAYLOG_WEBUI`, `WEB_SOCKET`)\n"}},"type":"object","required":["address","type"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getInstallationTemplateInput:getInstallationTemplateInput":{"properties":{"default":{"type":"string"},"description":{"type":"string","description":"Information about this template.\n"},"enums":{"type":"array","items":{"type":"string"}},"mandatory":{"type":"boolean"},"name":{"type":"string"},"type":{"type":"string"}},"type":"object","required":["default","description","enums","mandatory","name","type"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getInstallationTemplateLicense:getInstallationTemplateLicense":{"properties":{"os":{"type":"array","items":{"$ref":"#/types/ovh:index/getInstallationTemplateLicenseO:getInstallationTemplateLicenseO"}},"usages":{"type":"array","items":{"$ref":"#/types/ovh:index/getInstallationTemplateLicenseUsage:getInstallationTemplateLicenseUsage"}}},"type":"object","required":["os","usages"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getInstallationTemplateLicenseO:getInstallationTemplateLicenseO":{"properties":{"names":{"type":"array","items":{"type":"string"}},"url":{"type":"string"}},"type":"object","required":["names","url"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getInstallationTemplateLicenseUsage:getInstallationTemplateLicenseUsage":{"properties":{"names":{"type":"array","items":{"type":"string"}},"url":{"type":"string"}},"type":"object","required":["names","url"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getInstallationTemplateProject:getInstallationTemplateProject":{"properties":{"os":{"type":"array","items":{"$ref":"#/types/ovh:index/getInstallationTemplateProjectO:getInstallationTemplateProjectO"},"description":"OS template project OS details\n"},"usages":{"type":"array","items":{"$ref":"#/types/ovh:index/getInstallationTemplateProjectUsage:getInstallationTemplateProjectUsage"}}},"type":"object","required":["os","usages"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getInstallationTemplateProjectO:getInstallationTemplateProjectO":{"properties":{"governances":{"type":"array","items":{"type":"string"},"description":"OS template project item governance\n"},"name":{"type":"string","description":"OS template project item name\n"},"releaseNotes":{"type":"string","description":"OS template project item release notes\n"},"url":{"type":"string","description":"OS template project item url\n"},"version":{"type":"string","description":"OS template project item version\n"}},"type":"object","required":["governances","name","releaseNotes","url","version"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getInstallationTemplateProjectUsage:getInstallationTemplateProjectUsage":{"properties":{"governances":{"type":"array","items":{"type":"string"},"description":"OS template project item governance\n"},"name":{"type":"string","description":"OS template project item name\n"},"releaseNotes":{"type":"string","description":"OS template project item release notes\n"},"url":{"type":"string","description":"OS template project item url\n"},"version":{"type":"string","description":"OS template project item version\n"}},"type":"object","required":["governances","name","releaseNotes","url","version"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getIploadbalancingNatIpsNatIp:getIploadbalancingNatIpsNatIp":{"properties":{"ips":{"type":"array","items":{"type":"string"}},"zone":{"type":"string"}},"type":"object","required":["ips","zone"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getOkmsSecretIam:getOkmsSecretIam":{"properties":{"displayName":{"type":"string","description":"Resource display name\n"},"id":{"type":"string","description":"Unique identifier of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource tags. Tags that were internally computed are prefixed with ovh:\n"},"urn":{"type":"string","description":"Unique resource name used in policies\n"}},"type":"object","required":["displayName","id","tags","urn"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getOkmsSecretMetadata:getOkmsSecretMetadata":{"properties":{"casRequired":{"type":"boolean","description":"The “Cas” parameter will be required for each write request if set to true. When the “cas” (Check and set) is specified, the current version of the secret is verified before updating it.\n"},"createdAt":{"type":"string","description":"Time of creation of the secret\n"},"currentVersion":{"type":"number","description":"The secret version\n"},"customMetadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Custom metadata\n"},"deactivateVersionAfter":{"type":"string","description":"Time duration before a version is deactivated\n"},"maxVersions":{"type":"number","description":"The number of versions to keep (10 default)\n"},"oldestVersion":{"type":"number","description":"The secret oldest version\n"},"updatedAt":{"type":"string","description":"Time of the last update of the secret\n"}},"type":"object","required":["casRequired","createdAt","currentVersion","customMetadata","deactivateVersionAfter","maxVersions","oldestVersion","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getOvhcloudConnectConfigPopDatacenterExtrasExtraConfig:getOvhcloudConnectConfigPopDatacenterExtrasExtraConfig":{"properties":{"bgpNeighborArea":{"type":"number","description":"BGP AS number\n"},"bgpNeighborIp":{"type":"string","description":"Router IP for BGP\n"},"id":{"type":"number","description":"ID of the extra configuration\n"},"nextHop":{"type":"string","description":"Static route next hop\n"},"status":{"type":"string","description":"Status of the pop configuration\n"},"subnet":{"type":"string","description":"Static route ip\n"},"type":{"type":"string","description":"Type of the configuration\n"}},"type":"object","required":["bgpNeighborArea","bgpNeighborIp","id","nextHop","status","subnet","type"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getOvhcloudConnectConfigPopDatacentersDatacenterConfig:getOvhcloudConnectConfigPopDatacentersDatacenterConfig":{"properties":{"datacenterId":{"type":"number","description":"Datacenter ID\n"},"id":{"type":"number","description":"ID of the Datacenter configuration\n"},"ovhBgpArea":{"type":"number","description":"OVH Private AS\n"},"status":{"type":"string","description":"Status of the pop configuration\n"},"subnet":{"type":"string","description":"Subnet should be a /28 min\n"}},"type":"object","required":["datacenterId","id","ovhBgpArea","status","subnet"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getOvhcloudConnectConfigPopsPopConfig:getOvhcloudConnectConfigPopsPopConfig":{"properties":{"customerBgpArea":{"type":"number","description":"Customer Private AS\n"},"id":{"type":"number","description":"ID of the Pop Configuration\n"},"interfaceId":{"type":"number","description":"ID of the interface\n"},"ovhBgpArea":{"type":"number","description":"OVH Private AS\n"},"status":{"type":"string","description":"Status of the pop configuration\n"},"subnet":{"type":"string","description":"Subnet should be a /30, first IP for OVH, second IP for customer\n"},"type":{"type":"string","description":"Type of the pop configuration\n"}},"type":"object","required":["customerBgpArea","id","interfaceId","ovhBgpArea","status","subnet","type"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getOvhcloudConnectDatacentersDatacenter:getOvhcloudConnectDatacentersDatacenter":{"properties":{"available":{"type":"boolean","description":"Get availability to add new configuration on it\n"},"id":{"type":"number","description":"Id\n"},"name":{"type":"string","description":"name of the datacenter\n"},"region":{"type":"string","description":"region of the datacenter\n"},"regionType":{"type":"string","description":"region type of the datacenter\n"}},"type":"object","required":["available","id","name","region","regionType"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getServerVni:getServerVni":{"properties":{"enabled":{"type":"boolean","description":"VirtualNetworkInterface activation state\n"},"mode":{"type":"string","description":"VirtualNetworkInterface mode (public,vrack,vrack_aggregation)\n"},"name":{"type":"string","description":"User defined VirtualNetworkInterface name\n"},"nics":{"type":"array","items":{"type":"string"},"description":"NetworkInterfaceControllers bound to this VirtualNetworkInterface\n"},"serverName":{"type":"string","description":"Server bound to this VirtualNetworkInterface\n"},"uuid":{"type":"string","description":"VirtualNetworkInterface unique id\n"},"vrack":{"type":"string","description":"vRack name\n"}},"type":"object","required":["enabled","mode","name","nics","serverName","uuid","vrack"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getStorageEfsIam:getStorageEfsIam":{"properties":{"displayName":{"type":"string","description":"Resource display name\n"},"id":{"type":"string","description":"Unique identifier of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource tags. Tags that were internally computed are prefixed with ovh:\n"},"urn":{"type":"string","description":"Unique resource name used in policies\n"}},"type":"object","required":["displayName","id","tags","urn"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getStorageEfsShareAccessPathsAccessPath:getStorageEfsShareAccessPathsAccessPath":{"properties":{"id":{"type":"string","description":"Access path ID\n"},"path":{"type":"string","description":"Access path\n"},"preferred":{"type":"boolean","description":"Is this the preferred access path?\n"}},"type":"object","required":["id","path","preferred"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getVrackservicesCurrentState:getVrackservicesCurrentState":{"properties":{"productStatus":{"type":"string","description":"Product status of the vRack Services\n"},"region":{"type":"string","description":"Region of the vRack Services. List of compatible regions can be retrieved from /reference/region\n"},"subnets":{"type":"array","items":{"$ref":"#/types/ovh:index/getVrackservicesCurrentStateSubnet:getVrackservicesCurrentStateSubnet"},"description":"Subnets of the current vRack Services\n"}},"type":"object","required":["productStatus","region","subnets"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getVrackservicesCurrentStateSubnet:getVrackservicesCurrentStateSubnet":{"properties":{"cidr":{"type":"string","description":"IP address range of the subnet in CIDR format\n"},"displayName":{"type":"string","description":"Display name of the subnet\n"},"serviceEndpoints":{"type":"array","items":{"$ref":"#/types/ovh:index/getVrackservicesCurrentStateSubnetServiceEndpoint:getVrackservicesCurrentStateSubnetServiceEndpoint"},"description":"Service endpoints of the subnet\n"},"serviceRange":{"$ref":"#/types/ovh:index/getVrackservicesCurrentStateSubnetServiceRange:getVrackservicesCurrentStateSubnetServiceRange","description":"Defines a smaller subnet dedicated to the managed services IPs\n"},"vlan":{"type":"number","description":"Unique inner VLAN that allows subnets segregation\n"}},"type":"object","required":["cidr","displayName","serviceEndpoints","serviceRange","vlan"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getVrackservicesCurrentStateSubnetServiceEndpoint:getVrackservicesCurrentStateSubnetServiceEndpoint":{"properties":{"endpoints":{"type":"array","items":{"$ref":"#/types/ovh:index/getVrackservicesCurrentStateSubnetServiceEndpointEndpoint:getVrackservicesCurrentStateSubnetServiceEndpointEndpoint"},"description":"Endpoints representing the IPs assigned to the managed services\n"},"managedServiceUrn":{"type":"string","description":"IAM Resource URN of the managed service. Compatible managed service types are listed by /reference/compatibleManagedServiceType call.\n"}},"type":"object","required":["endpoints","managedServiceUrn"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getVrackservicesCurrentStateSubnetServiceEndpointEndpoint:getVrackservicesCurrentStateSubnetServiceEndpointEndpoint":{"properties":{"description":{"type":"string","description":"IP description defined in the managed service\n"},"ip":{"type":"string","description":"IP address assigned by OVHcloud\n"}},"type":"object","required":["description","ip"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getVrackservicesCurrentStateSubnetServiceRange:getVrackservicesCurrentStateSubnetServiceRange":{"properties":{"cidr":{"type":"string","description":"CIDR dedicated to the subnet's services\n"},"remainingIps":{"type":"number","description":"Number of remaining IPs in the service range\n"},"reservedIps":{"type":"number","description":"Number of service range IPs reserved by OVHcloud\n"},"usedIps":{"type":"number","description":"Number of service range IPs assigned to the managed services\n"}},"type":"object","required":["cidr","remainingIps","reservedIps","usedIps"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getVrackservicesCurrentTask:getVrackservicesCurrentTask":{"properties":{"id":{"type":"string","description":"Identifier of the current task\n"},"link":{"type":"string","description":"Link to the task details\n"},"status":{"type":"string","description":"Current global status of the current task\n"},"type":{"type":"string","description":"Type of the current task\n"}},"type":"object","required":["id","link","status","type"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getVrackservicesIam:getVrackservicesIam":{"properties":{"displayName":{"type":"string","description":"Resource display name\n"},"id":{"type":"string","description":"Unique identifier of the resource\n"},"state":{"type":"string","description":"Resource state\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource tags. Tags that were internally computed are prefixed with ovh:\n"},"urn":{"type":"string","description":"Unique resource name used in policies\n"}},"type":"object","required":["displayName","id","state","tags","urn"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getVrackservicesTargetSpec:getVrackservicesTargetSpec":{"properties":{"subnets":{"type":"array","items":{"$ref":"#/types/ovh:index/getVrackservicesTargetSpecSubnet:getVrackservicesTargetSpecSubnet"},"description":"Target specification of the subnets. Maximum one subnet per vRack Services\n"}},"type":"object","required":["subnets"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getVrackservicesTargetSpecSubnet:getVrackservicesTargetSpecSubnet":{"properties":{"cidr":{"type":"string","description":"IP address range of the subnet in CIDR format. Must be a private network address (RFC1918). Authorized range for prefix length: /16 to /24\n"},"displayName":{"type":"string","description":"Display name of the subnet. Format must follow `^[ a-zA-Z0-9-_.]{0,40}$`\n"},"serviceEndpoints":{"type":"array","items":{"$ref":"#/types/ovh:index/getVrackservicesTargetSpecSubnetServiceEndpoint:getVrackservicesTargetSpecSubnetServiceEndpoint"},"description":"Target specification of the Service Endpoints\n"},"serviceRange":{"$ref":"#/types/ovh:index/getVrackservicesTargetSpecSubnetServiceRange:getVrackservicesTargetSpecSubnetServiceRange","description":"Defines a smaller subnet dedicated to the managed service IPs\n"},"vlan":{"type":"number","description":"Unique inner VLAN that allows subnets segregation. Authorized values: [2 - 4094] and `null` (untagged traffic)\n"}},"type":"object","required":["cidr","displayName","serviceEndpoints","serviceRange","vlan"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getVrackservicesTargetSpecSubnetServiceEndpoint:getVrackservicesTargetSpecSubnetServiceEndpoint":{"properties":{"managedServiceUrn":{"type":"string","description":"IAM Resource URN of the managed service. Managed service Region must match vRack Services Region. Compatible managed service types are listed by /reference/compatibleManagedServiceType call\n"}},"type":"object","required":["managedServiceUrn"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getVrackservicesTargetSpecSubnetServiceRange:getVrackservicesTargetSpecSubnetServiceRange":{"properties":{"cidr":{"type":"string","description":"IP address range dedicated to the subnet's services in CIDR format. Must be a private network address (RFC1918). Must be a sub-network of the subnet. Authorized range for prefix length: /27 to /29\n"}},"type":"object","required":["cidr"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getVrackservicessVrackservicess:getVrackservicessVrackservicess":{"properties":{"checksum":{"type":"string","description":"Computed hash used to control concurrent modification requests. Here, it represents the current target specification value\n"},"createdAt":{"type":"string","description":"Date of the vRack Services delivery\n"},"currentState":{"$ref":"#/types/ovh:index/getVrackservicessVrackservicessCurrentState:getVrackservicessVrackservicessCurrentState","description":"Current configuration applied to the vRack Services\n"},"currentTasks":{"type":"array","items":{"$ref":"#/types/ovh:index/getVrackservicessVrackservicessCurrentTask:getVrackservicessVrackservicessCurrentTask"},"description":"Asynchronous operations ongoing on the vRack Services\n"},"iam":{"$ref":"#/types/ovh:index/getVrackservicessVrackservicessIam:getVrackservicessVrackservicessIam","description":"IAM resource metadata\n"},"id":{"type":"string","description":"Unique identifier\n"},"resourceStatus":{"type":"string","description":"Reflects the readiness of the vRack Services. A new target specification request will be accepted only in `READY` status\n"},"targetSpec":{"$ref":"#/types/ovh:index/getVrackservicessVrackservicessTargetSpec:getVrackservicessVrackservicessTargetSpec","description":"Last target specification of the vRack Services\n"},"updatedAt":{"type":"string","description":"Date of the Last vRack Services update\n"}},"type":"object","required":["checksum","createdAt","currentState","currentTasks","iam","id","resourceStatus","targetSpec","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getVrackservicessVrackservicessCurrentState:getVrackservicessVrackservicessCurrentState":{"properties":{"productStatus":{"type":"string","description":"Product status of the vRack Services\n"},"region":{"type":"string","description":"Region of the vRack Services. List of compatible regions can be retrieved from /reference/region\n"},"subnets":{"type":"array","items":{"$ref":"#/types/ovh:index/getVrackservicessVrackservicessCurrentStateSubnet:getVrackservicessVrackservicessCurrentStateSubnet"},"description":"Subnets of the current vRack Services\n"},"vrackId":{"type":"string","description":"vRack associated to the vRack Services\n"}},"type":"object","required":["productStatus","region","subnets","vrackId"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getVrackservicessVrackservicessCurrentStateSubnet:getVrackservicessVrackservicessCurrentStateSubnet":{"properties":{"cidr":{"type":"string","description":"IP address range of the subnet in CIDR format\n"},"displayName":{"type":"string","description":"Display name of the subnet\n"},"serviceEndpoints":{"type":"array","items":{"$ref":"#/types/ovh:index/getVrackservicessVrackservicessCurrentStateSubnetServiceEndpoint:getVrackservicessVrackservicessCurrentStateSubnetServiceEndpoint"},"description":"Service endpoints of the subnet\n"},"serviceRange":{"$ref":"#/types/ovh:index/getVrackservicessVrackservicessCurrentStateSubnetServiceRange:getVrackservicessVrackservicessCurrentStateSubnetServiceRange","description":"Defines a smaller subnet dedicated to the managed services IPs\n"},"vlan":{"type":"number","description":"Unique inner VLAN that allows subnets segregation\n"}},"type":"object","required":["cidr","displayName","serviceEndpoints","serviceRange","vlan"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getVrackservicessVrackservicessCurrentStateSubnetServiceEndpoint:getVrackservicessVrackservicessCurrentStateSubnetServiceEndpoint":{"properties":{"endpoints":{"type":"array","items":{"$ref":"#/types/ovh:index/getVrackservicessVrackservicessCurrentStateSubnetServiceEndpointEndpoint:getVrackservicessVrackservicessCurrentStateSubnetServiceEndpointEndpoint"},"description":"Endpoints representing the IPs assigned to the managed services\n"},"managedServiceUrn":{"type":"string","description":"IAM Resource URN of the managed service. Compatible managed service types are listed by /reference/compatibleManagedServiceType call.\n"}},"type":"object","required":["endpoints","managedServiceUrn"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getVrackservicessVrackservicessCurrentStateSubnetServiceEndpointEndpoint:getVrackservicessVrackservicessCurrentStateSubnetServiceEndpointEndpoint":{"properties":{"description":{"type":"string","description":"IP description defined in the managed service\n"},"ip":{"type":"string","description":"IP address assigned by OVHcloud\n"}},"type":"object","required":["description","ip"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getVrackservicessVrackservicessCurrentStateSubnetServiceRange:getVrackservicessVrackservicessCurrentStateSubnetServiceRange":{"properties":{"cidr":{"type":"string","description":"CIDR dedicated to the subnet's services\n"},"remainingIps":{"type":"number","description":"Number of remaining IPs in the service range\n"},"reservedIps":{"type":"number","description":"Number of service range IPs reserved by OVHcloud\n"},"usedIps":{"type":"number","description":"Number of service range IPs assigned to the managed services\n"}},"type":"object","required":["cidr","remainingIps","reservedIps","usedIps"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getVrackservicessVrackservicessCurrentTask:getVrackservicessVrackservicessCurrentTask":{"properties":{"id":{"type":"string","description":"Identifier of the current task\n"},"link":{"type":"string","description":"Link to the task details\n"},"status":{"type":"string","description":"Current global status of the current task\n"},"type":{"type":"string","description":"Type of the current task\n"}},"type":"object","required":["id","link","status","type"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getVrackservicessVrackservicessIam:getVrackservicessVrackservicessIam":{"properties":{"displayName":{"type":"string","description":"Resource display name\n"},"id":{"type":"string","description":"Unique identifier of the resource\n"},"state":{"type":"string","description":"Resource state\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource tags. Tags that were internally computed are prefixed with ovh:\n"},"urn":{"type":"string","description":"Unique resource name used in policies\n"}},"type":"object","required":["displayName","id","state","tags","urn"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getVrackservicessVrackservicessTargetSpec:getVrackservicessVrackservicessTargetSpec":{"properties":{"subnets":{"type":"array","items":{"$ref":"#/types/ovh:index/getVrackservicessVrackservicessTargetSpecSubnet:getVrackservicessVrackservicessTargetSpecSubnet"},"description":"Target specification of the subnets. Maximum one subnet per vRack Services\n"}},"type":"object","required":["subnets"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getVrackservicessVrackservicessTargetSpecSubnet:getVrackservicessVrackservicessTargetSpecSubnet":{"properties":{"cidr":{"type":"string","description":"IP address range of the subnet in CIDR format. Must be a private network address (RFC1918). Authorized range for prefix length: /16 to /24\n"},"displayName":{"type":"string","description":"Display name of the subnet. Format must follow `^[ a-zA-Z0-9-_.]{0,40}$`\n"},"serviceEndpoints":{"type":"array","items":{"$ref":"#/types/ovh:index/getVrackservicessVrackservicessTargetSpecSubnetServiceEndpoint:getVrackservicessVrackservicessTargetSpecSubnetServiceEndpoint"},"description":"Target specification of the Service Endpoints\n"},"serviceRange":{"$ref":"#/types/ovh:index/getVrackservicessVrackservicessTargetSpecSubnetServiceRange:getVrackservicessVrackservicessTargetSpecSubnetServiceRange","description":"Defines a smaller subnet dedicated to the managed service IPs\n"},"vlan":{"type":"number","description":"Unique inner VLAN that allows subnets segregation. Authorized values: [2 - 4094] and `null` (untagged traffic)\n"}},"type":"object","required":["cidr","displayName","serviceEndpoints","serviceRange","vlan"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getVrackservicessVrackservicessTargetSpecSubnetServiceEndpoint:getVrackservicessVrackservicessTargetSpecSubnetServiceEndpoint":{"properties":{"managedServiceUrn":{"type":"string","description":"IAM Resource URN of the managed service. Managed service Region must match vRack Services Region. Compatible managed service types are listed by /reference/compatibleManagedServiceType call\n"}},"type":"object","required":["managedServiceUrn"],"language":{"nodejs":{"requiredInputs":[]}}},"ovh:index/getVrackservicessVrackservicessTargetSpecSubnetServiceRange:getVrackservicessVrackservicessTargetSpecSubnetServiceRange":{"properties":{"cidr":{"type":"string","description":"IP address range dedicated to the subnet's services in CIDR format. Must be a private network address (RFC1918). Must be a sub-network of the subnet. Authorized range for prefix length: /27 to /29\n"}},"type":"object","required":["cidr"],"language":{"nodejs":{"requiredInputs":[]}}}},"provider":{"description":"The provider type for the ovh package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n","properties":{"accessToken":{"type":"string","description":"The OVH API Access Token\n"},"apiRateLimit":{"type":"integer","description":"Specify the API request rate limit, X operations by seconds (default: unlimited)\n"},"applicationKey":{"type":"string","description":"The OVH API Application Key\n"},"applicationSecret":{"type":"string","description":"The OVH API Application Secret\n"},"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"},"endpoint":{"type":"string","description":"The OVH API endpoint to target (ex: \"ovh-eu\")\n"},"ignoreInitError":{"type":"boolean","description":"If set to true, initialization errors (like invalid OAuth credentials) will be ignored\n"},"userAgentExtra":{"type":"string","description":"Extra information to append to the user-agent\n"}},"inputProperties":{"accessToken":{"type":"string","description":"The OVH API Access Token\n"},"apiRateLimit":{"type":"integer","description":"Specify the API request rate limit, X operations by seconds (default: unlimited)\n"},"applicationKey":{"type":"string","description":"The OVH API Application Key\n"},"applicationSecret":{"type":"string","description":"The OVH API Application Secret\n"},"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"},"endpoint":{"type":"string","description":"The OVH API endpoint to target (ex: \"ovh-eu\")\n"},"ignoreInitError":{"type":"boolean","description":"If set to true, initialization errors (like invalid OAuth credentials) will be ignored\n"},"userAgentExtra":{"type":"string","description":"Extra information to append to the user-agent\n"}},"methods":{"terraformConfig":"pulumi:providers:ovh/terraformConfig"}},"resources":{"ovh:CloudProject/alerting:Alerting":{"description":"Creates an alert on a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst myAlert = new ovh.cloudproject.Alerting(\"my_alert\", {\n    serviceName: \"XXX\",\n    delay: 3600,\n    email: \"aaa.bbb@domain.com\",\n    monthlyThreshold: 1000,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_alert = ovh.cloudproject.Alerting(\"my_alert\",\n    service_name=\"XXX\",\n    delay=3600,\n    email=\"aaa.bbb@domain.com\",\n    monthly_threshold=1000)\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 myAlert = new Ovh.CloudProject.Alerting(\"my_alert\", new()\n    {\n        ServiceName = \"XXX\",\n        Delay = 3600,\n        Email = \"aaa.bbb@domain.com\",\n        MonthlyThreshold = 1000,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewAlerting(ctx, \"my_alert\", \u0026cloudproject.AlertingArgs{\n\t\t\tServiceName:      pulumi.String(\"XXX\"),\n\t\t\tDelay:            pulumi.Float64(3600),\n\t\t\tEmail:            pulumi.String(\"aaa.bbb@domain.com\"),\n\t\t\tMonthlyThreshold: pulumi.Float64(1000),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.CloudProject.Alerting;\nimport com.ovhcloud.pulumi.ovh.CloudProject.AlertingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myAlert = new Alerting(\"myAlert\", AlertingArgs.builder()\n            .serviceName(\"XXX\")\n            .delay(3600.0)\n            .email(\"aaa.bbb@domain.com\")\n            .monthlyThreshold(1000.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myAlert:\n    type: ovh:CloudProject:Alerting\n    name: my_alert\n    properties:\n      serviceName: XXX\n      delay: 3600\n      email: aaa.bbb@domain.com\n      monthlyThreshold: 1000\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"creationDate":{"type":"string","description":"Alerting creation date\n"},"delay":{"type":"number","description":"Delay between two alerts in seconds\n"},"email":{"type":"string","description":"Email to contact\n"},"formattedMonthlyThreshold":{"$ref":"#/types/ovh:CloudProject/AlertingFormattedMonthlyThreshold:AlertingFormattedMonthlyThreshold","description":"Formatted monthly threshold for this alerting\n"},"monthlyThreshold":{"type":"number","description":"Monthly threshold for this alerting in currency\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"required":["creationDate","delay","email","formattedMonthlyThreshold","monthlyThreshold"],"inputProperties":{"delay":{"type":"number","description":"Delay between two alerts in seconds\n"},"email":{"type":"string","description":"Email to contact\n"},"monthlyThreshold":{"type":"number","description":"Monthly threshold for this alerting in currency\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"requiredInputs":["delay","email","monthlyThreshold"],"stateInputs":{"description":"Input properties used for looking up and filtering Alerting resources.\n","properties":{"creationDate":{"type":"string","description":"Alerting creation date\n"},"delay":{"type":"number","description":"Delay between two alerts in seconds\n"},"email":{"type":"string","description":"Email to contact\n"},"formattedMonthlyThreshold":{"$ref":"#/types/ovh:CloudProject/AlertingFormattedMonthlyThreshold:AlertingFormattedMonthlyThreshold","description":"Formatted monthly threshold for this alerting\n"},"monthlyThreshold":{"type":"number","description":"Monthly threshold for this alerting in currency\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object"}},"ovh:CloudProject/containerRegistry:ContainerRegistry":{"description":"Creates a container registry associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst regcap = ovh.CloudProject.getCapabilitiesContainerFilter({\n    serviceName: \"XXXXXX\",\n    planName: \"SMALL\",\n    region: \"GRA\",\n});\nconst myRegistry = new ovh.cloudproject.ContainerRegistry(\"my_registry\", {\n    serviceName: regcap.then(regcap =\u003e regcap.serviceName),\n    planId: regcap.then(regcap =\u003e regcap.id),\n    region: regcap.then(regcap =\u003e regcap.region),\n    name: \"mydockerregistry\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nregcap = ovh.CloudProject.get_capabilities_container_filter(service_name=\"XXXXXX\",\n    plan_name=\"SMALL\",\n    region=\"GRA\")\nmy_registry = ovh.cloudproject.ContainerRegistry(\"my_registry\",\n    service_name=regcap.service_name,\n    plan_id=regcap.id,\n    region=regcap.region,\n    name=\"mydockerregistry\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var regcap = Ovh.CloudProject.GetCapabilitiesContainerFilter.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        PlanName = \"SMALL\",\n        Region = \"GRA\",\n    });\n\n    var myRegistry = new Ovh.CloudProject.ContainerRegistry(\"my_registry\", new()\n    {\n        ServiceName = regcap.Apply(getCapabilitiesContainerFilterResult =\u003e getCapabilitiesContainerFilterResult.ServiceName),\n        PlanId = regcap.Apply(getCapabilitiesContainerFilterResult =\u003e getCapabilitiesContainerFilterResult.Id),\n        Region = regcap.Apply(getCapabilitiesContainerFilterResult =\u003e getCapabilitiesContainerFilterResult.Region),\n        Name = \"mydockerregistry\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudproject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tregcap, err := cloudproject.GetCapabilitiesContainerFilter(ctx, \u0026cloudproject.GetCapabilitiesContainerFilterArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tPlanName:    \"SMALL\",\n\t\t\tRegion:      \"GRA\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudproject.NewContainerRegistry(ctx, \"my_registry\", \u0026cloudproject.ContainerRegistryArgs{\n\t\t\tServiceName: pulumi.String(regcap.ServiceName),\n\t\t\tPlanId:      pulumi.String(regcap.Id),\n\t\t\tRegion:      pulumi.String(regcap.Region),\n\t\t\tName:        pulumi.String(\"mydockerregistry\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetCapabilitiesContainerFilterArgs;\nimport com.ovhcloud.pulumi.ovh.CloudProject.ContainerRegistry;\nimport com.ovhcloud.pulumi.ovh.CloudProject.ContainerRegistryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var regcap = CloudProjectFunctions.getCapabilitiesContainerFilter(GetCapabilitiesContainerFilterArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .planName(\"SMALL\")\n            .region(\"GRA\")\n            .build());\n\n        var myRegistry = new ContainerRegistry(\"myRegistry\", ContainerRegistryArgs.builder()\n            .serviceName(regcap.serviceName())\n            .planId(regcap.id())\n            .region(regcap.region())\n            .name(\"mydockerregistry\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myRegistry:\n    type: ovh:CloudProject:ContainerRegistry\n    name: my_registry\n    properties:\n      serviceName: ${regcap.serviceName}\n      planId: ${regcap.id}\n      region: ${regcap.region}\n      name: mydockerregistry\nvariables:\n  regcap:\n    fn::invoke:\n      function: ovh:CloudProject:getCapabilitiesContainerFilter\n      arguments:\n        serviceName: XXXXXX\n        planName: SMALL\n        region: GRA\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003e **WARNING** You can update and migrate to a higher plan at any time but not the contrary.\n\n## Import\n\nOVHcloud Managed Private Registry can be imported using the `service_name` and `id` of the registry, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProject/containerRegistry:ContainerRegistry my_registry service_name/registry_id\n```\n\n","properties":{"createdAt":{"type":"string","description":"Plan creation date\n"},"iamEnabled":{"type":"boolean","description":"OVHCloud IAM enabled\n"},"name":{"type":"string","description":"Registry name\n"},"planId":{"type":"string","description":"Plan ID of the registry\n"},"plans":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/ContainerRegistryPlan:ContainerRegistryPlan"},"description":"Plan of the registry\n"},"projectId":{"type":"string","description":"Project ID of your registry\n"},"region":{"type":"string","description":"Region of the registry\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"size":{"type":"integer","description":"Current size of the registry (bytes)\n"},"status":{"type":"string","description":"Registry status\n"},"updatedAt":{"type":"string","description":"Registry last update date\n"},"url":{"type":"string","description":"Access url of the registry\n"},"version":{"type":"string","description":"Version of your registry\n"}},"required":["createdAt","iamEnabled","name","plans","planId","projectId","region","serviceName","size","status","updatedAt","url","version"],"inputProperties":{"name":{"type":"string","description":"Registry name\n"},"planId":{"type":"string","description":"Plan ID of the registry\n"},"region":{"type":"string","description":"Region of the registry\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"requiredInputs":["region"],"stateInputs":{"description":"Input properties used for looking up and filtering ContainerRegistry resources.\n","properties":{"createdAt":{"type":"string","description":"Plan creation date\n"},"iamEnabled":{"type":"boolean","description":"OVHCloud IAM enabled\n"},"name":{"type":"string","description":"Registry name\n"},"planId":{"type":"string","description":"Plan ID of the registry\n"},"plans":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/ContainerRegistryPlan:ContainerRegistryPlan"},"description":"Plan of the registry\n"},"projectId":{"type":"string","description":"Project ID of your registry\n"},"region":{"type":"string","description":"Region of the registry\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"size":{"type":"integer","description":"Current size of the registry (bytes)\n"},"status":{"type":"string","description":"Registry status\n"},"updatedAt":{"type":"string","description":"Registry last update date\n"},"url":{"type":"string","description":"Access url of the registry\n"},"version":{"type":"string","description":"Version of your registry\n"}},"type":"object"}},"ovh:CloudProject/containerRegistryIPRestrictionsManagement:ContainerRegistryIPRestrictionsManagement":{"description":"Apply IP restrictions container registry associated with a public cloud project on Harbor UI and API.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst registry = ovh.CloudProject.getContainerRegistry({\n    serviceName: \"XXXXXX\",\n    registryId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n});\nconst myMgtIprestrictions = new ovh.cloudproject.ContainerRegistryIPRestrictionsManagement(\"my_mgt_iprestrictions\", {\n    serviceName: registryOvhCloudProjectContainerregistry.serviceName,\n    registryId: registryOvhCloudProjectContainerregistry.id,\n    ipRestrictions: [{\n        ip_block: \"xxx.xxx.xxx.xxx/xx\",\n        description: \"xxxxxxx\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nregistry = ovh.CloudProject.get_container_registry(service_name=\"XXXXXX\",\n    registry_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\nmy_mgt_iprestrictions = ovh.cloudproject.ContainerRegistryIPRestrictionsManagement(\"my_mgt_iprestrictions\",\n    service_name=registry_ovh_cloud_project_containerregistry[\"serviceName\"],\n    registry_id=registry_ovh_cloud_project_containerregistry[\"id\"],\n    ip_restrictions=[{\n        \"ip_block\": \"xxx.xxx.xxx.xxx/xx\",\n        \"description\": \"xxxxxxx\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var registry = Ovh.CloudProject.GetContainerRegistry.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        RegistryId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n    });\n\n    var myMgtIprestrictions = new Ovh.CloudProject.ContainerRegistryIPRestrictionsManagement(\"my_mgt_iprestrictions\", new()\n    {\n        ServiceName = registryOvhCloudProjectContainerregistry.ServiceName,\n        RegistryId = registryOvhCloudProjectContainerregistry.Id,\n        IpRestrictions = new[]\n        {\n            \n            {\n                { \"ip_block\", \"xxx.xxx.xxx.xxx/xx\" },\n                { \"description\", \"xxxxxxx\" },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudproject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudproject.GetContainerRegistry(ctx, \u0026cloudproject.GetContainerRegistryArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tRegistryId:  \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudproject.NewContainerRegistryIPRestrictionsManagement(ctx, \"my_mgt_iprestrictions\", \u0026cloudproject.ContainerRegistryIPRestrictionsManagementArgs{\n\t\t\tServiceName: pulumi.Any(registryOvhCloudProjectContainerregistry.ServiceName),\n\t\t\tRegistryId:  pulumi.Any(registryOvhCloudProjectContainerregistry.Id),\n\t\t\tIpRestrictions: pulumi.StringMapArray{\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"ip_block\":    pulumi.String(\"xxx.xxx.xxx.xxx/xx\"),\n\t\t\t\t\t\"description\": pulumi.String(\"xxxxxxx\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetContainerRegistryArgs;\nimport com.ovhcloud.pulumi.ovh.CloudProject.ContainerRegistryIPRestrictionsManagement;\nimport com.ovhcloud.pulumi.ovh.CloudProject.ContainerRegistryIPRestrictionsManagementArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var registry = CloudProjectFunctions.getContainerRegistry(GetContainerRegistryArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .registryId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\n            .build());\n\n        var myMgtIprestrictions = new ContainerRegistryIPRestrictionsManagement(\"myMgtIprestrictions\", ContainerRegistryIPRestrictionsManagementArgs.builder()\n            .serviceName(registryOvhCloudProjectContainerregistry.serviceName())\n            .registryId(registryOvhCloudProjectContainerregistry.id())\n            .ipRestrictions(Map.ofEntries(\n                Map.entry(\"ip_block\", \"xxx.xxx.xxx.xxx/xx\"),\n                Map.entry(\"description\", \"xxxxxxx\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myMgtIprestrictions:\n    type: ovh:CloudProject:ContainerRegistryIPRestrictionsManagement\n    name: my_mgt_iprestrictions\n    properties:\n      serviceName: ${registryOvhCloudProjectContainerregistry.serviceName}\n      registryId: ${registryOvhCloudProjectContainerregistry.id}\n      ipRestrictions:\n        - ip_block: xxx.xxx.xxx.xxx/xx\n          description: xxxxxxx\nvariables:\n  registry:\n    fn::invoke:\n      function: ovh:CloudProject:getContainerRegistry\n      arguments:\n        serviceName: XXXXXX\n        registryId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed Private Registry IP restrictions of management type can be imported using the `service_name` and `registry_id`, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProject/containerRegistryIPRestrictionsManagement:ContainerRegistryIPRestrictionsManagement my_ip_restrictions service_name/registry_id\n```\n\n","properties":{"ipRestrictions":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"IP restrictions applied on Harbor UI and API.\n"},"registryId":{"type":"string","description":"The id of the Managed Private Registry.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"required":["ipRestrictions","registryId","serviceName"],"inputProperties":{"ipRestrictions":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"IP restrictions applied on Harbor UI and API.\n"},"registryId":{"type":"string","description":"The id of the Managed Private Registry.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"requiredInputs":["ipRestrictions","registryId"],"stateInputs":{"description":"Input properties used for looking up and filtering ContainerRegistryIPRestrictionsManagement resources.\n","properties":{"ipRestrictions":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"IP restrictions applied on Harbor UI and API.\n"},"registryId":{"type":"string","description":"The id of the Managed Private Registry.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:CloudProject/containerRegistryIPRestrictionsRegistry:ContainerRegistryIPRestrictionsRegistry":{"description":"Apply IP restrictions container registry associated with a public cloud project on artifact manager component.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst registry = ovh.CloudProject.getContainerRegistry({\n    serviceName: \"XXXXXX\",\n    registryId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n});\nconst myRegistryIprestrictions = new ovh.cloudproject.ContainerRegistryIPRestrictionsRegistry(\"my_registry_iprestrictions\", {\n    serviceName: registryOvhCloudProjectContainerregistry.serviceName,\n    registryId: registryOvhCloudProjectContainerregistry.id,\n    ipRestrictions: [{\n        ip_block: \"xxx.xxx.xxx.xxx/xx\",\n        description: \"xxxxxxx\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nregistry = ovh.CloudProject.get_container_registry(service_name=\"XXXXXX\",\n    registry_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\nmy_registry_iprestrictions = ovh.cloudproject.ContainerRegistryIPRestrictionsRegistry(\"my_registry_iprestrictions\",\n    service_name=registry_ovh_cloud_project_containerregistry[\"serviceName\"],\n    registry_id=registry_ovh_cloud_project_containerregistry[\"id\"],\n    ip_restrictions=[{\n        \"ip_block\": \"xxx.xxx.xxx.xxx/xx\",\n        \"description\": \"xxxxxxx\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var registry = Ovh.CloudProject.GetContainerRegistry.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        RegistryId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n    });\n\n    var myRegistryIprestrictions = new Ovh.CloudProject.ContainerRegistryIPRestrictionsRegistry(\"my_registry_iprestrictions\", new()\n    {\n        ServiceName = registryOvhCloudProjectContainerregistry.ServiceName,\n        RegistryId = registryOvhCloudProjectContainerregistry.Id,\n        IpRestrictions = new[]\n        {\n            \n            {\n                { \"ip_block\", \"xxx.xxx.xxx.xxx/xx\" },\n                { \"description\", \"xxxxxxx\" },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudproject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudproject.GetContainerRegistry(ctx, \u0026cloudproject.GetContainerRegistryArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tRegistryId:  \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudproject.NewContainerRegistryIPRestrictionsRegistry(ctx, \"my_registry_iprestrictions\", \u0026cloudproject.ContainerRegistryIPRestrictionsRegistryArgs{\n\t\t\tServiceName: pulumi.Any(registryOvhCloudProjectContainerregistry.ServiceName),\n\t\t\tRegistryId:  pulumi.Any(registryOvhCloudProjectContainerregistry.Id),\n\t\t\tIpRestrictions: pulumi.StringMapArray{\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"ip_block\":    pulumi.String(\"xxx.xxx.xxx.xxx/xx\"),\n\t\t\t\t\t\"description\": pulumi.String(\"xxxxxxx\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetContainerRegistryArgs;\nimport com.ovhcloud.pulumi.ovh.CloudProject.ContainerRegistryIPRestrictionsRegistry;\nimport com.ovhcloud.pulumi.ovh.CloudProject.ContainerRegistryIPRestrictionsRegistryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var registry = CloudProjectFunctions.getContainerRegistry(GetContainerRegistryArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .registryId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\n            .build());\n\n        var myRegistryIprestrictions = new ContainerRegistryIPRestrictionsRegistry(\"myRegistryIprestrictions\", ContainerRegistryIPRestrictionsRegistryArgs.builder()\n            .serviceName(registryOvhCloudProjectContainerregistry.serviceName())\n            .registryId(registryOvhCloudProjectContainerregistry.id())\n            .ipRestrictions(Map.ofEntries(\n                Map.entry(\"ip_block\", \"xxx.xxx.xxx.xxx/xx\"),\n                Map.entry(\"description\", \"xxxxxxx\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myRegistryIprestrictions:\n    type: ovh:CloudProject:ContainerRegistryIPRestrictionsRegistry\n    name: my_registry_iprestrictions\n    properties:\n      serviceName: ${registryOvhCloudProjectContainerregistry.serviceName}\n      registryId: ${registryOvhCloudProjectContainerregistry.id}\n      ipRestrictions:\n        - ip_block: xxx.xxx.xxx.xxx/xx\n          description: xxxxxxx\nvariables:\n  registry:\n    fn::invoke:\n      function: ovh:CloudProject:getContainerRegistry\n      arguments:\n        serviceName: XXXXXX\n        registryId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed Private Registry IP restrictions of registry type can be imported using the `service_name` and `registry_id`, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProject/containerRegistryIPRestrictionsRegistry:ContainerRegistryIPRestrictionsRegistry my_ip_restrictions service_name/registry_id\n```\n\n","properties":{"ipRestrictions":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"IP restrictions applied on artifact manager component.\n"},"registryId":{"type":"string","description":"The id of the Managed Private Registry.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"required":["ipRestrictions","registryId","serviceName"],"inputProperties":{"ipRestrictions":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"IP restrictions applied on artifact manager component.\n"},"registryId":{"type":"string","description":"The id of the Managed Private Registry.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"requiredInputs":["ipRestrictions","registryId"],"stateInputs":{"description":"Input properties used for looking up and filtering ContainerRegistryIPRestrictionsRegistry resources.\n","properties":{"ipRestrictions":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"IP restrictions applied on artifact manager component.\n"},"registryId":{"type":"string","description":"The id of the Managed Private Registry.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:CloudProject/containerRegistryOIDC:ContainerRegistryOIDC":{"description":"Creates an OIDC configuration in an OVHcloud Managed Private Registry.\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 myOidc = new ovh.cloudproject.ContainerRegistryOIDC(\"my_oidc\", {\n    serviceName: \"XXXXXX\",\n    registryId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n    oidcName: \"my-oidc-provider\",\n    oidcEndpoint: \"https://xxxx.yyy.com\",\n    oidcClientId: \"xxx\",\n    oidcClientSecret: \"xxx\",\n    oidcScope: \"openid,profile,email,offline_access\",\n    oidcGroupFilter: \"harbor-admin\",\n    oidcGroupsClaim: \"groups\",\n    oidcAdminGroup: \"harbor-admin\",\n    oidcVerifyCert: true,\n    oidcAutoOnboard: true,\n    oidcUserClaim: \"preferred_username\",\n    deleteUsers: false,\n});\nexport const oidcClientSecret = myOidc.oidcClientSecret;\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_oidc = ovh.cloudproject.ContainerRegistryOIDC(\"my_oidc\",\n    service_name=\"XXXXXX\",\n    registry_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n    oidc_name=\"my-oidc-provider\",\n    oidc_endpoint=\"https://xxxx.yyy.com\",\n    oidc_client_id=\"xxx\",\n    oidc_client_secret=\"xxx\",\n    oidc_scope=\"openid,profile,email,offline_access\",\n    oidc_group_filter=\"harbor-admin\",\n    oidc_groups_claim=\"groups\",\n    oidc_admin_group=\"harbor-admin\",\n    oidc_verify_cert=True,\n    oidc_auto_onboard=True,\n    oidc_user_claim=\"preferred_username\",\n    delete_users=False)\npulumi.export(\"oidcClientSecret\", my_oidc.oidc_client_secret)\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 myOidc = new Ovh.CloudProject.ContainerRegistryOIDC(\"my_oidc\", new()\n    {\n        ServiceName = \"XXXXXX\",\n        RegistryId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n        OidcName = \"my-oidc-provider\",\n        OidcEndpoint = \"https://xxxx.yyy.com\",\n        OidcClientId = \"xxx\",\n        OidcClientSecret = \"xxx\",\n        OidcScope = \"openid,profile,email,offline_access\",\n        OidcGroupFilter = \"harbor-admin\",\n        OidcGroupsClaim = \"groups\",\n        OidcAdminGroup = \"harbor-admin\",\n        OidcVerifyCert = true,\n        OidcAutoOnboard = true,\n        OidcUserClaim = \"preferred_username\",\n        DeleteUsers = false,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"oidcClientSecret\"] = myOidc.OidcClientSecret,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tmyOidc, err := cloudproject.NewContainerRegistryOIDC(ctx, \"my_oidc\", \u0026cloudproject.ContainerRegistryOIDCArgs{\n\t\t\tServiceName:      pulumi.String(\"XXXXXX\"),\n\t\t\tRegistryId:       pulumi.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\"),\n\t\t\tOidcName:         pulumi.String(\"my-oidc-provider\"),\n\t\t\tOidcEndpoint:     pulumi.String(\"https://xxxx.yyy.com\"),\n\t\t\tOidcClientId:     pulumi.String(\"xxx\"),\n\t\t\tOidcClientSecret: pulumi.String(\"xxx\"),\n\t\t\tOidcScope:        pulumi.String(\"openid,profile,email,offline_access\"),\n\t\t\tOidcGroupFilter:  pulumi.String(\"harbor-admin\"),\n\t\t\tOidcGroupsClaim:  pulumi.String(\"groups\"),\n\t\t\tOidcAdminGroup:   pulumi.String(\"harbor-admin\"),\n\t\t\tOidcVerifyCert:   pulumi.Bool(true),\n\t\t\tOidcAutoOnboard:  pulumi.Bool(true),\n\t\t\tOidcUserClaim:    pulumi.String(\"preferred_username\"),\n\t\t\tDeleteUsers:      pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"oidcClientSecret\", myOidc.OidcClientSecret)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.CloudProject.ContainerRegistryOIDC;\nimport com.ovhcloud.pulumi.ovh.CloudProject.ContainerRegistryOIDCArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myOidc = new ContainerRegistryOIDC(\"myOidc\", ContainerRegistryOIDCArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .registryId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\n            .oidcName(\"my-oidc-provider\")\n            .oidcEndpoint(\"https://xxxx.yyy.com\")\n            .oidcClientId(\"xxx\")\n            .oidcClientSecret(\"xxx\")\n            .oidcScope(\"openid,profile,email,offline_access\")\n            .oidcGroupFilter(\"harbor-admin\")\n            .oidcGroupsClaim(\"groups\")\n            .oidcAdminGroup(\"harbor-admin\")\n            .oidcVerifyCert(true)\n            .oidcAutoOnboard(true)\n            .oidcUserClaim(\"preferred_username\")\n            .deleteUsers(false)\n            .build());\n\n        ctx.export(\"oidcClientSecret\", myOidc.oidcClientSecret());\n    }\n}\n```\n```yaml\nresources:\n  myOidc:\n    type: ovh:CloudProject:ContainerRegistryOIDC\n    name: my_oidc\n    properties:\n      serviceName: XXXXXX\n      registryId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\n      oidcName: my-oidc-provider\n      oidcEndpoint: https://xxxx.yyy.com\n      oidcClientId: xxx\n      oidcClientSecret: xxx\n      oidcScope: openid,profile,email,offline_access\n      oidcGroupFilter: harbor-admin\n      oidcGroupsClaim: groups\n      oidcAdminGroup: harbor-admin\n      oidcVerifyCert: true\n      oidcAutoOnboard: true\n      oidcUserClaim: preferred_username\n      deleteUsers: false\noutputs:\n  oidcClientSecret: ${myOidc.oidcClientSecret}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed Private Registry OIDC can be imported using the tenant `service_name` and registry id `registry_id` separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProject/containerRegistryOIDC:ContainerRegistryOIDC my-oidc service_name/registry_id\n```\n\n","properties":{"deleteUsers":{"type":"boolean","description":"Delete existing users from Harbor. OIDC can't be enabled if there is at least one user already created. This parameter is only used at OIDC configuration creation. **Changing this value recreates the resource.**\n"},"oidcAdminGroup":{"type":"string","description":"Specify an OIDC admin group name. All OIDC users in this group will have harbor admin privilege. Keep it blank if you do not want to.\n"},"oidcAutoOnboard":{"type":"boolean","description":"Skip the onboarding screen, so user cannot change its username. Username is provided from ID Token.\n"},"oidcClientId":{"type":"string","description":"The client ID with which Harbor is registered as client application with the OIDC provider.\n"},"oidcClientSecret":{"type":"string","description":"The secret for the Harbor client application.\n","secret":true},"oidcEndpoint":{"type":"string","description":"The URL of an OIDC-compliant server.\n"},"oidcGroupFilter":{"type":"string","description":"The regular expression to select matching groups from the Group Claim Name list. Matching groups are added to Harbor. This filter does not limit the users’ capability to log in into Harbor.\n"},"oidcGroupsClaim":{"type":"string","description":"The name of Claim in the ID token whose value is the list of group names.\n"},"oidcName":{"type":"string","description":"The name of the OIDC provider.\n"},"oidcScope":{"type":"string","description":"The scope sent to OIDC server during authentication. It's a comma-separated string that must contain 'openid' and usually also contains 'profile' and 'email'. To obtain refresh tokens it should also contain 'offline_access'.\n"},"oidcUserClaim":{"type":"string","description":"The name of the claim in the ID Token where the username is retrieved from. If not specified, it will default to 'name' (only useful when automatic Onboarding is enabled).\n"},"oidcVerifyCert":{"type":"boolean","description":"Set it to `false` if your OIDC server is hosted via self-signed certificate.\n"},"registryId":{"type":"string","description":"The ID of the Managed Private Registry. **Changing this value recreates the resource.**\n"},"serviceName":{"type":"string","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.**\n"}},"required":["oidcClientId","oidcClientSecret","oidcEndpoint","oidcName","oidcScope","oidcVerifyCert","registryId","serviceName"],"inputProperties":{"deleteUsers":{"type":"boolean","description":"Delete existing users from Harbor. OIDC can't be enabled if there is at least one user already created. This parameter is only used at OIDC configuration creation. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"oidcAdminGroup":{"type":"string","description":"Specify an OIDC admin group name. All OIDC users in this group will have harbor admin privilege. Keep it blank if you do not want to.\n"},"oidcAutoOnboard":{"type":"boolean","description":"Skip the onboarding screen, so user cannot change its username. Username is provided from ID Token.\n"},"oidcClientId":{"type":"string","description":"The client ID with which Harbor is registered as client application with the OIDC provider.\n"},"oidcClientSecret":{"type":"string","description":"The secret for the Harbor client application.\n","secret":true},"oidcEndpoint":{"type":"string","description":"The URL of an OIDC-compliant server.\n"},"oidcGroupFilter":{"type":"string","description":"The regular expression to select matching groups from the Group Claim Name list. Matching groups are added to Harbor. This filter does not limit the users’ capability to log in into Harbor.\n"},"oidcGroupsClaim":{"type":"string","description":"The name of Claim in the ID token whose value is the list of group names.\n"},"oidcName":{"type":"string","description":"The name of the OIDC provider.\n"},"oidcScope":{"type":"string","description":"The scope sent to OIDC server during authentication. It's a comma-separated string that must contain 'openid' and usually also contains 'profile' and 'email'. To obtain refresh tokens it should also contain 'offline_access'.\n"},"oidcUserClaim":{"type":"string","description":"The name of the claim in the ID Token where the username is retrieved from. If not specified, it will default to 'name' (only useful when automatic Onboarding is enabled).\n"},"oidcVerifyCert":{"type":"boolean","description":"Set it to `false` if your OIDC server is hosted via self-signed certificate.\n"},"registryId":{"type":"string","description":"The ID of the Managed Private Registry. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true}},"requiredInputs":["oidcClientId","oidcClientSecret","oidcEndpoint","oidcName","oidcScope","registryId"],"stateInputs":{"description":"Input properties used for looking up and filtering ContainerRegistryOIDC resources.\n","properties":{"deleteUsers":{"type":"boolean","description":"Delete existing users from Harbor. OIDC can't be enabled if there is at least one user already created. This parameter is only used at OIDC configuration creation. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"oidcAdminGroup":{"type":"string","description":"Specify an OIDC admin group name. All OIDC users in this group will have harbor admin privilege. Keep it blank if you do not want to.\n"},"oidcAutoOnboard":{"type":"boolean","description":"Skip the onboarding screen, so user cannot change its username. Username is provided from ID Token.\n"},"oidcClientId":{"type":"string","description":"The client ID with which Harbor is registered as client application with the OIDC provider.\n"},"oidcClientSecret":{"type":"string","description":"The secret for the Harbor client application.\n","secret":true},"oidcEndpoint":{"type":"string","description":"The URL of an OIDC-compliant server.\n"},"oidcGroupFilter":{"type":"string","description":"The regular expression to select matching groups from the Group Claim Name list. Matching groups are added to Harbor. This filter does not limit the users’ capability to log in into Harbor.\n"},"oidcGroupsClaim":{"type":"string","description":"The name of Claim in the ID token whose value is the list of group names.\n"},"oidcName":{"type":"string","description":"The name of the OIDC provider.\n"},"oidcScope":{"type":"string","description":"The scope sent to OIDC server during authentication. It's a comma-separated string that must contain 'openid' and usually also contains 'profile' and 'email'. To obtain refresh tokens it should also contain 'offline_access'.\n"},"oidcUserClaim":{"type":"string","description":"The name of the claim in the ID Token where the username is retrieved from. If not specified, it will default to 'name' (only useful when automatic Onboarding is enabled).\n"},"oidcVerifyCert":{"type":"boolean","description":"Set it to `false` if your OIDC server is hosted via self-signed certificate.\n"},"registryId":{"type":"string","description":"The ID of the Managed Private Registry. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:CloudProject/containerRegistryUser:ContainerRegistryUser":{"description":"Creates a user for a container registry associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst registry = ovh.CloudProject.getContainerRegistry({\n    serviceName: \"XXXXXX\",\n    registryId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n});\nconst user = new ovh.cloudproject.ContainerRegistryUser(\"user\", {\n    serviceName: registryOvhCloudProjectContainerregistry.serviceName,\n    registryId: registryOvhCloudProjectContainerregistry.id,\n    email: \"foo@bar.com\",\n    login: \"foobar\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nregistry = ovh.CloudProject.get_container_registry(service_name=\"XXXXXX\",\n    registry_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\nuser = ovh.cloudproject.ContainerRegistryUser(\"user\",\n    service_name=registry_ovh_cloud_project_containerregistry[\"serviceName\"],\n    registry_id=registry_ovh_cloud_project_containerregistry[\"id\"],\n    email=\"foo@bar.com\",\n    login=\"foobar\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var registry = Ovh.CloudProject.GetContainerRegistry.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        RegistryId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n    });\n\n    var user = new Ovh.CloudProject.ContainerRegistryUser(\"user\", new()\n    {\n        ServiceName = registryOvhCloudProjectContainerregistry.ServiceName,\n        RegistryId = registryOvhCloudProjectContainerregistry.Id,\n        Email = \"foo@bar.com\",\n        Login = \"foobar\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudproject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudproject.GetContainerRegistry(ctx, \u0026cloudproject.GetContainerRegistryArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tRegistryId:  \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudproject.NewContainerRegistryUser(ctx, \"user\", \u0026cloudproject.ContainerRegistryUserArgs{\n\t\t\tServiceName: pulumi.Any(registryOvhCloudProjectContainerregistry.ServiceName),\n\t\t\tRegistryId:  pulumi.Any(registryOvhCloudProjectContainerregistry.Id),\n\t\t\tEmail:       pulumi.String(\"foo@bar.com\"),\n\t\t\tLogin:       pulumi.String(\"foobar\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetContainerRegistryArgs;\nimport com.ovhcloud.pulumi.ovh.CloudProject.ContainerRegistryUser;\nimport com.ovhcloud.pulumi.ovh.CloudProject.ContainerRegistryUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var registry = CloudProjectFunctions.getContainerRegistry(GetContainerRegistryArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .registryId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\n            .build());\n\n        var user = new ContainerRegistryUser(\"user\", ContainerRegistryUserArgs.builder()\n            .serviceName(registryOvhCloudProjectContainerregistry.serviceName())\n            .registryId(registryOvhCloudProjectContainerregistry.id())\n            .email(\"foo@bar.com\")\n            .login(\"foobar\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  user:\n    type: ovh:CloudProject:ContainerRegistryUser\n    properties:\n      serviceName: ${registryOvhCloudProjectContainerregistry.serviceName}\n      registryId: ${registryOvhCloudProjectContainerregistry.id}\n      email: foo@bar.com\n      login: foobar\nvariables:\n  registry:\n    fn::invoke:\n      function: ovh:CloudProject:getContainerRegistry\n      arguments:\n        serviceName: XXXXXX\n        registryId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed Private Registry user can be imported using the `service_name`, `registry_id` and `id` of the user, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProject/containerRegistryUser:ContainerRegistryUser my_user service_name/registry_id/user_id\n```\n\n","properties":{"email":{"type":"string","description":"User email\n"},"login":{"type":"string","description":"User name\n"},"password":{"type":"string","description":"(Sensitive) User password\n","secret":true},"registryId":{"type":"string","description":"Registry ID\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"user":{"type":"string","description":"User name (same as `login`)\n"}},"required":["email","login","password","registryId","serviceName","user"],"inputProperties":{"email":{"type":"string","description":"User email\n","willReplaceOnChanges":true},"login":{"type":"string","description":"User name\n","willReplaceOnChanges":true},"registryId":{"type":"string","description":"Registry ID\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"requiredInputs":["email","login","registryId"],"stateInputs":{"description":"Input properties used for looking up and filtering ContainerRegistryUser resources.\n","properties":{"email":{"type":"string","description":"User email\n","willReplaceOnChanges":true},"login":{"type":"string","description":"User name\n","willReplaceOnChanges":true},"password":{"type":"string","description":"(Sensitive) User password\n","secret":true},"registryId":{"type":"string","description":"Registry ID\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"user":{"type":"string","description":"User name (same as `login`)\n"}},"type":"object"}},"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.8\",\n    flavor: \"db1-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});\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});\nconst valkeydb = new ovh.cloudproject.Database(\"valkeydb\", {\n    serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    description: \"my-first-valkey\",\n    engine: \"valkey\",\n    version: \"8.0\",\n    plan: \"essential\",\n    nodes: [{\n        region: \"BHS\",\n    }],\n    flavor: \"db1-4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ncassandradb = ovh.cloudproject.Database(\"cassandradb\",\n    service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    description=\"my-first-cassandra\",\n    engine=\"cassandra\",\n    version=\"4.0\",\n    plan=\"essential\",\n    nodes=[\n        {\n            \"region\": \"BHS\",\n        },\n        {\n            \"region\": \"BHS\",\n        },\n        {\n            \"region\": \"BHS\",\n        },\n    ],\n    flavor=\"db1-4\")\nkafkadb = ovh.cloudproject.Database(\"kafkadb\",\n    service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    description=\"my-first-kafka\",\n    engine=\"kafka\",\n    version=\"3.8\",\n    flavor=\"db1-4\",\n    plan=\"business\",\n    kafka_rest_api=True,\n    kafka_schema_registry=True,\n    nodes=[\n        {\n            \"region\": \"DE\",\n        },\n        {\n            \"region\": \"DE\",\n        },\n        {\n            \"region\": \"DE\",\n        },\n    ])\nm3db = ovh.cloudproject.Database(\"m3db\",\n    service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    description=\"my-first-m3db\",\n    engine=\"m3db\",\n    version=\"1.2\",\n    plan=\"essential\",\n    nodes=[{\n        \"region\": \"BHS\",\n    }],\n    flavor=\"db1-7\")\nmongodb = ovh.cloudproject.Database(\"mongodb\",\n    service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    description=\"my-first-mongodb\",\n    engine=\"mongodb\",\n    version=\"5.0\",\n    plan=\"discovery\",\n    nodes=[{\n        \"region\": \"GRA\",\n    }],\n    flavor=\"db1-2\")\nmysqldb = ovh.cloudproject.Database(\"mysqldb\",\n    service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    description=\"my-first-mysql\",\n    engine=\"mysql\",\n    version=\"8\",\n    plan=\"essential\",\n    nodes=[{\n        \"region\": \"SBG\",\n    }],\n    flavor=\"db1-4\",\n    advanced_configuration={\n        \"mysql.sql_mode\": \"ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES\",\n        \"mysql.sql_require_primary_key\": \"true\",\n    })\nopensearchdb = ovh.cloudproject.Database(\"opensearchdb\",\n    service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    description=\"my-first-opensearch\",\n    engine=\"opensearch\",\n    version=\"1\",\n    plan=\"essential\",\n    opensearch_acls_enabled=True,\n    nodes=[{\n        \"region\": \"UK\",\n    }],\n    flavor=\"db1-4\")\npgsqldb = ovh.cloudproject.Database(\"pgsqldb\",\n    service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    description=\"my-first-postgresql\",\n    engine=\"postgresql\",\n    version=\"14\",\n    plan=\"essential\",\n    nodes=[{\n        \"region\": \"WAW\",\n    }],\n    flavor=\"db1-4\",\n    ip_restrictions=[\n        {\n            \"description\": \"ip 1\",\n            \"ip\": \"178.97.6.0/24\",\n        },\n        {\n            \"description\": \"ip 2\",\n            \"ip\": \"178.97.7.0/24\",\n        },\n    ])\nredisdb = ovh.cloudproject.Database(\"redisdb\",\n    service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    description=\"my-first-redis\",\n    engine=\"redis\",\n    version=\"6.2\",\n    plan=\"essential\",\n    nodes=[{\n        \"region\": \"BHS\",\n    }],\n    flavor=\"db1-4\")\ngrafana = ovh.cloudproject.Database(\"grafana\",\n    service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    description=\"my-first-grafana\",\n    engine=\"grafana\",\n    version=\"9.1\",\n    plan=\"essential\",\n    nodes=[{\n        \"region\": \"GRA\",\n    }],\n    flavor=\"db1-4\")\nvalkeydb = ovh.cloudproject.Database(\"valkeydb\",\n    service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    description=\"my-first-valkey\",\n    engine=\"valkey\",\n    version=\"8.0\",\n    plan=\"essential\",\n    nodes=[{\n        \"region\": \"BHS\",\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.8\",\n        Flavor = \"db1-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    });\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    var valkeydb = new Ovh.CloudProject.Database(\"valkeydb\", new()\n    {\n        ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n        Description = \"my-first-valkey\",\n        Engine = \"valkey\",\n        Version = \"8.0\",\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});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.8\"),\n\t\t\tFlavor:              pulumi.String(\"db1-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})\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\t_, err = cloudproject.NewDatabase(ctx, \"valkeydb\", \u0026cloudproject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-valkey\"),\n\t\t\tEngine:      pulumi.String(\"valkey\"),\n\t\t\tVersion:     pulumi.String(\"8.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},\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.ovhcloud.pulumi.ovh.CloudProject.Database;\nimport com.ovhcloud.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.8\")\n            .flavor(\"db1-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            .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        var valkeydb = new Database(\"valkeydb\", DatabaseArgs.builder()\n            .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n            .description(\"my-first-valkey\")\n            .engine(\"valkey\")\n            .version(\"8.0\")\n            .plan(\"essential\")\n            .nodes(DatabaseNodeArgs.builder()\n                .region(\"BHS\")\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.8'\n      flavor: db1-4\n      plan: business\n      kafkaRestApi: true\n      kafkaSchemaRegistry: true\n      nodes:\n        - region: DE\n        - region: DE\n        - region: DE\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  valkeydb:\n    type: ovh:CloudProject:Database\n    properties:\n      serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n      description: my-first-valkey\n      engine: valkey\n      version: '8.0'\n      plan: essential\n      nodes:\n        - region: BHS\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    serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    description: \"my-first-postgresql\",\n    engine: \"postgresql\",\n    version: \"14\",\n    plan: \"business\",\n    nodes: [\n        {\n            region: \"GRA\",\n        },\n        {\n            region: \"GRA\",\n        },\n    ],\n    flavor: \"db1-15\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\npostgresql = ovh.cloudproject.Database(\"postgresql\",\n    service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    description=\"my-first-postgresql\",\n    engine=\"postgresql\",\n    version=\"14\",\n    plan=\"business\",\n    nodes=[\n        {\n            \"region\": \"GRA\",\n        },\n        {\n            \"region\": \"GRA\",\n        },\n    ],\n    flavor=\"db1-15\")\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        ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n        Description = \"my-first-postgresql\",\n        Engine = \"postgresql\",\n        Version = \"14\",\n        Plan = \"business\",\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        Flavor = \"db1-15\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\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(\"business\"),\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\tFlavor: pulumi.String(\"db1-15\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.CloudProject.Database;\nimport com.ovhcloud.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            .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n            .description(\"my-first-postgresql\")\n            .engine(\"postgresql\")\n            .version(\"14\")\n            .plan(\"business\")\n            .nodes(            \n                DatabaseNodeArgs.builder()\n                    .region(\"GRA\")\n                    .build(),\n                DatabaseNodeArgs.builder()\n                    .region(\"GRA\")\n                    .build())\n            .flavor(\"db1-15\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  postgresql:\n    type: ovh:CloudProject:Database\n    properties:\n      serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n      description: my-first-postgresql\n      engine: postgresql\n      version: '14'\n      plan: business\n      nodes:\n        - region: GRA\n        - region: GRA\n      flavor: db1-15\n```\n\u003c!--End PulumiCodeChooser --\u003e\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    serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    description: \"my-first-mongodb\",\n    engine: \"mongodb\",\n    version: \"5.0\",\n    plan: \"production\",\n    nodes: [\n        {\n            region: \"SBG\",\n            subnetId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n            networkId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n        },\n        {\n            region: \"SBG\",\n            subnetId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n            networkId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n        },\n        {\n            region: \"SBG\",\n            subnetId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n            networkId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n        },\n    ],\n    flavor: \"db1-30\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmongodb = ovh.cloudproject.Database(\"mongodb\",\n    service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    description=\"my-first-mongodb\",\n    engine=\"mongodb\",\n    version=\"5.0\",\n    plan=\"production\",\n    nodes=[\n        {\n            \"region\": \"SBG\",\n            \"subnet_id\": \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n            \"network_id\": \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n        },\n        {\n            \"region\": \"SBG\",\n            \"subnet_id\": \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n            \"network_id\": \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n        },\n        {\n            \"region\": \"SBG\",\n            \"subnet_id\": \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n            \"network_id\": \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n        },\n    ],\n    flavor=\"db1-30\")\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        ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n        Description = \"my-first-mongodb\",\n        Engine = \"mongodb\",\n        Version = \"5.0\",\n        Plan = \"production\",\n        Nodes = new[]\n        {\n            new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n            {\n                Region = \"SBG\",\n                SubnetId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n                NetworkId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n            },\n            new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n            {\n                Region = \"SBG\",\n                SubnetId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n                NetworkId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n            },\n            new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n            {\n                Region = \"SBG\",\n                SubnetId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n                NetworkId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n            },\n        },\n        Flavor = \"db1-30\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\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(\"production\"),\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\tSubnetId:  pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t\tNetworkId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\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\tNetworkId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\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\tNetworkId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-30\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.CloudProject.Database;\nimport com.ovhcloud.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            .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n            .description(\"my-first-mongodb\")\n            .engine(\"mongodb\")\n            .version(\"5.0\")\n            .plan(\"production\")\n            .nodes(            \n                DatabaseNodeArgs.builder()\n                    .region(\"SBG\")\n                    .subnetId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n                    .networkId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n                    .build(),\n                DatabaseNodeArgs.builder()\n                    .region(\"SBG\")\n                    .subnetId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n                    .networkId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n                    .build(),\n                DatabaseNodeArgs.builder()\n                    .region(\"SBG\")\n                    .subnetId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n                    .networkId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n                    .build())\n            .flavor(\"db1-30\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\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: production\n      nodes:\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          networkId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n      flavor: db1-30\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","additionalProperties":{"type":"string"},"description":"Advanced configuration key / value.\n"},"backupRegions":{"type":"array","items":{"type":"string"},"description":"List of region where backups are pushed. Not more than 1 regions for MongoDB. Not more than 2 regions for the other engines with one being the same as the nodes[].region field\n"},"backupTime":{"type":"string","description":"Time on which backups start every day (this parameter is not usable on the following engines: \"m3db\", \"grafana\", \"kafka\", \"kafkaconnect\", \"kafkamirrormaker\", \"opensearch\", \"m3aggregator\").\n"},"createdAt":{"type":"string","description":"Date of the creation of the cluster.\n"},"deletionProtection":{"type":"boolean","description":"Enable deletion protection\n"},"description":{"type":"string","description":"Small description of the database service.\n"},"diskSize":{"type":"integer","description":"The disk size (in GB) of the database service.\n"},"diskType":{"type":"string","description":"Defines the disk type of the database service.\n"},"endpoints":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/DatabaseEndpoint:DatabaseEndpoint"},"description":"List of all endpoints objects of the service.\n"},"engine":{"type":"string","description":"The database engine you want to deploy. To get a full list of available engine visit. [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases).\n"},"flavor":{"type":"string","description":"A valid OVHcloud public cloud database flavor name in which the nodes will be started. Ex: \"db1-7\". Changing this value upgrade the nodes with the new flavor. You can find the list of flavor names: https://www.ovhcloud.com/fr/public-cloud/prices/\n"},"ipRestrictions":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/DatabaseIpRestriction:DatabaseIpRestriction"},"description":"IP Blocks authorized to access to the cluster.\n"},"kafkaRestApi":{"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"},"networkType":{"type":"string","description":"Type of network of the cluster.\n"},"nodes":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/DatabaseNode:DatabaseNode"},"description":"List of nodes object. Multi region cluster are not yet available, all node should be identical.\n"},"opensearchAclsEnabled":{"type":"boolean","description":"Defines whether the ACLs are enabled on an OpenSearch cluster\n"},"plan":{"type":"string","description":"Plan of the cluster.\n* MongoDB: Enum: \"discovery\", \"production\", \"advanced\".\n* Mysql, PosgreSQL, Cassandra, M3DB, : Enum: \"essential\", \"business\", \"enterprise\".\n* M3 Aggregator: \"business\", \"enterprise\".\n* Redis: \"essential\", \"business\".\n* Valkey: \"essential\", \"business\".\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"status":{"type":"string","description":"Current status of the cluster.\n"},"version":{"type":"string","description":"The version of the engine in which the service should be deployed\n"}},"required":["advancedConfiguration","backupRegions","backupTime","createdAt","diskSize","diskType","endpoints","engine","flavor","maintenanceTime","networkType","nodes","plan","serviceName","status","version"],"inputProperties":{"advancedConfiguration":{"type":"object","additionalProperties":{"type":"string"},"description":"Advanced configuration key / value.\n"},"backupRegions":{"type":"array","items":{"type":"string"},"description":"List of region where backups are pushed. Not more than 1 regions for MongoDB. Not more than 2 regions for the other engines with one being the same as the nodes[].region field\n"},"backupTime":{"type":"string","description":"Time on which backups start every day (this parameter is not usable on the following engines: \"m3db\", \"grafana\", \"kafka\", \"kafkaconnect\", \"kafkamirrormaker\", \"opensearch\", \"m3aggregator\").\n"},"deletionProtection":{"type":"boolean","description":"Enable deletion protection\n"},"description":{"type":"string","description":"Small description of the database service.\n"},"diskSize":{"type":"integer","description":"The disk size (in GB) of the database service.\n"},"engine":{"type":"string","description":"The database engine you want to deploy. To get a full list of available engine visit. [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases).\n","willReplaceOnChanges":true},"flavor":{"type":"string","description":"A valid OVHcloud public cloud database flavor name in which the nodes will be started. Ex: \"db1-7\". Changing this value upgrade the nodes with the new flavor. You can find the list of flavor names: https://www.ovhcloud.com/fr/public-cloud/prices/\n"},"ipRestrictions":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/DatabaseIpRestriction:DatabaseIpRestriction"},"description":"IP Blocks authorized to access to the cluster.\n"},"kafkaRestApi":{"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"},"nodes":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/DatabaseNode:DatabaseNode"},"description":"List of nodes object. Multi region cluster are not yet available, all node should be identical.\n"},"opensearchAclsEnabled":{"type":"boolean","description":"Defines whether the ACLs are enabled on an OpenSearch cluster\n"},"plan":{"type":"string","description":"Plan of the cluster.\n* MongoDB: Enum: \"discovery\", \"production\", \"advanced\".\n* Mysql, PosgreSQL, Cassandra, M3DB, : Enum: \"essential\", \"business\", \"enterprise\".\n* M3 Aggregator: \"business\", \"enterprise\".\n* Redis: \"essential\", \"business\".\n* Valkey: \"essential\", \"business\".\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"version":{"type":"string","description":"The version of the engine in which the service should be deployed\n"}},"requiredInputs":["engine","flavor","nodes","plan","version"],"stateInputs":{"description":"Input properties used for looking up and filtering Database resources.\n","properties":{"advancedConfiguration":{"type":"object","additionalProperties":{"type":"string"},"description":"Advanced configuration key / value.\n"},"backupRegions":{"type":"array","items":{"type":"string"},"description":"List of region where backups are pushed. Not more than 1 regions for MongoDB. Not more than 2 regions for the other engines with one being the same as the nodes[].region field\n"},"backupTime":{"type":"string","description":"Time on which backups start every day (this parameter is not usable on the following engines: \"m3db\", \"grafana\", \"kafka\", \"kafkaconnect\", \"kafkamirrormaker\", \"opensearch\", \"m3aggregator\").\n"},"createdAt":{"type":"string","description":"Date of the creation of the cluster.\n"},"deletionProtection":{"type":"boolean","description":"Enable deletion protection\n"},"description":{"type":"string","description":"Small description of the database service.\n"},"diskSize":{"type":"integer","description":"The disk size (in GB) of the database service.\n"},"diskType":{"type":"string","description":"Defines the disk type of the database service.\n"},"endpoints":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/DatabaseEndpoint:DatabaseEndpoint"},"description":"List of all endpoints objects of the service.\n"},"engine":{"type":"string","description":"The database engine you want to deploy. To get a full list of available engine visit. [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases).\n","willReplaceOnChanges":true},"flavor":{"type":"string","description":"A valid OVHcloud public cloud database flavor name in which the nodes will be started. Ex: \"db1-7\". Changing this value upgrade the nodes with the new flavor. You can find the list of flavor names: https://www.ovhcloud.com/fr/public-cloud/prices/\n"},"ipRestrictions":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/DatabaseIpRestriction:DatabaseIpRestriction"},"description":"IP Blocks authorized to access to the cluster.\n"},"kafkaRestApi":{"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"},"networkType":{"type":"string","description":"Type of network of the cluster.\n"},"nodes":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/DatabaseNode:DatabaseNode"},"description":"List of nodes object. Multi region cluster are not yet available, all node should be identical.\n"},"opensearchAclsEnabled":{"type":"boolean","description":"Defines whether the ACLs are enabled on an OpenSearch cluster\n"},"plan":{"type":"string","description":"Plan of the cluster.\n* MongoDB: Enum: \"discovery\", \"production\", \"advanced\".\n* Mysql, PosgreSQL, Cassandra, M3DB, : Enum: \"essential\", \"business\", \"enterprise\".\n* M3 Aggregator: \"business\", \"enterprise\".\n* Redis: \"essential\", \"business\".\n* Valkey: \"essential\", \"business\".\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Current status of the cluster.\n"},"version":{"type":"string","description":"The version of the engine in which the service should be deployed\n"}},"type":"object"}},"ovh:CloudProject/failoverIpAttach:FailoverIpAttach":{"description":"Attaches a failover IP address to a compute instance\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 failoverIp = new ovh.cloudproject.FailoverIpAttach(\"failover_ip\", {\n    serviceName: \"XXXXXX\",\n    ip: \"XXXXXX\",\n    routedTo: \"XXXXXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nfailover_ip = ovh.cloudproject.FailoverIpAttach(\"failover_ip\",\n    service_name=\"XXXXXX\",\n    ip=\"XXXXXX\",\n    routed_to=\"XXXXXX\")\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 failoverIp = new Ovh.CloudProject.FailoverIpAttach(\"failover_ip\", new()\n    {\n        ServiceName = \"XXXXXX\",\n        Ip = \"XXXXXX\",\n        RoutedTo = \"XXXXXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewFailoverIpAttach(ctx, \"failover_ip\", \u0026cloudproject.FailoverIpAttachArgs{\n\t\t\tServiceName: pulumi.String(\"XXXXXX\"),\n\t\t\tIp:          pulumi.String(\"XXXXXX\"),\n\t\t\tRoutedTo:    pulumi.String(\"XXXXXX\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.CloudProject.FailoverIpAttach;\nimport com.ovhcloud.pulumi.ovh.CloudProject.FailoverIpAttachArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var failoverIp = new FailoverIpAttach(\"failoverIp\", FailoverIpAttachArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .ip(\"XXXXXX\")\n            .routedTo(\"XXXXXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  failoverIp:\n    type: ovh:CloudProject:FailoverIpAttach\n    name: failover_ip\n    properties:\n      serviceName: XXXXXX\n      ip: XXXXXX\n      routedTo: XXXXXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nA cloud project failover IP attachment can be imported using the `id` (failover IP block ID) E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProject/failoverIpAttach:FailoverIpAttach my_ip id\n```\n\n","properties":{"block":{"type":"string","description":"The IP block\n* `continentCode` - The Ip continent\n"},"continentCode":{"type":"string","description":"Ip continent\n"},"geoLoc":{"type":"string","description":"Ip location\n"},"ip":{"type":"string","description":"The failover ip address to attach\n"},"progress":{"type":"integer","description":"Current operation progress in percent\n* `routedTo` - Instance where ip is routed to\n"},"routedTo":{"type":"string","description":"The GUID of an instance to which the failover IP address is be attached\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"status":{"type":"string","description":"Ip status, can be `ok` or `operationPending`\n* `subType` - IP sub type, can be `cloud` or `ovh`\n"},"subType":{"type":"string","description":"IP sub type\n"}},"required":["block","continentCode","geoLoc","ip","progress","routedTo","serviceName","status","subType"],"inputProperties":{"block":{"type":"string","description":"The IP block\n* `continentCode` - The Ip continent\n"},"continentCode":{"type":"string","description":"Ip continent\n"},"geoLoc":{"type":"string","description":"Ip location\n"},"ip":{"type":"string","description":"The failover ip address to attach\n"},"routedTo":{"type":"string","description":"The GUID of an instance to which the failover IP address is be attached\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering FailoverIpAttach resources.\n","properties":{"block":{"type":"string","description":"The IP block\n* `continentCode` - The Ip continent\n"},"continentCode":{"type":"string","description":"Ip continent\n"},"geoLoc":{"type":"string","description":"Ip location\n"},"ip":{"type":"string","description":"The failover ip address to attach\n"},"progress":{"type":"integer","description":"Current operation progress in percent\n* `routedTo` - Instance where ip is routed to\n"},"routedTo":{"type":"string","description":"The GUID of an instance to which the failover IP address is be attached\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Ip status, can be `ok` or `operationPending`\n* `subType` - IP sub type, can be `cloud` or `ovh`\n"},"subType":{"type":"string","description":"IP sub type\n"}},"type":"object"}},"ovh:CloudProject/gateway:Gateway":{"description":"Create a new Gateway for existing subnet in the specified public cloud project.\n\n## Import\n\nA gateway can be imported using the `service_name`, `region` and `id` (identifier of the gateway) properties, separated by a `/`.\n\nHowever, please note that in the case of a gateway import, `network_id` and `subnet_id` values used at gateway creation are not injected back in the state.\n\nIf you want to define these properties on your imported resource, you have to add an \"ignore_changes\" lifecycle argument in order not to trigger a recreation, as suggested in the following example. \n\nterraform\n\nresource \"ovh_cloud_project_gateway\" \"imported_gateway\" {\n\n  service_name = ovh_cloud_project_network_private.mypriv.service_name\n\n  name         = \"\u003cmy-imported-gateway\u003e\"\n\n  model        = \"\u003cmy-model\u003e\"\n\n  region       = \"\u003cmy-region\u003e\"\n\n  network_id   = \"\u003cmy-imported-gateway-network-id\u003e\"\n\n  subnet_id    = \"\u003cmy-imported-gateway-subnet-id\u003e\"\n\n  lifecycle {\n\n    ignore_changes = [network_id, subnet_id]\n\n  }\n\n}\n\nimport {\n\n  id = \"\u003cservice-name\u003e/\u003cregion\u003e/\u003cgateway-id\u003e\"\n\n  to = ovh_cloud_project_gateway.imported_gateway\n\n}\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProject/gateway:Gateway gateway service_name/region/id\n```\n\n","properties":{"externalInformations":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/GatewayExternalInformation:GatewayExternalInformation"},"description":"List of External Information of the gateway.\n"},"interfaces":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/GatewayInterface:GatewayInterface"},"description":"Interfaces list of the gateway.\n"},"model":{"type":"string","description":"Model of the gateway.\n"},"name":{"type":"string","description":"Name of the gateway.\n"},"networkId":{"type":"string","description":"ID of the private network.\n"},"region":{"type":"string","description":"Region of the gateway.\n"},"serviceName":{"type":"string","description":"ID of the private network.\n"},"status":{"type":"string","description":"Status of the gateway.\n"},"subnetId":{"type":"string","description":"ID of the subnet.\n"}},"required":["externalInformations","interfaces","model","name","networkId","region","serviceName","status","subnetId"],"inputProperties":{"model":{"type":"string","description":"Model of the gateway.\n"},"name":{"type":"string","description":"Name of the gateway.\n"},"networkId":{"type":"string","description":"ID of the private network.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"Region of the gateway.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"ID of the private network.\n","willReplaceOnChanges":true},"subnetId":{"type":"string","description":"ID of the subnet.\n","willReplaceOnChanges":true}},"requiredInputs":["model","networkId","region","subnetId"],"stateInputs":{"description":"Input properties used for looking up and filtering Gateway resources.\n","properties":{"externalInformations":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/GatewayExternalInformation:GatewayExternalInformation"},"description":"List of External Information of the gateway.\n"},"interfaces":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/GatewayInterface:GatewayInterface"},"description":"Interfaces list of the gateway.\n"},"model":{"type":"string","description":"Model of the gateway.\n"},"name":{"type":"string","description":"Name of the gateway.\n"},"networkId":{"type":"string","description":"ID of the private network.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"Region of the gateway.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"ID of the private network.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Status of the gateway.\n"},"subnetId":{"type":"string","description":"ID of the subnet.\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:CloudProject/gatewayInterface:GatewayInterface":{"description":"Create a new Gateway Interface for existing subnet in the specified public cloud project.\n\n## Import\n\nA gateway interface can be imported using the `service_name`, `region`, `id` (identifier of the gateway) and `interface_id` properties, separated by a `/`.\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProject/gatewayInterface:GatewayInterface interface service_name/region/id/interface_id\n```\n\n","properties":{"interfaceId":{"type":"string","description":"ID of the interface\n"},"ip":{"type":"string","description":"IP of the interface\n"},"networkId":{"type":"string","description":"Network ID of the interface\n"},"region":{"type":"string","description":"Region of the gateway\n"},"serviceName":{"type":"string","description":"ID of the cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"subnetId":{"type":"string","description":"ID of the subnet to add\n"}},"required":["interfaceId","ip","networkId","region","subnetId"],"inputProperties":{"interfaceId":{"type":"string","description":"ID of the interface\n"},"region":{"type":"string","description":"Region of the gateway\n"},"serviceName":{"type":"string","description":"ID of the cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"subnetId":{"type":"string","description":"ID of the subnet to add\n"}},"requiredInputs":["region","subnetId"],"stateInputs":{"description":"Input properties used for looking up and filtering GatewayInterface resources.\n","properties":{"interfaceId":{"type":"string","description":"ID of the interface\n"},"ip":{"type":"string","description":"IP of the interface\n"},"networkId":{"type":"string","description":"Network ID of the interface\n"},"region":{"type":"string","description":"Region of the gateway\n"},"serviceName":{"type":"string","description":"ID of the cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"subnetId":{"type":"string","description":"ID of the subnet to add\n"}},"type":"object"}},"ovh:CloudProject/instance:Instance":{"description":"**This resource uses a Beta API** Creates an instance associated with a public cloud project.\n\n## Example Usage\n\nCreate a instance.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst instance = new ovh.cloudproject.Instance(\"instance\", {\n    serviceName: \"XXX\",\n    region: \"RRRR\",\n    billingPeriod: \"hourly\",\n    bootFrom: {\n        imageId: \"UUID\",\n    },\n    flavor: {\n        flavorId: \"UUID\",\n    },\n    name: \"instance name\",\n    sshKey: {\n        name: \"sshname\",\n    },\n    network: {\n        \"public\": true,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ninstance = ovh.cloudproject.Instance(\"instance\",\n    service_name=\"XXX\",\n    region=\"RRRR\",\n    billing_period=\"hourly\",\n    boot_from={\n        \"image_id\": \"UUID\",\n    },\n    flavor={\n        \"flavor_id\": \"UUID\",\n    },\n    name=\"instance name\",\n    ssh_key={\n        \"name\": \"sshname\",\n    },\n    network={\n        \"public\": True,\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 instance = new Ovh.CloudProject.Instance(\"instance\", new()\n    {\n        ServiceName = \"XXX\",\n        Region = \"RRRR\",\n        BillingPeriod = \"hourly\",\n        BootFrom = new Ovh.CloudProject.Inputs.InstanceBootFromArgs\n        {\n            ImageId = \"UUID\",\n        },\n        Flavor = new Ovh.CloudProject.Inputs.InstanceFlavorArgs\n        {\n            FlavorId = \"UUID\",\n        },\n        Name = \"instance name\",\n        SshKey = new Ovh.CloudProject.Inputs.InstanceSshKeyArgs\n        {\n            Name = \"sshname\",\n        },\n        Network = new Ovh.CloudProject.Inputs.InstanceNetworkArgs\n        {\n            Public = true,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewInstance(ctx, \"instance\", \u0026cloudproject.InstanceArgs{\n\t\t\tServiceName:   pulumi.String(\"XXX\"),\n\t\t\tRegion:        pulumi.String(\"RRRR\"),\n\t\t\tBillingPeriod: pulumi.String(\"hourly\"),\n\t\t\tBootFrom: \u0026cloudproject.InstanceBootFromArgs{\n\t\t\t\tImageId: pulumi.String(\"UUID\"),\n\t\t\t},\n\t\t\tFlavor: \u0026cloudproject.InstanceFlavorArgs{\n\t\t\t\tFlavorId: pulumi.String(\"UUID\"),\n\t\t\t},\n\t\t\tName: pulumi.String(\"instance name\"),\n\t\t\tSshKey: \u0026cloudproject.InstanceSshKeyArgs{\n\t\t\t\tName: pulumi.String(\"sshname\"),\n\t\t\t},\n\t\t\tNetwork: \u0026cloudproject.InstanceNetworkArgs{\n\t\t\t\tPublic: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.CloudProject.Instance;\nimport com.ovhcloud.pulumi.ovh.CloudProject.InstanceArgs;\nimport com.pulumi.ovh.CloudProject.inputs.InstanceBootFromArgs;\nimport com.pulumi.ovh.CloudProject.inputs.InstanceFlavorArgs;\nimport com.pulumi.ovh.CloudProject.inputs.InstanceSshKeyArgs;\nimport com.pulumi.ovh.CloudProject.inputs.InstanceNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var instance = new Instance(\"instance\", InstanceArgs.builder()\n            .serviceName(\"XXX\")\n            .region(\"RRRR\")\n            .billingPeriod(\"hourly\")\n            .bootFrom(InstanceBootFromArgs.builder()\n                .imageId(\"UUID\")\n                .build())\n            .flavor(InstanceFlavorArgs.builder()\n                .flavorId(\"UUID\")\n                .build())\n            .name(\"instance name\")\n            .sshKey(InstanceSshKeyArgs.builder()\n                .name(\"sshname\")\n                .build())\n            .network(InstanceNetworkArgs.builder()\n                .public_(true)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  instance:\n    type: ovh:CloudProject:Instance\n    properties:\n      serviceName: XXX\n      region: RRRR\n      billingPeriod: hourly\n      bootFrom:\n        imageId: UUID\n      flavor:\n        flavorId: UUID\n      name: instance name\n      sshKey:\n        name: sshname\n      network:\n        public: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"addresses":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/InstanceAddress:InstanceAddress"},"description":"Instance IP addresses\n"},"attachedVolumes":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/InstanceAttachedVolume:InstanceAttachedVolume"},"description":"Volumes attached to the instance\n"},"autoBackup":{"$ref":"#/types/ovh:CloudProject/InstanceAutoBackup:InstanceAutoBackup","description":"Create an autobackup workflow after instance start up.\n"},"availabilityZone":{"type":"string","description":"The availability zone where the instance will be created\n"},"billingPeriod":{"type":"string","description":"Billing period - hourly or monthly\n"},"bootFrom":{"$ref":"#/types/ovh:CloudProject/InstanceBootFrom:InstanceBootFrom","description":"Boot the instance from an image or a volume\n"},"bulk":{"type":"integer","description":"Create multiple instances\n"},"flavor":{"$ref":"#/types/ovh:CloudProject/InstanceFlavor:InstanceFlavor","description":"Flavor information\n"},"flavorId":{"type":"string","description":"Flavor id\n"},"flavorName":{"type":"string","description":"Flavor name\n"},"group":{"$ref":"#/types/ovh:CloudProject/InstanceGroup:InstanceGroup","description":"Start instance in group\n"},"imageId":{"type":"string","description":"Image id\n"},"name":{"type":"string","description":"Instance name\n"},"network":{"$ref":"#/types/ovh:CloudProject/InstanceNetwork:InstanceNetwork","description":"Create network interfaces\n"},"region":{"type":"string","description":"Instance region\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used\n"},"sshKey":{"$ref":"#/types/ovh:CloudProject/InstanceSshKey:InstanceSshKey","description":"Existing SSH Keypair\n"},"sshKeyCreate":{"$ref":"#/types/ovh:CloudProject/InstanceSshKeyCreate:InstanceSshKeyCreate","description":"Add existing SSH Key pair into your Public Cloud project and link it to the instance\n"},"status":{"type":"string","description":"Instance status\n"},"taskState":{"type":"string","description":"Instance task state\n"},"userData":{"type":"string","description":"Configuration information or scripts to use upon launch\n"}},"required":["addresses","attachedVolumes","availabilityZone","billingPeriod","bootFrom","flavor","flavorId","flavorName","imageId","name","network","region","serviceName","status","taskState"],"inputProperties":{"autoBackup":{"$ref":"#/types/ovh:CloudProject/InstanceAutoBackup:InstanceAutoBackup","description":"Create an autobackup workflow after instance start up.\n","willReplaceOnChanges":true},"availabilityZone":{"type":"string","description":"The availability zone where the instance will be created\n","willReplaceOnChanges":true},"billingPeriod":{"type":"string","description":"Billing period - hourly or monthly\n","willReplaceOnChanges":true},"bootFrom":{"$ref":"#/types/ovh:CloudProject/InstanceBootFrom:InstanceBootFrom","description":"Boot the instance from an image or a volume\n","willReplaceOnChanges":true},"bulk":{"type":"integer","description":"Create multiple instances\n","willReplaceOnChanges":true},"flavor":{"$ref":"#/types/ovh:CloudProject/InstanceFlavor:InstanceFlavor","description":"Flavor information\n","willReplaceOnChanges":true},"group":{"$ref":"#/types/ovh:CloudProject/InstanceGroup:InstanceGroup","description":"Start instance in group\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Instance name\n","willReplaceOnChanges":true},"network":{"$ref":"#/types/ovh:CloudProject/InstanceNetwork:InstanceNetwork","description":"Create network interfaces\n","willReplaceOnChanges":true},"region":{"type":"string","description":"Instance region\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used\n","willReplaceOnChanges":true},"sshKey":{"$ref":"#/types/ovh:CloudProject/InstanceSshKey:InstanceSshKey","description":"Existing SSH Keypair\n","willReplaceOnChanges":true},"sshKeyCreate":{"$ref":"#/types/ovh:CloudProject/InstanceSshKeyCreate:InstanceSshKeyCreate","description":"Add existing SSH Key pair into your Public Cloud project and link it to the instance\n","willReplaceOnChanges":true},"userData":{"type":"string","description":"Configuration information or scripts to use upon launch\n","willReplaceOnChanges":true}},"requiredInputs":["billingPeriod","bootFrom","flavor","network","region"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"addresses":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/InstanceAddress:InstanceAddress"},"description":"Instance IP addresses\n"},"attachedVolumes":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/InstanceAttachedVolume:InstanceAttachedVolume"},"description":"Volumes attached to the instance\n"},"autoBackup":{"$ref":"#/types/ovh:CloudProject/InstanceAutoBackup:InstanceAutoBackup","description":"Create an autobackup workflow after instance start up.\n","willReplaceOnChanges":true},"availabilityZone":{"type":"string","description":"The availability zone where the instance will be created\n","willReplaceOnChanges":true},"billingPeriod":{"type":"string","description":"Billing period - hourly or monthly\n","willReplaceOnChanges":true},"bootFrom":{"$ref":"#/types/ovh:CloudProject/InstanceBootFrom:InstanceBootFrom","description":"Boot the instance from an image or a volume\n","willReplaceOnChanges":true},"bulk":{"type":"integer","description":"Create multiple instances\n","willReplaceOnChanges":true},"flavor":{"$ref":"#/types/ovh:CloudProject/InstanceFlavor:InstanceFlavor","description":"Flavor information\n","willReplaceOnChanges":true},"flavorId":{"type":"string","description":"Flavor id\n"},"flavorName":{"type":"string","description":"Flavor name\n"},"group":{"$ref":"#/types/ovh:CloudProject/InstanceGroup:InstanceGroup","description":"Start instance in group\n","willReplaceOnChanges":true},"imageId":{"type":"string","description":"Image id\n"},"name":{"type":"string","description":"Instance name\n","willReplaceOnChanges":true},"network":{"$ref":"#/types/ovh:CloudProject/InstanceNetwork:InstanceNetwork","description":"Create network interfaces\n","willReplaceOnChanges":true},"region":{"type":"string","description":"Instance region\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used\n","willReplaceOnChanges":true},"sshKey":{"$ref":"#/types/ovh:CloudProject/InstanceSshKey:InstanceSshKey","description":"Existing SSH Keypair\n","willReplaceOnChanges":true},"sshKeyCreate":{"$ref":"#/types/ovh:CloudProject/InstanceSshKeyCreate:InstanceSshKeyCreate","description":"Add existing SSH Key pair into your Public Cloud project and link it to the instance\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Instance status\n"},"taskState":{"type":"string","description":"Instance task state\n"},"userData":{"type":"string","description":"Configuration information or scripts to use upon launch\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:CloudProject/instanceSnapshot:InstanceSnapshot":{"description":"Create and manage snapshots for an instance in a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst snapshot = new ovh.cloudproject.InstanceSnapshot(\"snapshot\", {\n    serviceName: \"\u003cpublic cloud project ID\u003e\",\n    instanceId: \"\u003cinstance ID\u003e\",\n    name: \"SnapshotExample\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nsnapshot = ovh.cloudproject.InstanceSnapshot(\"snapshot\",\n    service_name=\"\u003cpublic cloud project ID\u003e\",\n    instance_id=\"\u003cinstance ID\u003e\",\n    name=\"SnapshotExample\")\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 snapshot = new Ovh.CloudProject.InstanceSnapshot(\"snapshot\", new()\n    {\n        ServiceName = \"\u003cpublic cloud project ID\u003e\",\n        InstanceId = \"\u003cinstance ID\u003e\",\n        Name = \"SnapshotExample\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewInstanceSnapshot(ctx, \"snapshot\", \u0026cloudproject.InstanceSnapshotArgs{\n\t\t\tServiceName: pulumi.String(\"\u003cpublic cloud project ID\u003e\"),\n\t\t\tInstanceId:  pulumi.String(\"\u003cinstance ID\u003e\"),\n\t\t\tName:        pulumi.String(\"SnapshotExample\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.CloudProject.InstanceSnapshot;\nimport com.ovhcloud.pulumi.ovh.CloudProject.InstanceSnapshotArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var snapshot = new InstanceSnapshot(\"snapshot\", InstanceSnapshotArgs.builder()\n            .serviceName(\"\u003cpublic cloud project ID\u003e\")\n            .instanceId(\"\u003cinstance ID\u003e\")\n            .name(\"SnapshotExample\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  snapshot:\n    type: ovh:CloudProject:InstanceSnapshot\n    properties:\n      serviceName: \u003cpublic cloud project ID\u003e\n      instanceId: \u003cinstance ID\u003e\n      name: SnapshotExample\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nA cloud project instance snapshot can be imported using the `service_name` and `snapshot_id`, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProject/instanceSnapshot:InstanceSnapshot my_snapshot service_name/snapshot_id\n```\n\n","properties":{"creationDate":{"type":"string","description":"Image creation date\n"},"flavorType":{"type":"string","description":"Image usable only for this type of flavor if not null\n"},"instanceId":{"type":"string","description":"Instance ID\n"},"minDisk":{"type":"number","description":"Minimum disks required to use image\n"},"minRam":{"type":"number","description":"Minimum RAM required to use image\n"},"name":{"type":"string","description":"Snapshot name\n"},"planCode":{"type":"string","description":"Order plan code\n"},"region":{"type":"string","description":"Image region\n"},"serviceName":{"type":"string","description":"Service name. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"size":{"type":"number","description":"Image size (in GiB)\n"},"status":{"type":"string","description":"Image status\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags about the image\n"},"type":{"type":"string","description":"Image type\n"},"user":{"type":"string","description":"User to connect with\n"},"visibility":{"type":"string","description":"Image visibility\n"}},"required":["creationDate","flavorType","instanceId","minDisk","minRam","name","planCode","region","size","status","tags","type","user","visibility"],"inputProperties":{"instanceId":{"type":"string","description":"Instance ID\n"},"name":{"type":"string","description":"Snapshot name\n"},"serviceName":{"type":"string","description":"Service name. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering InstanceSnapshot resources.\n","properties":{"creationDate":{"type":"string","description":"Image creation date\n"},"flavorType":{"type":"string","description":"Image usable only for this type of flavor if not null\n"},"instanceId":{"type":"string","description":"Instance ID\n"},"minDisk":{"type":"number","description":"Minimum disks required to use image\n"},"minRam":{"type":"number","description":"Minimum RAM required to use image\n"},"name":{"type":"string","description":"Snapshot name\n"},"planCode":{"type":"string","description":"Order plan code\n"},"region":{"type":"string","description":"Image region\n"},"serviceName":{"type":"string","description":"Service name. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"size":{"type":"number","description":"Image size (in GiB)\n"},"status":{"type":"string","description":"Image status\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags about the image\n"},"type":{"type":"string","description":"Image type\n"},"user":{"type":"string","description":"User to connect with\n"},"visibility":{"type":"string","description":"Image visibility\n"}},"type":"object"}},"ovh:CloudProject/kube:Kube":{"description":"\n\n## Import\n\nOVHcloud Managed Kubernetes Service clusters can be imported using the `service_name` and the `id` of the cluster, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProject/kube:Kube my_kube_cluster service_name/kube_id\n```\n\n","properties":{"controlPlaneIsUpToDate":{"type":"boolean","description":"True if control-plane is up-to-date.\n"},"customizationApiservers":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/KubeCustomizationApiserver:KubeCustomizationApiserver"},"description":"Kubernetes API server customization\n"},"customizationKubeProxy":{"$ref":"#/types/ovh:CloudProject/KubeCustomizationKubeProxy:KubeCustomizationKubeProxy","description":"Kubernetes kube-proxy customization\n"},"customizations":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/KubeCustomization:KubeCustomization"},"description":"**Deprecated** (Optional) Use `customization_apiserver` and `customization_kube_proxy` instead. Kubernetes cluster customization\n","deprecationMessage":"Use customization_apiserver instead"},"isUpToDate":{"type":"boolean","description":"True if all nodes and control-plane are up-to-date.\n"},"kubeProxyMode":{"type":"string","description":"Selected mode for kube-proxy. **Changing this value recreates the resource, including ETCD user data.** Defaults to `iptables`.\n"},"kubeconfig":{"type":"string","description":"The kubeconfig file. Use this file to connect to your kubernetes cluster.\n","secret":true},"kubeconfigAttributes":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/KubeKubeconfigAttribute:KubeKubeconfigAttribute"},"description":"The kubeconfig file attributes.\n","secret":true},"loadBalancersSubnetId":{"type":"string","description":"Subnet ID to use for Public Load Balancers, this subnet must belong to  `private_network_id`. Defaults to the same subnet as the nodes (see `nodes_subnet_id`). Requires `private_network_id` to be defined. See more network requirements in the [documentation](https://help.ovhcloud.com/csm/fr-public-cloud-kubernetes-expose-applications-using-load-balancer?id=kb_article_view\u0026sysparm_article=KB0062873) for more information.\n"},"name":{"type":"string","description":"The name of the kubernetes cluster.\n"},"nextUpgradeVersions":{"type":"array","items":{"type":"string"},"description":"Kubernetes versions available for upgrade.\n"},"nodesSubnetId":{"type":"string","description":"Subnet ID to use for nodes, this subnet must belong to `private_network_id`. Default uses the first subnet belonging to the private network with id `private_network_id`. This attribute requires `private_network_id` to be defined. **Cannot be updated, it can only be used at cluster creation or reset.**\n"},"nodesUrl":{"type":"string","description":"Cluster nodes URL.\n"},"plan":{"type":"string","description":"Plan of the MKS cluster `free` or `standard`. Default to `free`. Migration to another plan is not implemented yet.\n"},"privateNetworkConfiguration":{"$ref":"#/types/ovh:CloudProject/KubePrivateNetworkConfiguration:KubePrivateNetworkConfiguration","description":"The private network configuration. If this is set then the 2 parameters below shall be defined.\n"},"privateNetworkId":{"type":"string","description":"Private network ID to use. **Changing this value recreates the resource, including ETCD user data.** Defaults - not use private network.\n\n\u003e **WARNING** Updating the private network ID resets the cluster so that all user data is deleted.\n"},"region":{"type":"string","description":"a valid OVHcloud public cloud region ID in which the kubernetes cluster will be available. Ex.: \"GRA9\". Defaults to all public cloud regions. **Changing this value recreates the resource.**\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.**\n"},"status":{"type":"string","description":"Cluster status. Should be normally set to 'READY'.\n"},"updatePolicy":{"type":"string","description":"Cluster update policy. Choose between [ALWAYS_UPDATE, MINIMAL_DOWNTIME, NEVER_UPDATE].\n"},"url":{"type":"string","description":"Management URL of your cluster.\n"},"version":{"type":"string","description":"kubernetes version to use. Changing this value updates the resource. Defaults to the latest available.\n"}},"required":["controlPlaneIsUpToDate","customizations","customizationApiservers","isUpToDate","kubeProxyMode","kubeconfig","kubeconfigAttributes","name","nextUpgradeVersions","nodesSubnetId","nodesUrl","plan","region","serviceName","status","updatePolicy","url","version"],"inputProperties":{"customizationApiservers":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/KubeCustomizationApiserver:KubeCustomizationApiserver"},"description":"Kubernetes API server customization\n"},"customizationKubeProxy":{"$ref":"#/types/ovh:CloudProject/KubeCustomizationKubeProxy:KubeCustomizationKubeProxy","description":"Kubernetes kube-proxy customization\n"},"customizations":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/KubeCustomization:KubeCustomization"},"description":"**Deprecated** (Optional) Use `customization_apiserver` and `customization_kube_proxy` instead. Kubernetes cluster customization\n","deprecationMessage":"Use customization_apiserver instead"},"kubeProxyMode":{"type":"string","description":"Selected mode for kube-proxy. **Changing this value recreates the resource, including ETCD user data.** Defaults to `iptables`.\n","willReplaceOnChanges":true},"loadBalancersSubnetId":{"type":"string","description":"Subnet ID to use for Public Load Balancers, this subnet must belong to  `private_network_id`. Defaults to the same subnet as the nodes (see `nodes_subnet_id`). Requires `private_network_id` to be defined. See more network requirements in the [documentation](https://help.ovhcloud.com/csm/fr-public-cloud-kubernetes-expose-applications-using-load-balancer?id=kb_article_view\u0026sysparm_article=KB0062873) for more information.\n"},"name":{"type":"string","description":"The name of the kubernetes cluster.\n"},"nodesSubnetId":{"type":"string","description":"Subnet ID to use for nodes, this subnet must belong to `private_network_id`. Default uses the first subnet belonging to the private network with id `private_network_id`. This attribute requires `private_network_id` to be defined. **Cannot be updated, it can only be used at cluster creation or reset.**\n"},"plan":{"type":"string","description":"Plan of the MKS cluster `free` or `standard`. Default to `free`. Migration to another plan is not implemented yet.\n"},"privateNetworkConfiguration":{"$ref":"#/types/ovh:CloudProject/KubePrivateNetworkConfiguration:KubePrivateNetworkConfiguration","description":"The private network configuration. If this is set then the 2 parameters below shall be defined.\n"},"privateNetworkId":{"type":"string","description":"Private network ID to use. **Changing this value recreates the resource, including ETCD user data.** Defaults - not use private network.\n\n\u003e **WARNING** Updating the private network ID resets the cluster so that all user data is deleted.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"a valid OVHcloud public cloud region ID in which the kubernetes cluster will be available. Ex.: \"GRA9\". Defaults to all public cloud regions. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"updatePolicy":{"type":"string","description":"Cluster update policy. Choose between [ALWAYS_UPDATE, MINIMAL_DOWNTIME, NEVER_UPDATE].\n"},"version":{"type":"string","description":"kubernetes version to use. Changing this value updates the resource. Defaults to the latest available.\n"}},"requiredInputs":["region"],"stateInputs":{"description":"Input properties used for looking up and filtering Kube resources.\n","properties":{"controlPlaneIsUpToDate":{"type":"boolean","description":"True if control-plane is up-to-date.\n"},"customizationApiservers":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/KubeCustomizationApiserver:KubeCustomizationApiserver"},"description":"Kubernetes API server customization\n"},"customizationKubeProxy":{"$ref":"#/types/ovh:CloudProject/KubeCustomizationKubeProxy:KubeCustomizationKubeProxy","description":"Kubernetes kube-proxy customization\n"},"customizations":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/KubeCustomization:KubeCustomization"},"description":"**Deprecated** (Optional) Use `customization_apiserver` and `customization_kube_proxy` instead. Kubernetes cluster customization\n","deprecationMessage":"Use customization_apiserver instead"},"isUpToDate":{"type":"boolean","description":"True if all nodes and control-plane are up-to-date.\n"},"kubeProxyMode":{"type":"string","description":"Selected mode for kube-proxy. **Changing this value recreates the resource, including ETCD user data.** Defaults to `iptables`.\n","willReplaceOnChanges":true},"kubeconfig":{"type":"string","description":"The kubeconfig file. Use this file to connect to your kubernetes cluster.\n","secret":true},"kubeconfigAttributes":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/KubeKubeconfigAttribute:KubeKubeconfigAttribute"},"description":"The kubeconfig file attributes.\n","secret":true},"loadBalancersSubnetId":{"type":"string","description":"Subnet ID to use for Public Load Balancers, this subnet must belong to  `private_network_id`. Defaults to the same subnet as the nodes (see `nodes_subnet_id`). Requires `private_network_id` to be defined. See more network requirements in the [documentation](https://help.ovhcloud.com/csm/fr-public-cloud-kubernetes-expose-applications-using-load-balancer?id=kb_article_view\u0026sysparm_article=KB0062873) for more information.\n"},"name":{"type":"string","description":"The name of the kubernetes cluster.\n"},"nextUpgradeVersions":{"type":"array","items":{"type":"string"},"description":"Kubernetes versions available for upgrade.\n"},"nodesSubnetId":{"type":"string","description":"Subnet ID to use for nodes, this subnet must belong to `private_network_id`. Default uses the first subnet belonging to the private network with id `private_network_id`. This attribute requires `private_network_id` to be defined. **Cannot be updated, it can only be used at cluster creation or reset.**\n"},"nodesUrl":{"type":"string","description":"Cluster nodes URL.\n"},"plan":{"type":"string","description":"Plan of the MKS cluster `free` or `standard`. Default to `free`. Migration to another plan is not implemented yet.\n"},"privateNetworkConfiguration":{"$ref":"#/types/ovh:CloudProject/KubePrivateNetworkConfiguration:KubePrivateNetworkConfiguration","description":"The private network configuration. If this is set then the 2 parameters below shall be defined.\n"},"privateNetworkId":{"type":"string","description":"Private network ID to use. **Changing this value recreates the resource, including ETCD user data.** Defaults - not use private network.\n\n\u003e **WARNING** Updating the private network ID resets the cluster so that all user data is deleted.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"a valid OVHcloud public cloud region ID in which the kubernetes cluster will be available. Ex.: \"GRA9\". Defaults to all public cloud regions. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Cluster status. Should be normally set to 'READY'.\n"},"updatePolicy":{"type":"string","description":"Cluster update policy. Choose between [ALWAYS_UPDATE, MINIMAL_DOWNTIME, NEVER_UPDATE].\n"},"url":{"type":"string","description":"Management URL of your cluster.\n"},"version":{"type":"string","description":"kubernetes version to use. Changing this value updates the resource. Defaults to the latest available.\n"}},"type":"object"}},"ovh:CloudProject/kubeIpRestrictions:KubeIpRestrictions":{"description":"Apply IP restrictions to an OVHcloud Managed Kubernetes cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst vrackOnly = new ovh.cloudproject.KubeIpRestrictions(\"vrack_only\", {\n    serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    kubeId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n    ips: [\"10.42.0.0/16\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nvrack_only = ovh.cloudproject.KubeIpRestrictions(\"vrack_only\",\n    service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    kube_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n    ips=[\"10.42.0.0/16\"])\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 vrackOnly = new Ovh.CloudProject.KubeIpRestrictions(\"vrack_only\", new()\n    {\n        ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n        KubeId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n        Ips = new[]\n        {\n            \"10.42.0.0/16\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewKubeIpRestrictions(ctx, \"vrack_only\", \u0026cloudproject.KubeIpRestrictionsArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tKubeId:      pulumi.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\"),\n\t\t\tIps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.42.0.0/16\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.CloudProject.KubeIpRestrictions;\nimport com.ovhcloud.pulumi.ovh.CloudProject.KubeIpRestrictionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var vrackOnly = new KubeIpRestrictions(\"vrackOnly\", KubeIpRestrictionsArgs.builder()\n            .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n            .kubeId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\n            .ips(\"10.42.0.0/16\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vrackOnly:\n    type: ovh:CloudProject:KubeIpRestrictions\n    name: vrack_only\n    properties:\n      serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n      kubeId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\n      ips:\n        - 10.42.0.0/16\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed Kubernetes Service cluster IP restrictions can be imported using the `service_name` and the `id` of the cluster, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProject/kubeIpRestrictions:KubeIpRestrictions iprestrictions service_name/kube_id\n```\n\n","properties":{"ips":{"type":"array","items":{"type":"string"},"description":"List of CIDR authorized to interact with the managed Kubernetes cluster.\n"},"kubeId":{"type":"string","description":"The id of the managed Kubernetes cluster. **Changing this value recreates the resource.**\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.**\n"}},"required":["ips","kubeId","serviceName"],"inputProperties":{"ips":{"type":"array","items":{"type":"string"},"description":"List of CIDR authorized to interact with the managed Kubernetes cluster.\n"},"kubeId":{"type":"string","description":"The id of the managed Kubernetes cluster. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true}},"requiredInputs":["ips","kubeId"],"stateInputs":{"description":"Input properties used for looking up and filtering KubeIpRestrictions resources.\n","properties":{"ips":{"type":"array","items":{"type":"string"},"description":"List of CIDR authorized to interact with the managed Kubernetes cluster.\n"},"kubeId":{"type":"string","description":"The id of the managed Kubernetes cluster. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:CloudProject/kubeNodePool:KubeNodePool":{"description":"Creates a nodepool in a OVHcloud Managed Kubernetes Service cluster.\n\n## Example Usage\n\nCreate a simple node pool in your Kubernetes cluster:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst nodePool = new ovh.cloudproject.KubeNodePool(\"node_pool\", {\n    serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    kubeId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    name: \"my-pool-1\",\n    flavorName: \"b3-8\",\n    desiredNodes: 3,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nnode_pool = ovh.cloudproject.KubeNodePool(\"node_pool\",\n    service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    kube_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    name=\"my-pool-1\",\n    flavor_name=\"b3-8\",\n    desired_nodes=3)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var nodePool = new Ovh.CloudProject.KubeNodePool(\"node_pool\", new()\n    {\n        ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n        KubeId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n        Name = \"my-pool-1\",\n        FlavorName = \"b3-8\",\n        DesiredNodes = 3,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudproject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudproject.NewKubeNodePool(ctx, \"node_pool\", \u0026cloudproject.KubeNodePoolArgs{\n\t\t\tServiceName:  pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tKubeId:       pulumi.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"),\n\t\t\tName:         pulumi.String(\"my-pool-1\"),\n\t\t\tFlavorName:   pulumi.String(\"b3-8\"),\n\t\t\tDesiredNodes: pulumi.Int(3),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.CloudProject.KubeNodePool;\nimport com.ovhcloud.pulumi.ovh.CloudProject.KubeNodePoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var nodePool = new KubeNodePool(\"nodePool\", KubeNodePoolArgs.builder()\n            .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n            .kubeId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n            .name(\"my-pool-1\")\n            .flavorName(\"b3-8\")\n            .desiredNodes(3)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  nodePool:\n    type: ovh:CloudProject:KubeNodePool\n    name: node_pool\n    properties:\n      serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n      kubeId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n      name: my-pool-1\n      flavorName: b3-8\n      desiredNodes: 3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nCreate a node pool on a specific availability zones for Kubernetes cluster (with multi-zones support):\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst nodePoolMultiZones = new ovh.cloudproject.KubeNodePool(\"node_pool_multi_zones\", {\n    serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    kubeId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    name: \"my-pool-zone-a\",\n    flavorName: \"b3-8\",\n    desiredNodes: 3,\n    availabilityZones: [\"eu-west-par-a\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nnode_pool_multi_zones = ovh.cloudproject.KubeNodePool(\"node_pool_multi_zones\",\n    service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    kube_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    name=\"my-pool-zone-a\",\n    flavor_name=\"b3-8\",\n    desired_nodes=3,\n    availability_zones=[\"eu-west-par-a\"])\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 nodePoolMultiZones = new Ovh.CloudProject.KubeNodePool(\"node_pool_multi_zones\", new()\n    {\n        ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n        KubeId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n        Name = \"my-pool-zone-a\",\n        FlavorName = \"b3-8\",\n        DesiredNodes = 3,\n        AvailabilityZones = new[]\n        {\n            \"eu-west-par-a\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudproject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudproject.NewKubeNodePool(ctx, \"node_pool_multi_zones\", \u0026cloudproject.KubeNodePoolArgs{\n\t\t\tServiceName:  pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tKubeId:       pulumi.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"),\n\t\t\tName:         pulumi.String(\"my-pool-zone-a\"),\n\t\t\tFlavorName:   pulumi.String(\"b3-8\"),\n\t\t\tDesiredNodes: pulumi.Int(3),\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"eu-west-par-a\"),\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.ovhcloud.pulumi.ovh.CloudProject.KubeNodePool;\nimport com.ovhcloud.pulumi.ovh.CloudProject.KubeNodePoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var nodePoolMultiZones = new KubeNodePool(\"nodePoolMultiZones\", KubeNodePoolArgs.builder()\n            .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n            .kubeId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n            .name(\"my-pool-zone-a\")\n            .flavorName(\"b3-8\")\n            .desiredNodes(3)\n            .availabilityZones(\"eu-west-par-a\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  nodePoolMultiZones:\n    type: ovh:CloudProject:KubeNodePool\n    name: node_pool_multi_zones\n    properties:\n      serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n      kubeId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n      name: my-pool-zone-a\n      flavorName: b3-8\n      desiredNodes: 3\n      availabilityZones: # Currently, only one zone is supported\n        - eu-west-par-a\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nCreate an advanced node pool in your Kubernetes cluster:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst pool = new ovh.cloudproject.KubeNodePool(\"pool\", {\n    serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    kubeId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    name: \"my-pool\",\n    flavorName: \"b3-8\",\n    desiredNodes: 3,\n    template: {\n        metadata: {\n            annotations: {\n                k1: \"v1\",\n                k2: \"v2\",\n            },\n            finalizers: [],\n            labels: {\n                k3: \"v3\",\n                k4: \"v4\",\n            },\n        },\n        spec: {\n            unschedulable: false,\n            taints: [{\n                effect: \"PreferNoSchedule\",\n                key: \"k\",\n                value: \"v\",\n            }],\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\npool = ovh.cloudproject.KubeNodePool(\"pool\",\n    service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    kube_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    name=\"my-pool\",\n    flavor_name=\"b3-8\",\n    desired_nodes=3,\n    template={\n        \"metadata\": {\n            \"annotations\": {\n                \"k1\": \"v1\",\n                \"k2\": \"v2\",\n            },\n            \"finalizers\": [],\n            \"labels\": {\n                \"k3\": \"v3\",\n                \"k4\": \"v4\",\n            },\n        },\n        \"spec\": {\n            \"unschedulable\": False,\n            \"taints\": [{\n                \"effect\": \"PreferNoSchedule\",\n                \"key\": \"k\",\n                \"value\": \"v\",\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 pool = new Ovh.CloudProject.KubeNodePool(\"pool\", new()\n    {\n        ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n        KubeId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n        Name = \"my-pool\",\n        FlavorName = \"b3-8\",\n        DesiredNodes = 3,\n        Template = new Ovh.CloudProject.Inputs.KubeNodePoolTemplateArgs\n        {\n            Metadata = new Ovh.CloudProject.Inputs.KubeNodePoolTemplateMetadataArgs\n            {\n                Annotations = \n                {\n                    { \"k1\", \"v1\" },\n                    { \"k2\", \"v2\" },\n                },\n                Finalizers = new() { },\n                Labels = \n                {\n                    { \"k3\", \"v3\" },\n                    { \"k4\", \"v4\" },\n                },\n            },\n            Spec = new Ovh.CloudProject.Inputs.KubeNodePoolTemplateSpecArgs\n            {\n                Unschedulable = false,\n                Taints = new[]\n                {\n                    \n                    {\n                        { \"effect\", \"PreferNoSchedule\" },\n                        { \"key\", \"k\" },\n                        { \"value\", \"v\" },\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudproject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudproject.NewKubeNodePool(ctx, \"pool\", \u0026cloudproject.KubeNodePoolArgs{\n\t\t\tServiceName:  pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tKubeId:       pulumi.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"),\n\t\t\tName:         pulumi.String(\"my-pool\"),\n\t\t\tFlavorName:   pulumi.String(\"b3-8\"),\n\t\t\tDesiredNodes: pulumi.Int(3),\n\t\t\tTemplate: \u0026cloudproject.KubeNodePoolTemplateArgs{\n\t\t\t\tMetadata: \u0026cloudproject.KubeNodePoolTemplateMetadataArgs{\n\t\t\t\t\tAnnotations: pulumi.StringMap{\n\t\t\t\t\t\t\"k1\": pulumi.String(\"v1\"),\n\t\t\t\t\t\t\"k2\": pulumi.String(\"v2\"),\n\t\t\t\t\t},\n\t\t\t\t\tFinalizers: pulumi.StringArray{},\n\t\t\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\t\t\"k3\": pulumi.String(\"v3\"),\n\t\t\t\t\t\t\"k4\": pulumi.String(\"v4\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tSpec: \u0026cloudproject.KubeNodePoolTemplateSpecArgs{\n\t\t\t\t\tUnschedulable: pulumi.Bool(false),\n\t\t\t\t\tTaints: pulumi.StringMapArray{\n\t\t\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\t\t\"effect\": pulumi.String(\"PreferNoSchedule\"),\n\t\t\t\t\t\t\t\"key\":    pulumi.String(\"k\"),\n\t\t\t\t\t\t\t\"value\":  pulumi.String(\"v\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\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.ovhcloud.pulumi.ovh.CloudProject.KubeNodePool;\nimport com.ovhcloud.pulumi.ovh.CloudProject.KubeNodePoolArgs;\nimport com.pulumi.ovh.CloudProject.inputs.KubeNodePoolTemplateArgs;\nimport com.pulumi.ovh.CloudProject.inputs.KubeNodePoolTemplateMetadataArgs;\nimport com.pulumi.ovh.CloudProject.inputs.KubeNodePoolTemplateSpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var pool = new KubeNodePool(\"pool\", KubeNodePoolArgs.builder()\n            .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n            .kubeId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n            .name(\"my-pool\")\n            .flavorName(\"b3-8\")\n            .desiredNodes(3)\n            .template(KubeNodePoolTemplateArgs.builder()\n                .metadata(KubeNodePoolTemplateMetadataArgs.builder()\n                    .annotations(Map.ofEntries(\n                        Map.entry(\"k1\", \"v1\"),\n                        Map.entry(\"k2\", \"v2\")\n                    ))\n                    .finalizers()\n                    .labels(Map.ofEntries(\n                        Map.entry(\"k3\", \"v3\"),\n                        Map.entry(\"k4\", \"v4\")\n                    ))\n                    .build())\n                .spec(KubeNodePoolTemplateSpecArgs.builder()\n                    .unschedulable(false)\n                    .taints(Map.ofEntries(\n                        Map.entry(\"effect\", \"PreferNoSchedule\"),\n                        Map.entry(\"key\", \"k\"),\n                        Map.entry(\"value\", \"v\")\n                    ))\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  pool:\n    type: ovh:CloudProject:KubeNodePool\n    properties:\n      serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n      kubeId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n      name: my-pool\n      flavorName: b3-8\n      desiredNodes: 3\n      template:\n        metadata:\n          annotations:\n            k1: v1\n            k2: v2\n          finalizers: []\n          labels:\n            k3: v3\n            k4: v4\n        spec:\n          unschedulable: false\n          taints:\n            - effect: PreferNoSchedule\n              key: k\n              value: v\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed Kubernetes Service cluster node pool can be imported using the `service_name`, the `id` of the cluster, and the `id` of the nodepool separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProject/kubeNodePool:KubeNodePool pool service_name/kube_id/poolid\n```\n\n","properties":{"antiAffinity":{"type":"boolean","description":"should the pool use the anti-affinity feature. Default to `false`. **Changing this value recreates the resource.**\n"},"autoscale":{"type":"boolean","description":"Enable auto-scaling for the pool. Default to `false`.\n"},"autoscalingScaleDownUnneededTimeSeconds":{"type":"integer","description":"scaleDownUnneededTimeSeconds autoscaling parameter How long a node should be unneeded before it is eligible for scale down\n"},"autoscalingScaleDownUnreadyTimeSeconds":{"type":"integer","description":"scaleDownUnreadyTimeSeconds autoscaling parameter How long an unready node should be unneeded before it is eligible for scale down\n"},"autoscalingScaleDownUtilizationThreshold":{"type":"number","description":"scaleDownUtilizationThreshold autoscaling parameter Node utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down\n* `template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects:\n"},"availabilityZones":{"type":"array","items":{"type":"string"},"description":"list of availability zones to associate the pool - **mandatory for multi-zone** cluster - only one zone is supported at the moment.\n"},"availableNodes":{"type":"integer","description":"Number of nodes which are actually ready in the pool\n"},"createdAt":{"type":"string","description":"Creation date\n"},"currentNodes":{"type":"integer","description":"Number of nodes present in the pool\n"},"desiredNodes":{"type":"integer","description":"number of nodes to start.\n"},"flavor":{"type":"string","description":"Flavor name\n"},"flavorName":{"type":"string","description":"a valid OVHcloud public cloud flavor ID in which the nodes will be started. Ex: \"b2-7\". You can find the list of flavor IDs: https://www.ovhcloud.com/fr/public-cloud/prices/. **Changing this value recreates the resource.**\n"},"kubeId":{"type":"string","description":"The id of the managed kubernetes cluster. **Changing this value recreates the resource.**\n"},"maxNodes":{"type":"integer","description":"maximum number of nodes allowed in the pool. Setting `desired_nodes` over this value will raise an error.\n"},"minNodes":{"type":"integer","description":"minimum number of nodes allowed in the pool. Setting `desired_nodes` under this value will raise an error.\n"},"monthlyBilled":{"type":"boolean","description":"should the nodes be billed on a monthly basis. Default to `false`. **Changing this value recreates the resource.**\n"},"name":{"type":"string","description":"The name of the nodepool. Warning: `_` char is not allowed! **Changing this value recreates the resource.**\n"},"projectId":{"type":"string","description":"Project id\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.**\n"},"sizeStatus":{"type":"string","description":"Status describing the state between number of nodes wanted and available ones\n"},"status":{"type":"string","description":"Current status\n"},"template":{"$ref":"#/types/ovh:CloudProject/KubeNodePoolTemplate:KubeNodePoolTemplate","description":"Node pool template\n"},"upToDateNodes":{"type":"integer","description":"Number of nodes with the latest version installed in the pool\n"},"updatedAt":{"type":"string","description":"Last update date\n"}},"required":["antiAffinity","autoscale","autoscalingScaleDownUnneededTimeSeconds","autoscalingScaleDownUnreadyTimeSeconds","autoscalingScaleDownUtilizationThreshold","availableNodes","createdAt","currentNodes","desiredNodes","flavor","flavorName","kubeId","maxNodes","minNodes","monthlyBilled","name","projectId","serviceName","sizeStatus","status","upToDateNodes","updatedAt"],"inputProperties":{"antiAffinity":{"type":"boolean","description":"should the pool use the anti-affinity feature. Default to `false`. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"autoscale":{"type":"boolean","description":"Enable auto-scaling for the pool. Default to `false`.\n"},"autoscalingScaleDownUnneededTimeSeconds":{"type":"integer","description":"scaleDownUnneededTimeSeconds autoscaling parameter How long a node should be unneeded before it is eligible for scale down\n"},"autoscalingScaleDownUnreadyTimeSeconds":{"type":"integer","description":"scaleDownUnreadyTimeSeconds autoscaling parameter How long an unready node should be unneeded before it is eligible for scale down\n"},"autoscalingScaleDownUtilizationThreshold":{"type":"number","description":"scaleDownUtilizationThreshold autoscaling parameter Node utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down\n* `template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects:\n"},"availabilityZones":{"type":"array","items":{"type":"string"},"description":"list of availability zones to associate the pool - **mandatory for multi-zone** cluster - only one zone is supported at the moment.\n","willReplaceOnChanges":true},"desiredNodes":{"type":"integer","description":"number of nodes to start.\n"},"flavorName":{"type":"string","description":"a valid OVHcloud public cloud flavor ID in which the nodes will be started. Ex: \"b2-7\". You can find the list of flavor IDs: https://www.ovhcloud.com/fr/public-cloud/prices/. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"kubeId":{"type":"string","description":"The id of the managed kubernetes cluster. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"maxNodes":{"type":"integer","description":"maximum number of nodes allowed in the pool. Setting `desired_nodes` over this value will raise an error.\n"},"minNodes":{"type":"integer","description":"minimum number of nodes allowed in the pool. Setting `desired_nodes` under this value will raise an error.\n"},"monthlyBilled":{"type":"boolean","description":"should the nodes be billed on a monthly basis. Default to `false`. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the nodepool. Warning: `_` char is not allowed! **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"template":{"$ref":"#/types/ovh:CloudProject/KubeNodePoolTemplate:KubeNodePoolTemplate","description":"Node pool template\n"}},"requiredInputs":["flavorName","kubeId"],"stateInputs":{"description":"Input properties used for looking up and filtering KubeNodePool resources.\n","properties":{"antiAffinity":{"type":"boolean","description":"should the pool use the anti-affinity feature. Default to `false`. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"autoscale":{"type":"boolean","description":"Enable auto-scaling for the pool. Default to `false`.\n"},"autoscalingScaleDownUnneededTimeSeconds":{"type":"integer","description":"scaleDownUnneededTimeSeconds autoscaling parameter How long a node should be unneeded before it is eligible for scale down\n"},"autoscalingScaleDownUnreadyTimeSeconds":{"type":"integer","description":"scaleDownUnreadyTimeSeconds autoscaling parameter How long an unready node should be unneeded before it is eligible for scale down\n"},"autoscalingScaleDownUtilizationThreshold":{"type":"number","description":"scaleDownUtilizationThreshold autoscaling parameter Node utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down\n* `template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects:\n"},"availabilityZones":{"type":"array","items":{"type":"string"},"description":"list of availability zones to associate the pool - **mandatory for multi-zone** cluster - only one zone is supported at the moment.\n","willReplaceOnChanges":true},"availableNodes":{"type":"integer","description":"Number of nodes which are actually ready in the pool\n"},"createdAt":{"type":"string","description":"Creation date\n"},"currentNodes":{"type":"integer","description":"Number of nodes present in the pool\n"},"desiredNodes":{"type":"integer","description":"number of nodes to start.\n"},"flavor":{"type":"string","description":"Flavor name\n"},"flavorName":{"type":"string","description":"a valid OVHcloud public cloud flavor ID in which the nodes will be started. Ex: \"b2-7\". You can find the list of flavor IDs: https://www.ovhcloud.com/fr/public-cloud/prices/. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"kubeId":{"type":"string","description":"The id of the managed kubernetes cluster. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"maxNodes":{"type":"integer","description":"maximum number of nodes allowed in the pool. Setting `desired_nodes` over this value will raise an error.\n"},"minNodes":{"type":"integer","description":"minimum number of nodes allowed in the pool. Setting `desired_nodes` under this value will raise an error.\n"},"monthlyBilled":{"type":"boolean","description":"should the nodes be billed on a monthly basis. Default to `false`. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the nodepool. Warning: `_` char is not allowed! **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"Project id\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"sizeStatus":{"type":"string","description":"Status describing the state between number of nodes wanted and available ones\n"},"status":{"type":"string","description":"Current status\n"},"template":{"$ref":"#/types/ovh:CloudProject/KubeNodePoolTemplate:KubeNodePoolTemplate","description":"Node pool template\n"},"upToDateNodes":{"type":"integer","description":"Number of nodes with the latest version installed in the pool\n"},"updatedAt":{"type":"string","description":"Last update date\n"}},"type":"object"}},"ovh:CloudProject/kubeOidc:KubeOidc":{"description":"Creates an OIDC configuration in an OVHcloud Managed Kubernetes cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst myOidc = new ovh.cloudproject.KubeOidc(\"my_oidc\", {\n    serviceName: projectid,\n    kubeId: mykube.id,\n    clientId: \"xxx\",\n    issuerUrl: \"https://ovh.com\",\n    oidcUsernameClaim: \"an-email\",\n    oidcUsernamePrefix: \"ovh:\",\n    oidcGroupsClaims: [\"groups\"],\n    oidcGroupsPrefix: \"ovh:\",\n    oidcRequiredClaims: [\"claim1=val1\"],\n    oidcSigningAlgs: [\"RS512\"],\n    oidcCaContent: \"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZhekNDQTFPZ0F3SUJBZ0lVYm9YRkZrL1hCQmdQUUI4UHlqbkttUGVWekNjd0RRWUpLb1pJaHZjTkFRRUwKQlFBd1JURUxNQWtHQTFVRUJoTUNRVlV4RXpBUkJnTlZCQWdNQ2xOdmJXVXRVM1JoZEdVeElUQWZCZ05WQkFvTQpHRWx1ZEdWeWJtVjBJRmRwWkdkcGRITWdVSFI1SUV4MFpEQWVGdzB5TWpFd01UUXdOalE0TlROYUZ3MHlNekV3Ck1UUXdOalE0TlROYU1FVXhDekFKQmdOVkJBWVRBa0ZWTVJNd0VRWURWUVFJREFwVGIyMWxMVk4wWVhSbE1TRXcKSHdZRFZRUUtEQmhKYm5SbGNtNWxkQ0JYYVdSbmFYUnpJRkIwZVNCTWRHUXdnZ0lpTUEwR0NTcUdTSWIzRFFFQgpBUVVBQTRJQ0R3QXdnZ0lLQW9JQ0FRQytPMk53bGx2QTQyT05SUHMyZWlqTUp2UHhpN21RblVSS3FrOHJEV1VkCkwzZU0yM1JXeVhtS1AydDQ5Zi9LVGsweEZNVStOSTUzTEhwWmh6N3NpK3dEUFUvWWZWSS9rQmZsRm8zeVZCMSsKZWdCSnpyNGIrQ3FoaWlCUkh0Vm5LblFKUmdvOVJjVkxhRm82UEY0N1V0UWJ2bWVuNGdERnExVkYwVHhUdnFMdwpIMzRZL0U2QUJsSlZnWFBzaWQzNm54eTErNnlKV05vRXNVekFiekpWMHhzTGhxc2hOazA0TWx4YnBhcG1XcEUxCmFFMHRIZGpjUlI3Y1dTRUUwMnRSQzNYL2tSNjBKb3MxR0N0Y0ZQTTVIN3NjOFBXNFRUem1EWWhOeDRiVjV4T28KU0xYRnI5ajBzZEgxbm1wSlI1dWxJT2dPTWV3MHA2d3JOYVV2MGpxc1hzdVdqMVpxdTRLRi81aEQ3azVhRlhKNQpjYWNTUi9mRWxreW1uZis0eHZFOG8wdkRWNFR5NHo3K3lSS1U0clZvZFNBZWZIN3lqeitLV1RRck96L0lHU2NwCmV1YTdqV0hRMDdMYWxyTjV2b0tFaU1JM3MrWjhzeUdVUGVyYXQwdzJMWlc3NnhxVGl4R002clZxUldxVlQ4L1oKQTJMMEc4WGRvNTZvV2lFYVF5RkJtRDFnMXU2UEsvTmFGVDI1L2tTNWJ1dnF5L1dLVGt0UVNhNHNZc1ZLbUlQTQp0Zys0NUZ2aFErNkRuQzd0TmVnaTZDTkdTb0w0R1dPOEE5UDZRNjE5RkJJZ1VjcGpFMTgvUHpQOEJmcTAxajhnCjZmdm1jNkVPMkxHVHhDcW1DbVp0TnI3OCtQaUxkMHZIY3pqY3E3NzhiNW5WRXRpUVNRQkUyb0ozTVlIZUFIUUkKYVFJREFRQUJvMU13VVRBZEJnTlZIUTRFRmdRVUpaMUhlVmx1U3pjY0U2NEZQYWtuNkRBWnhmSXdId1lEVlIwagpCQmd3Rm9BVUpaMUhlVmx1U3pjY0U2NEZQYWtuNkRBWnhmSXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QU5CZ2txCmhraUc5dzBCQVFzRkFBT0NBZ0VBQlhNSlU2MjJZVFZVNnZ1K2svNnkwMGNaWlRmVnZtdVJMOXhTcWxVM0I1QmQKVWdyVWx1TmdjN2dhUUlrYzkvWmh2MnhNd0xxUldMWEhiTWx1NkNvdkNiVTVpeWt0NHVWMnl5UzlZYWhmVVRNVQo3TVE0WFRta2hoS0dGbWZBQ2QzTUVwRE55T3hmWXh0UVBwM1NZT2IxRGFKMmUwY01Gc081bytORGQ5aFVBVzFoCjFLMjMwQnZzYldYYVo4MStIdTU4U1BsYTM5R3FMTG85MzR6dEs4WkRWNFRGTVJxMnNVQ1cxcWFidDh5ejd2RzAKSGV3dXdxelRwR1lTSFI1U0ZvMm45R0xKVUN4SnhxcDlOWVJjMlhUdXRUdkJESzVPMXFZZEJaQzd6cmcxSnczawp2SjI4UGx2TzBQRE42ZVlUdElJdC9yU05ZbW56eVVNRTRYREt0di9KRitLZWZNSWxDTkpzZDRHYXVTdlo5M1NOClhINmcrNEZvRkp4UzNxRmZ0WEc4czNRNnppNzNLRzh5UHZVNHU0WmZNRGd2aG92L0V5YkNLWUpFdVVZSlJWNGEKbmc3cWh3NDBabXQ0eWNCRzU5a2tFSGhNYWtxTWpPaUNkV2x4MEVjZXIxcEFGT1pqN3o1NktURXIxa0ZwUHVaRApjVER5SnNwTjh6dm9CQ0l1ancvQjR6S3kyWStOQitRR1p3dXhyTk9mRGR6ek9yQUE1Ym9OS2gwUUh4c0RxNTExClFaU3hCR21EcGJzN2QzMUQvQll3WEhIUWdwb3FoVUU5dFBGSThpN0pkM2FyeXZCdHlnTWlxSmt1VlRFVk1Ta0UKNTZ0VnFsMjlXenFhRXNrbDN3VUlmczVKKzN3RzRPcWNxRDdXaGQxWUtnc0VUMjdFTWlqVXZIYzQ4TXE0bU1rPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_oidc = ovh.cloudproject.KubeOidc(\"my_oidc\",\n    service_name=projectid,\n    kube_id=mykube[\"id\"],\n    client_id=\"xxx\",\n    issuer_url=\"https://ovh.com\",\n    oidc_username_claim=\"an-email\",\n    oidc_username_prefix=\"ovh:\",\n    oidc_groups_claims=[\"groups\"],\n    oidc_groups_prefix=\"ovh:\",\n    oidc_required_claims=[\"claim1=val1\"],\n    oidc_signing_algs=[\"RS512\"],\n    oidc_ca_content=\"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZhekNDQTFPZ0F3SUJBZ0lVYm9YRkZrL1hCQmdQUUI4UHlqbkttUGVWekNjd0RRWUpLb1pJaHZjTkFRRUwKQlFBd1JURUxNQWtHQTFVRUJoTUNRVlV4RXpBUkJnTlZCQWdNQ2xOdmJXVXRVM1JoZEdVeElUQWZCZ05WQkFvTQpHRWx1ZEdWeWJtVjBJRmRwWkdkcGRITWdVSFI1SUV4MFpEQWVGdzB5TWpFd01UUXdOalE0TlROYUZ3MHlNekV3Ck1UUXdOalE0TlROYU1FVXhDekFKQmdOVkJBWVRBa0ZWTVJNd0VRWURWUVFJREFwVGIyMWxMVk4wWVhSbE1TRXcKSHdZRFZRUUtEQmhKYm5SbGNtNWxkQ0JYYVdSbmFYUnpJRkIwZVNCTWRHUXdnZ0lpTUEwR0NTcUdTSWIzRFFFQgpBUVVBQTRJQ0R3QXdnZ0lLQW9JQ0FRQytPMk53bGx2QTQyT05SUHMyZWlqTUp2UHhpN21RblVSS3FrOHJEV1VkCkwzZU0yM1JXeVhtS1AydDQ5Zi9LVGsweEZNVStOSTUzTEhwWmh6N3NpK3dEUFUvWWZWSS9rQmZsRm8zeVZCMSsKZWdCSnpyNGIrQ3FoaWlCUkh0Vm5LblFKUmdvOVJjVkxhRm82UEY0N1V0UWJ2bWVuNGdERnExVkYwVHhUdnFMdwpIMzRZL0U2QUJsSlZnWFBzaWQzNm54eTErNnlKV05vRXNVekFiekpWMHhzTGhxc2hOazA0TWx4YnBhcG1XcEUxCmFFMHRIZGpjUlI3Y1dTRUUwMnRSQzNYL2tSNjBKb3MxR0N0Y0ZQTTVIN3NjOFBXNFRUem1EWWhOeDRiVjV4T28KU0xYRnI5ajBzZEgxbm1wSlI1dWxJT2dPTWV3MHA2d3JOYVV2MGpxc1hzdVdqMVpxdTRLRi81aEQ3azVhRlhKNQpjYWNTUi9mRWxreW1uZis0eHZFOG8wdkRWNFR5NHo3K3lSS1U0clZvZFNBZWZIN3lqeitLV1RRck96L0lHU2NwCmV1YTdqV0hRMDdMYWxyTjV2b0tFaU1JM3MrWjhzeUdVUGVyYXQwdzJMWlc3NnhxVGl4R002clZxUldxVlQ4L1oKQTJMMEc4WGRvNTZvV2lFYVF5RkJtRDFnMXU2UEsvTmFGVDI1L2tTNWJ1dnF5L1dLVGt0UVNhNHNZc1ZLbUlQTQp0Zys0NUZ2aFErNkRuQzd0TmVnaTZDTkdTb0w0R1dPOEE5UDZRNjE5RkJJZ1VjcGpFMTgvUHpQOEJmcTAxajhnCjZmdm1jNkVPMkxHVHhDcW1DbVp0TnI3OCtQaUxkMHZIY3pqY3E3NzhiNW5WRXRpUVNRQkUyb0ozTVlIZUFIUUkKYVFJREFRQUJvMU13VVRBZEJnTlZIUTRFRmdRVUpaMUhlVmx1U3pjY0U2NEZQYWtuNkRBWnhmSXdId1lEVlIwagpCQmd3Rm9BVUpaMUhlVmx1U3pjY0U2NEZQYWtuNkRBWnhmSXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QU5CZ2txCmhraUc5dzBCQVFzRkFBT0NBZ0VBQlhNSlU2MjJZVFZVNnZ1K2svNnkwMGNaWlRmVnZtdVJMOXhTcWxVM0I1QmQKVWdyVWx1TmdjN2dhUUlrYzkvWmh2MnhNd0xxUldMWEhiTWx1NkNvdkNiVTVpeWt0NHVWMnl5UzlZYWhmVVRNVQo3TVE0WFRta2hoS0dGbWZBQ2QzTUVwRE55T3hmWXh0UVBwM1NZT2IxRGFKMmUwY01Gc081bytORGQ5aFVBVzFoCjFLMjMwQnZzYldYYVo4MStIdTU4U1BsYTM5R3FMTG85MzR6dEs4WkRWNFRGTVJxMnNVQ1cxcWFidDh5ejd2RzAKSGV3dXdxelRwR1lTSFI1U0ZvMm45R0xKVUN4SnhxcDlOWVJjMlhUdXRUdkJESzVPMXFZZEJaQzd6cmcxSnczawp2SjI4UGx2TzBQRE42ZVlUdElJdC9yU05ZbW56eVVNRTRYREt0di9KRitLZWZNSWxDTkpzZDRHYXVTdlo5M1NOClhINmcrNEZvRkp4UzNxRmZ0WEc4czNRNnppNzNLRzh5UHZVNHU0WmZNRGd2aG92L0V5YkNLWUpFdVVZSlJWNGEKbmc3cWh3NDBabXQ0eWNCRzU5a2tFSGhNYWtxTWpPaUNkV2x4MEVjZXIxcEFGT1pqN3o1NktURXIxa0ZwUHVaRApjVER5SnNwTjh6dm9CQ0l1ancvQjR6S3kyWStOQitRR1p3dXhyTk9mRGR6ek9yQUE1Ym9OS2gwUUh4c0RxNTExClFaU3hCR21EcGJzN2QzMUQvQll3WEhIUWdwb3FoVUU5dFBGSThpN0pkM2FyeXZCdHlnTWlxSmt1VlRFVk1Ta0UKNTZ0VnFsMjlXenFhRXNrbDN3VUlmczVKKzN3RzRPcWNxRDdXaGQxWUtnc0VUMjdFTWlqVXZIYzQ4TXE0bU1rPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==\")\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 myOidc = new Ovh.CloudProject.KubeOidc(\"my_oidc\", new()\n    {\n        ServiceName = projectid,\n        KubeId = mykube.Id,\n        ClientId = \"xxx\",\n        IssuerUrl = \"https://ovh.com\",\n        OidcUsernameClaim = \"an-email\",\n        OidcUsernamePrefix = \"ovh:\",\n        OidcGroupsClaims = new[]\n        {\n            \"groups\",\n        },\n        OidcGroupsPrefix = \"ovh:\",\n        OidcRequiredClaims = new[]\n        {\n            \"claim1=val1\",\n        },\n        OidcSigningAlgs = new[]\n        {\n            \"RS512\",\n        },\n        OidcCaContent = \"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZhekNDQTFPZ0F3SUJBZ0lVYm9YRkZrL1hCQmdQUUI4UHlqbkttUGVWekNjd0RRWUpLb1pJaHZjTkFRRUwKQlFBd1JURUxNQWtHQTFVRUJoTUNRVlV4RXpBUkJnTlZCQWdNQ2xOdmJXVXRVM1JoZEdVeElUQWZCZ05WQkFvTQpHRWx1ZEdWeWJtVjBJRmRwWkdkcGRITWdVSFI1SUV4MFpEQWVGdzB5TWpFd01UUXdOalE0TlROYUZ3MHlNekV3Ck1UUXdOalE0TlROYU1FVXhDekFKQmdOVkJBWVRBa0ZWTVJNd0VRWURWUVFJREFwVGIyMWxMVk4wWVhSbE1TRXcKSHdZRFZRUUtEQmhKYm5SbGNtNWxkQ0JYYVdSbmFYUnpJRkIwZVNCTWRHUXdnZ0lpTUEwR0NTcUdTSWIzRFFFQgpBUVVBQTRJQ0R3QXdnZ0lLQW9JQ0FRQytPMk53bGx2QTQyT05SUHMyZWlqTUp2UHhpN21RblVSS3FrOHJEV1VkCkwzZU0yM1JXeVhtS1AydDQ5Zi9LVGsweEZNVStOSTUzTEhwWmh6N3NpK3dEUFUvWWZWSS9rQmZsRm8zeVZCMSsKZWdCSnpyNGIrQ3FoaWlCUkh0Vm5LblFKUmdvOVJjVkxhRm82UEY0N1V0UWJ2bWVuNGdERnExVkYwVHhUdnFMdwpIMzRZL0U2QUJsSlZnWFBzaWQzNm54eTErNnlKV05vRXNVekFiekpWMHhzTGhxc2hOazA0TWx4YnBhcG1XcEUxCmFFMHRIZGpjUlI3Y1dTRUUwMnRSQzNYL2tSNjBKb3MxR0N0Y0ZQTTVIN3NjOFBXNFRUem1EWWhOeDRiVjV4T28KU0xYRnI5ajBzZEgxbm1wSlI1dWxJT2dPTWV3MHA2d3JOYVV2MGpxc1hzdVdqMVpxdTRLRi81aEQ3azVhRlhKNQpjYWNTUi9mRWxreW1uZis0eHZFOG8wdkRWNFR5NHo3K3lSS1U0clZvZFNBZWZIN3lqeitLV1RRck96L0lHU2NwCmV1YTdqV0hRMDdMYWxyTjV2b0tFaU1JM3MrWjhzeUdVUGVyYXQwdzJMWlc3NnhxVGl4R002clZxUldxVlQ4L1oKQTJMMEc4WGRvNTZvV2lFYVF5RkJtRDFnMXU2UEsvTmFGVDI1L2tTNWJ1dnF5L1dLVGt0UVNhNHNZc1ZLbUlQTQp0Zys0NUZ2aFErNkRuQzd0TmVnaTZDTkdTb0w0R1dPOEE5UDZRNjE5RkJJZ1VjcGpFMTgvUHpQOEJmcTAxajhnCjZmdm1jNkVPMkxHVHhDcW1DbVp0TnI3OCtQaUxkMHZIY3pqY3E3NzhiNW5WRXRpUVNRQkUyb0ozTVlIZUFIUUkKYVFJREFRQUJvMU13VVRBZEJnTlZIUTRFRmdRVUpaMUhlVmx1U3pjY0U2NEZQYWtuNkRBWnhmSXdId1lEVlIwagpCQmd3Rm9BVUpaMUhlVmx1U3pjY0U2NEZQYWtuNkRBWnhmSXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QU5CZ2txCmhraUc5dzBCQVFzRkFBT0NBZ0VBQlhNSlU2MjJZVFZVNnZ1K2svNnkwMGNaWlRmVnZtdVJMOXhTcWxVM0I1QmQKVWdyVWx1TmdjN2dhUUlrYzkvWmh2MnhNd0xxUldMWEhiTWx1NkNvdkNiVTVpeWt0NHVWMnl5UzlZYWhmVVRNVQo3TVE0WFRta2hoS0dGbWZBQ2QzTUVwRE55T3hmWXh0UVBwM1NZT2IxRGFKMmUwY01Gc081bytORGQ5aFVBVzFoCjFLMjMwQnZzYldYYVo4MStIdTU4U1BsYTM5R3FMTG85MzR6dEs4WkRWNFRGTVJxMnNVQ1cxcWFidDh5ejd2RzAKSGV3dXdxelRwR1lTSFI1U0ZvMm45R0xKVUN4SnhxcDlOWVJjMlhUdXRUdkJESzVPMXFZZEJaQzd6cmcxSnczawp2SjI4UGx2TzBQRE42ZVlUdElJdC9yU05ZbW56eVVNRTRYREt0di9KRitLZWZNSWxDTkpzZDRHYXVTdlo5M1NOClhINmcrNEZvRkp4UzNxRmZ0WEc4czNRNnppNzNLRzh5UHZVNHU0WmZNRGd2aG92L0V5YkNLWUpFdVVZSlJWNGEKbmc3cWh3NDBabXQ0eWNCRzU5a2tFSGhNYWtxTWpPaUNkV2x4MEVjZXIxcEFGT1pqN3o1NktURXIxa0ZwUHVaRApjVER5SnNwTjh6dm9CQ0l1ancvQjR6S3kyWStOQitRR1p3dXhyTk9mRGR6ek9yQUE1Ym9OS2gwUUh4c0RxNTExClFaU3hCR21EcGJzN2QzMUQvQll3WEhIUWdwb3FoVUU5dFBGSThpN0pkM2FyeXZCdHlnTWlxSmt1VlRFVk1Ta0UKNTZ0VnFsMjlXenFhRXNrbDN3VUlmczVKKzN3RzRPcWNxRDdXaGQxWUtnc0VUMjdFTWlqVXZIYzQ4TXE0bU1rPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewKubeOidc(ctx, \"my_oidc\", \u0026cloudproject.KubeOidcArgs{\n\t\t\tServiceName:        pulumi.Any(projectid),\n\t\t\tKubeId:             pulumi.Any(mykube.Id),\n\t\t\tClientId:           pulumi.String(\"xxx\"),\n\t\t\tIssuerUrl:          pulumi.String(\"https://ovh.com\"),\n\t\t\tOidcUsernameClaim:  pulumi.String(\"an-email\"),\n\t\t\tOidcUsernamePrefix: pulumi.String(\"ovh:\"),\n\t\t\tOidcGroupsClaims: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"groups\"),\n\t\t\t},\n\t\t\tOidcGroupsPrefix: pulumi.String(\"ovh:\"),\n\t\t\tOidcRequiredClaims: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"claim1=val1\"),\n\t\t\t},\n\t\t\tOidcSigningAlgs: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"RS512\"),\n\t\t\t},\n\t\t\tOidcCaContent: pulumi.String(\"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZhekNDQTFPZ0F3SUJBZ0lVYm9YRkZrL1hCQmdQUUI4UHlqbkttUGVWekNjd0RRWUpLb1pJaHZjTkFRRUwKQlFBd1JURUxNQWtHQTFVRUJoTUNRVlV4RXpBUkJnTlZCQWdNQ2xOdmJXVXRVM1JoZEdVeElUQWZCZ05WQkFvTQpHRWx1ZEdWeWJtVjBJRmRwWkdkcGRITWdVSFI1SUV4MFpEQWVGdzB5TWpFd01UUXdOalE0TlROYUZ3MHlNekV3Ck1UUXdOalE0TlROYU1FVXhDekFKQmdOVkJBWVRBa0ZWTVJNd0VRWURWUVFJREFwVGIyMWxMVk4wWVhSbE1TRXcKSHdZRFZRUUtEQmhKYm5SbGNtNWxkQ0JYYVdSbmFYUnpJRkIwZVNCTWRHUXdnZ0lpTUEwR0NTcUdTSWIzRFFFQgpBUVVBQTRJQ0R3QXdnZ0lLQW9JQ0FRQytPMk53bGx2QTQyT05SUHMyZWlqTUp2UHhpN21RblVSS3FrOHJEV1VkCkwzZU0yM1JXeVhtS1AydDQ5Zi9LVGsweEZNVStOSTUzTEhwWmh6N3NpK3dEUFUvWWZWSS9rQmZsRm8zeVZCMSsKZWdCSnpyNGIrQ3FoaWlCUkh0Vm5LblFKUmdvOVJjVkxhRm82UEY0N1V0UWJ2bWVuNGdERnExVkYwVHhUdnFMdwpIMzRZL0U2QUJsSlZnWFBzaWQzNm54eTErNnlKV05vRXNVekFiekpWMHhzTGhxc2hOazA0TWx4YnBhcG1XcEUxCmFFMHRIZGpjUlI3Y1dTRUUwMnRSQzNYL2tSNjBKb3MxR0N0Y0ZQTTVIN3NjOFBXNFRUem1EWWhOeDRiVjV4T28KU0xYRnI5ajBzZEgxbm1wSlI1dWxJT2dPTWV3MHA2d3JOYVV2MGpxc1hzdVdqMVpxdTRLRi81aEQ3azVhRlhKNQpjYWNTUi9mRWxreW1uZis0eHZFOG8wdkRWNFR5NHo3K3lSS1U0clZvZFNBZWZIN3lqeitLV1RRck96L0lHU2NwCmV1YTdqV0hRMDdMYWxyTjV2b0tFaU1JM3MrWjhzeUdVUGVyYXQwdzJMWlc3NnhxVGl4R002clZxUldxVlQ4L1oKQTJMMEc4WGRvNTZvV2lFYVF5RkJtRDFnMXU2UEsvTmFGVDI1L2tTNWJ1dnF5L1dLVGt0UVNhNHNZc1ZLbUlQTQp0Zys0NUZ2aFErNkRuQzd0TmVnaTZDTkdTb0w0R1dPOEE5UDZRNjE5RkJJZ1VjcGpFMTgvUHpQOEJmcTAxajhnCjZmdm1jNkVPMkxHVHhDcW1DbVp0TnI3OCtQaUxkMHZIY3pqY3E3NzhiNW5WRXRpUVNRQkUyb0ozTVlIZUFIUUkKYVFJREFRQUJvMU13VVRBZEJnTlZIUTRFRmdRVUpaMUhlVmx1U3pjY0U2NEZQYWtuNkRBWnhmSXdId1lEVlIwagpCQmd3Rm9BVUpaMUhlVmx1U3pjY0U2NEZQYWtuNkRBWnhmSXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QU5CZ2txCmhraUc5dzBCQVFzRkFBT0NBZ0VBQlhNSlU2MjJZVFZVNnZ1K2svNnkwMGNaWlRmVnZtdVJMOXhTcWxVM0I1QmQKVWdyVWx1TmdjN2dhUUlrYzkvWmh2MnhNd0xxUldMWEhiTWx1NkNvdkNiVTVpeWt0NHVWMnl5UzlZYWhmVVRNVQo3TVE0WFRta2hoS0dGbWZBQ2QzTUVwRE55T3hmWXh0UVBwM1NZT2IxRGFKMmUwY01Gc081bytORGQ5aFVBVzFoCjFLMjMwQnZzYldYYVo4MStIdTU4U1BsYTM5R3FMTG85MzR6dEs4WkRWNFRGTVJxMnNVQ1cxcWFidDh5ejd2RzAKSGV3dXdxelRwR1lTSFI1U0ZvMm45R0xKVUN4SnhxcDlOWVJjMlhUdXRUdkJESzVPMXFZZEJaQzd6cmcxSnczawp2SjI4UGx2TzBQRE42ZVlUdElJdC9yU05ZbW56eVVNRTRYREt0di9KRitLZWZNSWxDTkpzZDRHYXVTdlo5M1NOClhINmcrNEZvRkp4UzNxRmZ0WEc4czNRNnppNzNLRzh5UHZVNHU0WmZNRGd2aG92L0V5YkNLWUpFdVVZSlJWNGEKbmc3cWh3NDBabXQ0eWNCRzU5a2tFSGhNYWtxTWpPaUNkV2x4MEVjZXIxcEFGT1pqN3o1NktURXIxa0ZwUHVaRApjVER5SnNwTjh6dm9CQ0l1ancvQjR6S3kyWStOQitRR1p3dXhyTk9mRGR6ek9yQUE1Ym9OS2gwUUh4c0RxNTExClFaU3hCR21EcGJzN2QzMUQvQll3WEhIUWdwb3FoVUU5dFBGSThpN0pkM2FyeXZCdHlnTWlxSmt1VlRFVk1Ta0UKNTZ0VnFsMjlXenFhRXNrbDN3VUlmczVKKzN3RzRPcWNxRDdXaGQxWUtnc0VUMjdFTWlqVXZIYzQ4TXE0bU1rPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.CloudProject.KubeOidc;\nimport com.ovhcloud.pulumi.ovh.CloudProject.KubeOidcArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myOidc = new KubeOidc(\"myOidc\", KubeOidcArgs.builder()\n            .serviceName(projectid)\n            .kubeId(mykube.id())\n            .clientId(\"xxx\")\n            .issuerUrl(\"https://ovh.com\")\n            .oidcUsernameClaim(\"an-email\")\n            .oidcUsernamePrefix(\"ovh:\")\n            .oidcGroupsClaims(\"groups\")\n            .oidcGroupsPrefix(\"ovh:\")\n            .oidcRequiredClaims(\"claim1=val1\")\n            .oidcSigningAlgs(\"RS512\")\n            .oidcCaContent(\"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZhekNDQTFPZ0F3SUJBZ0lVYm9YRkZrL1hCQmdQUUI4UHlqbkttUGVWekNjd0RRWUpLb1pJaHZjTkFRRUwKQlFBd1JURUxNQWtHQTFVRUJoTUNRVlV4RXpBUkJnTlZCQWdNQ2xOdmJXVXRVM1JoZEdVeElUQWZCZ05WQkFvTQpHRWx1ZEdWeWJtVjBJRmRwWkdkcGRITWdVSFI1SUV4MFpEQWVGdzB5TWpFd01UUXdOalE0TlROYUZ3MHlNekV3Ck1UUXdOalE0TlROYU1FVXhDekFKQmdOVkJBWVRBa0ZWTVJNd0VRWURWUVFJREFwVGIyMWxMVk4wWVhSbE1TRXcKSHdZRFZRUUtEQmhKYm5SbGNtNWxkQ0JYYVdSbmFYUnpJRkIwZVNCTWRHUXdnZ0lpTUEwR0NTcUdTSWIzRFFFQgpBUVVBQTRJQ0R3QXdnZ0lLQW9JQ0FRQytPMk53bGx2QTQyT05SUHMyZWlqTUp2UHhpN21RblVSS3FrOHJEV1VkCkwzZU0yM1JXeVhtS1AydDQ5Zi9LVGsweEZNVStOSTUzTEhwWmh6N3NpK3dEUFUvWWZWSS9rQmZsRm8zeVZCMSsKZWdCSnpyNGIrQ3FoaWlCUkh0Vm5LblFKUmdvOVJjVkxhRm82UEY0N1V0UWJ2bWVuNGdERnExVkYwVHhUdnFMdwpIMzRZL0U2QUJsSlZnWFBzaWQzNm54eTErNnlKV05vRXNVekFiekpWMHhzTGhxc2hOazA0TWx4YnBhcG1XcEUxCmFFMHRIZGpjUlI3Y1dTRUUwMnRSQzNYL2tSNjBKb3MxR0N0Y0ZQTTVIN3NjOFBXNFRUem1EWWhOeDRiVjV4T28KU0xYRnI5ajBzZEgxbm1wSlI1dWxJT2dPTWV3MHA2d3JOYVV2MGpxc1hzdVdqMVpxdTRLRi81aEQ3azVhRlhKNQpjYWNTUi9mRWxreW1uZis0eHZFOG8wdkRWNFR5NHo3K3lSS1U0clZvZFNBZWZIN3lqeitLV1RRck96L0lHU2NwCmV1YTdqV0hRMDdMYWxyTjV2b0tFaU1JM3MrWjhzeUdVUGVyYXQwdzJMWlc3NnhxVGl4R002clZxUldxVlQ4L1oKQTJMMEc4WGRvNTZvV2lFYVF5RkJtRDFnMXU2UEsvTmFGVDI1L2tTNWJ1dnF5L1dLVGt0UVNhNHNZc1ZLbUlQTQp0Zys0NUZ2aFErNkRuQzd0TmVnaTZDTkdTb0w0R1dPOEE5UDZRNjE5RkJJZ1VjcGpFMTgvUHpQOEJmcTAxajhnCjZmdm1jNkVPMkxHVHhDcW1DbVp0TnI3OCtQaUxkMHZIY3pqY3E3NzhiNW5WRXRpUVNRQkUyb0ozTVlIZUFIUUkKYVFJREFRQUJvMU13VVRBZEJnTlZIUTRFRmdRVUpaMUhlVmx1U3pjY0U2NEZQYWtuNkRBWnhmSXdId1lEVlIwagpCQmd3Rm9BVUpaMUhlVmx1U3pjY0U2NEZQYWtuNkRBWnhmSXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QU5CZ2txCmhraUc5dzBCQVFzRkFBT0NBZ0VBQlhNSlU2MjJZVFZVNnZ1K2svNnkwMGNaWlRmVnZtdVJMOXhTcWxVM0I1QmQKVWdyVWx1TmdjN2dhUUlrYzkvWmh2MnhNd0xxUldMWEhiTWx1NkNvdkNiVTVpeWt0NHVWMnl5UzlZYWhmVVRNVQo3TVE0WFRta2hoS0dGbWZBQ2QzTUVwRE55T3hmWXh0UVBwM1NZT2IxRGFKMmUwY01Gc081bytORGQ5aFVBVzFoCjFLMjMwQnZzYldYYVo4MStIdTU4U1BsYTM5R3FMTG85MzR6dEs4WkRWNFRGTVJxMnNVQ1cxcWFidDh5ejd2RzAKSGV3dXdxelRwR1lTSFI1U0ZvMm45R0xKVUN4SnhxcDlOWVJjMlhUdXRUdkJESzVPMXFZZEJaQzd6cmcxSnczawp2SjI4UGx2TzBQRE42ZVlUdElJdC9yU05ZbW56eVVNRTRYREt0di9KRitLZWZNSWxDTkpzZDRHYXVTdlo5M1NOClhINmcrNEZvRkp4UzNxRmZ0WEc4czNRNnppNzNLRzh5UHZVNHU0WmZNRGd2aG92L0V5YkNLWUpFdVVZSlJWNGEKbmc3cWh3NDBabXQ0eWNCRzU5a2tFSGhNYWtxTWpPaUNkV2x4MEVjZXIxcEFGT1pqN3o1NktURXIxa0ZwUHVaRApjVER5SnNwTjh6dm9CQ0l1ancvQjR6S3kyWStOQitRR1p3dXhyTk9mRGR6ek9yQUE1Ym9OS2gwUUh4c0RxNTExClFaU3hCR21EcGJzN2QzMUQvQll3WEhIUWdwb3FoVUU5dFBGSThpN0pkM2FyeXZCdHlnTWlxSmt1VlRFVk1Ta0UKNTZ0VnFsMjlXenFhRXNrbDN3VUlmczVKKzN3RzRPcWNxRDdXaGQxWUtnc0VUMjdFTWlqVXZIYzQ4TXE0bU1rPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myOidc:\n    type: ovh:CloudProject:KubeOidc\n    name: my_oidc\n    properties:\n      serviceName: ${projectid}\n      kubeId: ${mykube.id}\n      clientId: xxx\n      issuerUrl: https://ovh.com\n      oidcUsernameClaim: an-email\n      oidcUsernamePrefix: 'ovh:'\n      oidcGroupsClaims:\n        - groups\n      oidcGroupsPrefix: 'ovh:'\n      oidcRequiredClaims:\n        - claim1=val1\n      oidcSigningAlgs:\n        - RS512\n      oidcCaContent: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZhekNDQTFPZ0F3SUJBZ0lVYm9YRkZrL1hCQmdQUUI4UHlqbkttUGVWekNjd0RRWUpLb1pJaHZjTkFRRUwKQlFBd1JURUxNQWtHQTFVRUJoTUNRVlV4RXpBUkJnTlZCQWdNQ2xOdmJXVXRVM1JoZEdVeElUQWZCZ05WQkFvTQpHRWx1ZEdWeWJtVjBJRmRwWkdkcGRITWdVSFI1SUV4MFpEQWVGdzB5TWpFd01UUXdOalE0TlROYUZ3MHlNekV3Ck1UUXdOalE0TlROYU1FVXhDekFKQmdOVkJBWVRBa0ZWTVJNd0VRWURWUVFJREFwVGIyMWxMVk4wWVhSbE1TRXcKSHdZRFZRUUtEQmhKYm5SbGNtNWxkQ0JYYVdSbmFYUnpJRkIwZVNCTWRHUXdnZ0lpTUEwR0NTcUdTSWIzRFFFQgpBUVVBQTRJQ0R3QXdnZ0lLQW9JQ0FRQytPMk53bGx2QTQyT05SUHMyZWlqTUp2UHhpN21RblVSS3FrOHJEV1VkCkwzZU0yM1JXeVhtS1AydDQ5Zi9LVGsweEZNVStOSTUzTEhwWmh6N3NpK3dEUFUvWWZWSS9rQmZsRm8zeVZCMSsKZWdCSnpyNGIrQ3FoaWlCUkh0Vm5LblFKUmdvOVJjVkxhRm82UEY0N1V0UWJ2bWVuNGdERnExVkYwVHhUdnFMdwpIMzRZL0U2QUJsSlZnWFBzaWQzNm54eTErNnlKV05vRXNVekFiekpWMHhzTGhxc2hOazA0TWx4YnBhcG1XcEUxCmFFMHRIZGpjUlI3Y1dTRUUwMnRSQzNYL2tSNjBKb3MxR0N0Y0ZQTTVIN3NjOFBXNFRUem1EWWhOeDRiVjV4T28KU0xYRnI5ajBzZEgxbm1wSlI1dWxJT2dPTWV3MHA2d3JOYVV2MGpxc1hzdVdqMVpxdTRLRi81aEQ3azVhRlhKNQpjYWNTUi9mRWxreW1uZis0eHZFOG8wdkRWNFR5NHo3K3lSS1U0clZvZFNBZWZIN3lqeitLV1RRck96L0lHU2NwCmV1YTdqV0hRMDdMYWxyTjV2b0tFaU1JM3MrWjhzeUdVUGVyYXQwdzJMWlc3NnhxVGl4R002clZxUldxVlQ4L1oKQTJMMEc4WGRvNTZvV2lFYVF5RkJtRDFnMXU2UEsvTmFGVDI1L2tTNWJ1dnF5L1dLVGt0UVNhNHNZc1ZLbUlQTQp0Zys0NUZ2aFErNkRuQzd0TmVnaTZDTkdTb0w0R1dPOEE5UDZRNjE5RkJJZ1VjcGpFMTgvUHpQOEJmcTAxajhnCjZmdm1jNkVPMkxHVHhDcW1DbVp0TnI3OCtQaUxkMHZIY3pqY3E3NzhiNW5WRXRpUVNRQkUyb0ozTVlIZUFIUUkKYVFJREFRQUJvMU13VVRBZEJnTlZIUTRFRmdRVUpaMUhlVmx1U3pjY0U2NEZQYWtuNkRBWnhmSXdId1lEVlIwagpCQmd3Rm9BVUpaMUhlVmx1U3pjY0U2NEZQYWtuNkRBWnhmSXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QU5CZ2txCmhraUc5dzBCQVFzRkFBT0NBZ0VBQlhNSlU2MjJZVFZVNnZ1K2svNnkwMGNaWlRmVnZtdVJMOXhTcWxVM0I1QmQKVWdyVWx1TmdjN2dhUUlrYzkvWmh2MnhNd0xxUldMWEhiTWx1NkNvdkNiVTVpeWt0NHVWMnl5UzlZYWhmVVRNVQo3TVE0WFRta2hoS0dGbWZBQ2QzTUVwRE55T3hmWXh0UVBwM1NZT2IxRGFKMmUwY01Gc081bytORGQ5aFVBVzFoCjFLMjMwQnZzYldYYVo4MStIdTU4U1BsYTM5R3FMTG85MzR6dEs4WkRWNFRGTVJxMnNVQ1cxcWFidDh5ejd2RzAKSGV3dXdxelRwR1lTSFI1U0ZvMm45R0xKVUN4SnhxcDlOWVJjMlhUdXRUdkJESzVPMXFZZEJaQzd6cmcxSnczawp2SjI4UGx2TzBQRE42ZVlUdElJdC9yU05ZbW56eVVNRTRYREt0di9KRitLZWZNSWxDTkpzZDRHYXVTdlo5M1NOClhINmcrNEZvRkp4UzNxRmZ0WEc4czNRNnppNzNLRzh5UHZVNHU0WmZNRGd2aG92L0V5YkNLWUpFdVVZSlJWNGEKbmc3cWh3NDBabXQ0eWNCRzU5a2tFSGhNYWtxTWpPaUNkV2x4MEVjZXIxcEFGT1pqN3o1NktURXIxa0ZwUHVaRApjVER5SnNwTjh6dm9CQ0l1ancvQjR6S3kyWStOQitRR1p3dXhyTk9mRGR6ek9yQUE1Ym9OS2gwUUh4c0RxNTExClFaU3hCR21EcGJzN2QzMUQvQll3WEhIUWdwb3FoVUU5dFBGSThpN0pkM2FyeXZCdHlnTWlxSmt1VlRFVk1Ta0UKNTZ0VnFsMjlXenFhRXNrbDN3VUlmczVKKzN3RzRPcWNxRDdXaGQxWUtnc0VUMjdFTWlqVXZIYzQ4TXE0bU1rPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed Kubernetes Service cluster OIDC can be imported using the tenant `service_name` and cluster id `kube_id` separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProject/kubeOidc:KubeOidc my-oidc service_name/kube_id\n```\n\n","properties":{"clientId":{"type":"string","description":"The OIDC client ID.\n"},"issuerUrl":{"type":"string","description":"The OIDC issuer url.\n"},"kubeId":{"type":"string","description":"The ID of the managed kubernetes cluster. **Changing this value recreates the resource.**\n"},"oidcCaContent":{"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","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","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","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","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.**\n"}},"required":["clientId","issuerUrl","kubeId","serviceName"],"inputProperties":{"clientId":{"type":"string","description":"The OIDC client ID.\n"},"issuerUrl":{"type":"string","description":"The OIDC issuer url.\n"},"kubeId":{"type":"string","description":"The ID of the managed kubernetes cluster. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"oidcCaContent":{"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","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","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","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","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true}},"requiredInputs":["clientId","issuerUrl","kubeId"],"stateInputs":{"description":"Input properties used for looking up and filtering KubeOidc resources.\n","properties":{"clientId":{"type":"string","description":"The OIDC client ID.\n"},"issuerUrl":{"type":"string","description":"The OIDC issuer url.\n"},"kubeId":{"type":"string","description":"The ID of the managed kubernetes cluster. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"oidcCaContent":{"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","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","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","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","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:CloudProject/loadBalancer:LoadBalancer":{"description":"Create a load balancer in a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst lb = new ovh.cloudproject.LoadBalancer(\"lb\", {\n    serviceName: \"\u003cpublic cloud project ID\u003e\",\n    regionName: \"GRA9\",\n    flavorId: \"\u003cloadbalancer flavor ID\u003e\",\n    network: {\n        \"private\": {\n            network: {\n                id: .filter(region =\u003e region.region == \"GRA9\").map(region =\u003e (region))[0].openstackid,\n                subnetId: myprivsub.id,\n            },\n        },\n    },\n    description: \"My new LB\",\n    listeners: [\n        {\n            port: 34568,\n            protocol: \"tcp\",\n        },\n        {\n            port: 34569,\n            protocol: \"udp\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.cloudproject.LoadBalancer(\"lb\",\n    service_name=\"\u003cpublic cloud project ID\u003e\",\n    region_name=\"GRA9\",\n    flavor_id=\"\u003cloadbalancer flavor ID\u003e\",\n    network={\n        \"private\": {\n            \"network\": {\n                \"id\": [region for region in mypriv[\"regionsAttributes\"] if region[\"region\"] == \"GRA9\"][0][\"openstackid\"],\n                \"subnet_id\": myprivsub[\"id\"],\n            },\n        },\n    },\n    description=\"My new LB\",\n    listeners=[\n        {\n            \"port\": 34568,\n            \"protocol\": \"tcp\",\n        },\n        {\n            \"port\": 34569,\n            \"protocol\": \"udp\",\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 lb = new Ovh.CloudProject.LoadBalancer(\"lb\", new()\n    {\n        ServiceName = \"\u003cpublic cloud project ID\u003e\",\n        RegionName = \"GRA9\",\n        FlavorId = \"\u003cloadbalancer flavor ID\u003e\",\n        Network = new Ovh.CloudProject.Inputs.LoadBalancerNetworkArgs\n        {\n            Private = new Ovh.CloudProject.Inputs.LoadBalancerNetworkPrivateArgs\n            {\n                Network = new Ovh.CloudProject.Inputs.LoadBalancerNetworkPrivateNetworkArgs\n                {\n                    Id = .Where(region =\u003e region.Region == \"GRA9\").Select(region =\u003e \n                    {\n                        return region;\n                    }).ToList()[0].Openstackid,\n                    SubnetId = myprivsub.Id,\n                },\n            },\n        },\n        Description = \"My new LB\",\n        Listeners = new[]\n        {\n            new Ovh.CloudProject.Inputs.LoadBalancerListenerArgs\n            {\n                Port = 34568,\n                Protocol = \"tcp\",\n            },\n            new Ovh.CloudProject.Inputs.LoadBalancerListenerArgs\n            {\n                Port = 34569,\n                Protocol = \"udp\",\n            },\n        },\n    });\n\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example usage with network and subnet creation\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst priv = new ovh.cloudproject.NetworkPrivate(\"priv\", {\n    serviceName: \"\u003cpublic cloud project ID\u003e\",\n    vlanId: 10,\n    name: \"my_priv\",\n    regions: [\"GRA9\"],\n});\nconst privsub = new ovh.cloudproject.NetworkPrivateSubnet(\"privsub\", {\n    serviceName: priv.serviceName,\n    networkId: priv.id,\n    region: \"GRA9\",\n    start: \"10.0.0.2\",\n    end: \"10.0.255.254\",\n    network: \"10.0.0.0/16\",\n    dhcp: true,\n});\nconst lb = new ovh.cloudproject.LoadBalancer(\"lb\", {\n    serviceName: privsub.serviceName,\n    regionName: privsub.region,\n    flavorId: \"\u003cloadbalancer flavor ID\u003e\",\n    network: {\n        \"private\": {\n            network: {\n                id: priv.regionsAttributes.apply(regionsAttributes =\u003e regionsAttributes.filter(region =\u003e region.region == \"GRA9\").map(region =\u003e (region)))[0].apply(regions =\u003e regions.openstackid),\n                subnetId: privsub.id,\n            },\n        },\n    },\n    description: \"My new LB\",\n    listeners: [\n        {\n            port: 34568,\n            protocol: \"tcp\",\n        },\n        {\n            port: 34569,\n            protocol: \"udp\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\npriv = ovh.cloudproject.NetworkPrivate(\"priv\",\n    service_name=\"\u003cpublic cloud project ID\u003e\",\n    vlan_id=10,\n    name=\"my_priv\",\n    regions=[\"GRA9\"])\nprivsub = ovh.cloudproject.NetworkPrivateSubnet(\"privsub\",\n    service_name=priv.service_name,\n    network_id=priv.id,\n    region=\"GRA9\",\n    start=\"10.0.0.2\",\n    end=\"10.0.255.254\",\n    network=\"10.0.0.0/16\",\n    dhcp=True)\nlb = ovh.cloudproject.LoadBalancer(\"lb\",\n    service_name=privsub.service_name,\n    region_name=privsub.region,\n    flavor_id=\"\u003cloadbalancer flavor ID\u003e\",\n    network={\n        \"private\": {\n            \"network\": {\n                \"id\": priv.regions_attributes.apply(lambda regions_attributes: [region for region in regions_attributes if region.region == \"GRA9\"])[0].apply(lambda regions: regions.openstackid),\n                \"subnet_id\": privsub.id,\n            },\n        },\n    },\n    description=\"My new LB\",\n    listeners=[\n        {\n            \"port\": 34568,\n            \"protocol\": \"tcp\",\n        },\n        {\n            \"port\": 34569,\n            \"protocol\": \"udp\",\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 priv = new Ovh.CloudProject.NetworkPrivate(\"priv\", new()\n    {\n        ServiceName = \"\u003cpublic cloud project ID\u003e\",\n        VlanId = 10,\n        Name = \"my_priv\",\n        Regions = new[]\n        {\n            \"GRA9\",\n        },\n    });\n\n    var privsub = new Ovh.CloudProject.NetworkPrivateSubnet(\"privsub\", new()\n    {\n        ServiceName = priv.ServiceName,\n        NetworkId = priv.Id,\n        Region = \"GRA9\",\n        Start = \"10.0.0.2\",\n        End = \"10.0.255.254\",\n        Network = \"10.0.0.0/16\",\n        Dhcp = true,\n    });\n\n    var lb = new Ovh.CloudProject.LoadBalancer(\"lb\", new()\n    {\n        ServiceName = privsub.ServiceName,\n        RegionName = privsub.Region,\n        FlavorId = \"\u003cloadbalancer flavor ID\u003e\",\n        Network = new Ovh.CloudProject.Inputs.LoadBalancerNetworkArgs\n        {\n            Private = new Ovh.CloudProject.Inputs.LoadBalancerNetworkPrivateArgs\n            {\n                Network = new Ovh.CloudProject.Inputs.LoadBalancerNetworkPrivateNetworkArgs\n                {\n                    Id = priv.RegionsAttributes.Apply(regionsAttributes =\u003e regionsAttributes.Where(region =\u003e region.Region == \"GRA9\").Select(region =\u003e \n                    {\n                        return region;\n                    }).ToList())[0].Apply(regions =\u003e regions.Openstackid),\n                    SubnetId = privsub.Id,\n                },\n            },\n        },\n        Description = \"My new LB\",\n        Listeners = new[]\n        {\n            new Ovh.CloudProject.Inputs.LoadBalancerListenerArgs\n            {\n                Port = 34568,\n                Protocol = \"tcp\",\n            },\n            new Ovh.CloudProject.Inputs.LoadBalancerListenerArgs\n            {\n                Port = 34569,\n                Protocol = \"udp\",\n            },\n        },\n    });\n\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nA load balancer in a public cloud project can be imported using the `service_name`, `region_name` and `id` attributes. Using the following configuration:\n\nterraform\n\nimport {\n\n  id = \"\u003cservice_name\u003e/\u003cregion_name\u003e/\u003cid\u003e\"\n\n  to = ovh_cloud_project_loadbalancer.lb\n\n}\n\nYou can then run:\n\nbash\n\n$ pulumi preview -generate-config-out=lb.tf\n\n$ pulumi up\n\nThe file `lb.tf` will then contain the imported resource's configuration, that can be copied next to the `import` block above. See https://developer.hashicorp.com/terraform/language/import/generating-configuration for more details.\n\n","properties":{"createdAt":{"type":"string","description":"The UTC date and timestamp when the resource was created\n"},"description":{"type":"string","description":"Description of the loadbalancer\n"},"flavorId":{"type":"string","description":"Loadbalancer flavor id\n"},"floatingIp":{"$ref":"#/types/ovh:CloudProject/LoadBalancerFloatingIp:LoadBalancerFloatingIp","description":"Information about floating IP\n"},"listeners":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/LoadBalancerListener:LoadBalancerListener"},"description":"Listeners to create with the loadbalancer\n"},"name":{"type":"string","description":"Name of the resource\n"},"network":{"$ref":"#/types/ovh:CloudProject/LoadBalancerNetwork:LoadBalancerNetwork","description":"Network information to create the loadbalancer\n"},"operatingStatus":{"type":"string","description":"Operating status of the resource\n"},"provisioningStatus":{"type":"string","description":"Provisioning status of the resource\n"},"region":{"type":"string","description":"Region of the resource\n"},"regionName":{"type":"string","description":"Region name\n"},"serviceName":{"type":"string","description":"ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"updatedAt":{"type":"string","description":"UTC date and timestamp when the resource was created\n"},"vipAddress":{"type":"string","description":"IP address of the Virtual IP\n"},"vipNetworkId":{"type":"string","description":"Openstack ID of the network for the Virtual IP\n"},"vipSubnetId":{"type":"string","description":"ID of the subnet for the Virtual IP\n"}},"required":["createdAt","flavorId","floatingIp","name","network","operatingStatus","provisioningStatus","region","regionName","updatedAt","vipAddress","vipNetworkId","vipSubnetId"],"inputProperties":{"description":{"type":"string","description":"Description of the loadbalancer\n"},"flavorId":{"type":"string","description":"Loadbalancer flavor id\n"},"listeners":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/LoadBalancerListener:LoadBalancerListener"},"description":"Listeners to create with the loadbalancer\n"},"name":{"type":"string","description":"Name of the resource\n"},"network":{"$ref":"#/types/ovh:CloudProject/LoadBalancerNetwork:LoadBalancerNetwork","description":"Network information to create the loadbalancer\n"},"regionName":{"type":"string","description":"Region name\n"},"serviceName":{"type":"string","description":"ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"requiredInputs":["flavorId","network","regionName"],"stateInputs":{"description":"Input properties used for looking up and filtering LoadBalancer resources.\n","properties":{"createdAt":{"type":"string","description":"The UTC date and timestamp when the resource was created\n"},"description":{"type":"string","description":"Description of the loadbalancer\n"},"flavorId":{"type":"string","description":"Loadbalancer flavor id\n"},"floatingIp":{"$ref":"#/types/ovh:CloudProject/LoadBalancerFloatingIp:LoadBalancerFloatingIp","description":"Information about floating IP\n"},"listeners":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/LoadBalancerListener:LoadBalancerListener"},"description":"Listeners to create with the loadbalancer\n"},"name":{"type":"string","description":"Name of the resource\n"},"network":{"$ref":"#/types/ovh:CloudProject/LoadBalancerNetwork:LoadBalancerNetwork","description":"Network information to create the loadbalancer\n"},"operatingStatus":{"type":"string","description":"Operating status of the resource\n"},"provisioningStatus":{"type":"string","description":"Provisioning status of the resource\n"},"region":{"type":"string","description":"Region of the resource\n"},"regionName":{"type":"string","description":"Region name\n"},"serviceName":{"type":"string","description":"ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"updatedAt":{"type":"string","description":"UTC date and timestamp when the resource was created\n"},"vipAddress":{"type":"string","description":"IP address of the Virtual IP\n"},"vipNetworkId":{"type":"string","description":"Openstack ID of the network for the Virtual IP\n"},"vipSubnetId":{"type":"string","description":"ID of the subnet for the Virtual IP\n"}},"type":"object"}},"ovh:CloudProject/networkPrivate:NetworkPrivate":{"description":"Creates a private network in a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst net = new ovh.cloudproject.NetworkPrivate(\"net\", {\n    serviceName: \"XXXXXX\",\n    name: \"admin_network\",\n    regions: [\n        \"GRA1\",\n        \"BHS1\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nnet = ovh.cloudproject.NetworkPrivate(\"net\",\n    service_name=\"XXXXXX\",\n    name=\"admin_network\",\n    regions=[\n        \"GRA1\",\n        \"BHS1\",\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 net = new Ovh.CloudProject.NetworkPrivate(\"net\", new()\n    {\n        ServiceName = \"XXXXXX\",\n        Name = \"admin_network\",\n        Regions = new[]\n        {\n            \"GRA1\",\n            \"BHS1\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewNetworkPrivate(ctx, \"net\", \u0026cloudproject.NetworkPrivateArgs{\n\t\t\tServiceName: pulumi.String(\"XXXXXX\"),\n\t\t\tName:        pulumi.String(\"admin_network\"),\n\t\t\tRegions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"GRA1\"),\n\t\t\t\tpulumi.String(\"BHS1\"),\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.ovhcloud.pulumi.ovh.CloudProject.NetworkPrivate;\nimport com.ovhcloud.pulumi.ovh.CloudProject.NetworkPrivateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var net = new NetworkPrivate(\"net\", NetworkPrivateArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .name(\"admin_network\")\n            .regions(            \n                \"GRA1\",\n                \"BHS1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  net:\n    type: ovh:CloudProject:NetworkPrivate\n    properties:\n      serviceName: XXXXXX\n      name: admin_network\n      regions:\n        - GRA1\n        - BHS1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPrivate network in a public cloud project can be imported using the `service_name` and the `network_id` as `pn-xxxx` format, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProject/networkPrivate:NetworkPrivate mynet service_name/network_id\n```\n\n","properties":{"name":{"type":"string","description":"The name of the network.\n"},"regions":{"type":"array","items":{"type":"string"},"description":"an array of valid OVHcloud public cloud region ID in which the network will be available. Ex.: \"GRA1\". Defaults to all public cloud regions.\n"},"regionsAttributes":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/NetworkPrivateRegionsAttribute:NetworkPrivateRegionsAttribute"},"description":"A map representing information about the region.\n* `regions_attributes/region` - The id of the region.\n* `regions_attributes/status` - The status of the network in the region.\n* `regions_attributes/openstackid` - The private network id in the region.\n"},"regionsOpenstackIds":{"type":"object","additionalProperties":{"type":"string"},"description":"A map with region name as key, and region-specific openstack id as value\n"},"regionsStatuses":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/NetworkPrivateRegionsStatus:NetworkPrivateRegionsStatus"},"description":"(Deprecated) A map representing the status of the network per region.\n* `regions_status/region` - (Deprecated) The id of the region.\n* `regions_status/status` - (Deprecated) The status of the network in the region.\n","deprecationMessage":"use the regions_attributes field instead"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"status":{"type":"string","description":"the status of the network. should be normally set to 'ACTIVE'.\n"},"type":{"type":"string","description":"the type of the network. Either 'private' or 'public'.\n"},"vlanId":{"type":"integer","description":"a vlan id to associate with the network. Changing this value recreates the resource. Defaults to 0.\n"}},"required":["name","regions","regionsAttributes","regionsOpenstackIds","regionsStatuses","serviceName","status","type"],"inputProperties":{"name":{"type":"string","description":"The name of the network.\n"},"regions":{"type":"array","items":{"type":"string"},"description":"an array of valid OVHcloud public cloud region ID in which the network will be available. Ex.: \"GRA1\". Defaults to all public cloud regions.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"vlanId":{"type":"integer","description":"a vlan id to associate with the network. Changing this value recreates the resource. Defaults to 0.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering NetworkPrivate resources.\n","properties":{"name":{"type":"string","description":"The name of the network.\n"},"regions":{"type":"array","items":{"type":"string"},"description":"an array of valid OVHcloud public cloud region ID in which the network will be available. Ex.: \"GRA1\". Defaults to all public cloud regions.\n"},"regionsAttributes":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/NetworkPrivateRegionsAttribute:NetworkPrivateRegionsAttribute"},"description":"A map representing information about the region.\n* `regions_attributes/region` - The id of the region.\n* `regions_attributes/status` - The status of the network in the region.\n* `regions_attributes/openstackid` - The private network id in the region.\n"},"regionsOpenstackIds":{"type":"object","additionalProperties":{"type":"string"},"description":"A map with region name as key, and region-specific openstack id as value\n"},"regionsStatuses":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/NetworkPrivateRegionsStatus:NetworkPrivateRegionsStatus"},"description":"(Deprecated) A map representing the status of the network per region.\n* `regions_status/region` - (Deprecated) The id of the region.\n* `regions_status/status` - (Deprecated) The status of the network in the region.\n","deprecationMessage":"use the regions_attributes field instead"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"the status of the network. should be normally set to 'ACTIVE'.\n"},"type":{"type":"string","description":"the type of the network. Either 'private' or 'public'.\n"},"vlanId":{"type":"integer","description":"a vlan id to associate with the network. Changing this value recreates the resource. Defaults to 0.\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:CloudProject/networkPrivateSubnet:NetworkPrivateSubnet":{"description":"Creates a subnet in a private network of a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst subnet = new ovh.cloudproject.NetworkPrivateSubnet(\"subnet\", {\n    serviceName: \"xxxxx\",\n    networkId: \"0234543\",\n    region: \"GRA1\",\n    start: \"192.168.168.100\",\n    end: \"192.168.168.200\",\n    network: \"192.168.168.0/24\",\n    dhcp: true,\n    noGateway: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nsubnet = ovh.cloudproject.NetworkPrivateSubnet(\"subnet\",\n    service_name=\"xxxxx\",\n    network_id=\"0234543\",\n    region=\"GRA1\",\n    start=\"192.168.168.100\",\n    end=\"192.168.168.200\",\n    network=\"192.168.168.0/24\",\n    dhcp=True,\n    no_gateway=False)\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 subnet = new Ovh.CloudProject.NetworkPrivateSubnet(\"subnet\", new()\n    {\n        ServiceName = \"xxxxx\",\n        NetworkId = \"0234543\",\n        Region = \"GRA1\",\n        Start = \"192.168.168.100\",\n        End = \"192.168.168.200\",\n        Network = \"192.168.168.0/24\",\n        Dhcp = true,\n        NoGateway = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewNetworkPrivateSubnet(ctx, \"subnet\", \u0026cloudproject.NetworkPrivateSubnetArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxx\"),\n\t\t\tNetworkId:   pulumi.String(\"0234543\"),\n\t\t\tRegion:      pulumi.String(\"GRA1\"),\n\t\t\tStart:       pulumi.String(\"192.168.168.100\"),\n\t\t\tEnd:         pulumi.String(\"192.168.168.200\"),\n\t\t\tNetwork:     pulumi.String(\"192.168.168.0/24\"),\n\t\t\tDhcp:        pulumi.Bool(true),\n\t\t\tNoGateway:   pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.CloudProject.NetworkPrivateSubnet;\nimport com.ovhcloud.pulumi.ovh.CloudProject.NetworkPrivateSubnetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var subnet = new NetworkPrivateSubnet(\"subnet\", NetworkPrivateSubnetArgs.builder()\n            .serviceName(\"xxxxx\")\n            .networkId(\"0234543\")\n            .region(\"GRA1\")\n            .start(\"192.168.168.100\")\n            .end(\"192.168.168.200\")\n            .network(\"192.168.168.0/24\")\n            .dhcp(true)\n            .noGateway(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  subnet:\n    type: ovh:CloudProject:NetworkPrivateSubnet\n    properties:\n      serviceName: xxxxx\n      networkId: '0234543'\n      region: GRA1\n      start: 192.168.168.100\n      end: 192.168.168.200\n      network: 192.168.168.0/24\n      dhcp: true\n      noGateway: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSubnet in a private network of a public cloud project can be imported using the `service_name` , the `network_id` as `pn-xxxx` format and the `subnet_id`, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProject/networkPrivateSubnet:NetworkPrivateSubnet mysubnet service_name/network_id/subnet_id\n```\n\n","properties":{"cidr":{"type":"string","description":"Ip Block representing the subnet cidr.\n"},"dhcp":{"type":"boolean","description":"Enable DHCP. Changing this forces a new resource to be created. Defaults to false.\n"},"end":{"type":"string","description":"Last ip for this region. Changing this value recreates the subnet.\n"},"gatewayIp":{"type":"string","description":"The IP of the gateway\n"},"ipPools":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/NetworkPrivateSubnetIpPool:NetworkPrivateSubnetIpPool"},"description":"List of ip pools allocated in the subnet.\n* `ip_pools/network` - Global network with cidr.\n* `ip_pools/region` - Region where this subnet is created.\n* `ip_pools/dhcp` - DHCP enabled.\n* `ip_pools/end` - Last ip for this region.\n* `ip_pools/start` - First ip for this region.\n"},"network":{"type":"string","description":"Global network in CIDR format. Changing this value recreates the subnet\n"},"networkId":{"type":"string","description":"The id of the network. Changing this forces a new resource to be created.\n"},"noGateway":{"type":"boolean","description":"Set to true if you don't want to set a default gateway IP. Changing this value recreates the resource. Defaults to false.\n"},"region":{"type":"string","description":"The region in which the network subnet will be created. Ex.: \"GRA1\". Changing this value recreates the resource.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"start":{"type":"string","description":"First ip for this region. Changing this value recreates the subnet.\n"}},"required":["cidr","end","gatewayIp","ipPools","network","networkId","region","serviceName","start"],"inputProperties":{"dhcp":{"type":"boolean","description":"Enable DHCP. Changing this forces a new resource to be created. Defaults to false.\n","willReplaceOnChanges":true},"end":{"type":"string","description":"Last ip for this region. Changing this value recreates the subnet.\n","willReplaceOnChanges":true},"network":{"type":"string","description":"Global network in CIDR format. Changing this value recreates the subnet\n","willReplaceOnChanges":true},"networkId":{"type":"string","description":"The id of the network. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"noGateway":{"type":"boolean","description":"Set to true if you don't want to set a default gateway IP. Changing this value recreates the resource. Defaults to false.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"The region in which the network subnet will be created. Ex.: \"GRA1\". Changing this value recreates the resource.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"start":{"type":"string","description":"First ip for this region. Changing this value recreates the subnet.\n","willReplaceOnChanges":true}},"requiredInputs":["end","network","networkId","region","start"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkPrivateSubnet resources.\n","properties":{"cidr":{"type":"string","description":"Ip Block representing the subnet cidr.\n"},"dhcp":{"type":"boolean","description":"Enable DHCP. Changing this forces a new resource to be created. Defaults to false.\n","willReplaceOnChanges":true},"end":{"type":"string","description":"Last ip for this region. Changing this value recreates the subnet.\n","willReplaceOnChanges":true},"gatewayIp":{"type":"string","description":"The IP of the gateway\n"},"ipPools":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/NetworkPrivateSubnetIpPool:NetworkPrivateSubnetIpPool"},"description":"List of ip pools allocated in the subnet.\n* `ip_pools/network` - Global network with cidr.\n* `ip_pools/region` - Region where this subnet is created.\n* `ip_pools/dhcp` - DHCP enabled.\n* `ip_pools/end` - Last ip for this region.\n* `ip_pools/start` - First ip for this region.\n"},"network":{"type":"string","description":"Global network in CIDR format. Changing this value recreates the subnet\n","willReplaceOnChanges":true},"networkId":{"type":"string","description":"The id of the network. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"noGateway":{"type":"boolean","description":"Set to true if you don't want to set a default gateway IP. Changing this value recreates the resource. Defaults to false.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"The region in which the network subnet will be created. Ex.: \"GRA1\". Changing this value recreates the resource.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"start":{"type":"string","description":"First ip for this region. Changing this value recreates the subnet.\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:CloudProject/networkPrivateSubnetV2:NetworkPrivateSubnetV2":{"description":"Creates a subnet in a private network of a public cloud region.\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 subnet = new ovh.cloudproject.NetworkPrivateSubnetV2(\"subnet\", {\n    serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    networkId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    name: \"my_private_subnet\",\n    region: \"XXX1\",\n    dnsNameservers: [\"1.1.1.1\"],\n    cidr: \"192.168.168.0/24\",\n    dhcp: true,\n    enableGatewayIp: true,\n    useDefaultPublicDnsResolver: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nsubnet = ovh.cloudproject.NetworkPrivateSubnetV2(\"subnet\",\n    service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    network_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    name=\"my_private_subnet\",\n    region=\"XXX1\",\n    dns_nameservers=[\"1.1.1.1\"],\n    cidr=\"192.168.168.0/24\",\n    dhcp=True,\n    enable_gateway_ip=True,\n    use_default_public_dns_resolver=False)\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 subnet = new Ovh.CloudProject.NetworkPrivateSubnetV2(\"subnet\", new()\n    {\n        ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n        NetworkId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n        Name = \"my_private_subnet\",\n        Region = \"XXX1\",\n        DnsNameservers = new[]\n        {\n            \"1.1.1.1\",\n        },\n        Cidr = \"192.168.168.0/24\",\n        Dhcp = true,\n        EnableGatewayIp = true,\n        UseDefaultPublicDnsResolver = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewNetworkPrivateSubnetV2(ctx, \"subnet\", \u0026cloudproject.NetworkPrivateSubnetV2Args{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tNetworkId:   pulumi.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"),\n\t\t\tName:        pulumi.String(\"my_private_subnet\"),\n\t\t\tRegion:      pulumi.String(\"XXX1\"),\n\t\t\tDnsNameservers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1.1.1.1\"),\n\t\t\t},\n\t\t\tCidr:                        pulumi.String(\"192.168.168.0/24\"),\n\t\t\tDhcp:                        pulumi.Bool(true),\n\t\t\tEnableGatewayIp:             pulumi.Bool(true),\n\t\t\tUseDefaultPublicDnsResolver: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.CloudProject.NetworkPrivateSubnetV2;\nimport com.ovhcloud.pulumi.ovh.CloudProject.NetworkPrivateSubnetV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var subnet = new NetworkPrivateSubnetV2(\"subnet\", NetworkPrivateSubnetV2Args.builder()\n            .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n            .networkId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n            .name(\"my_private_subnet\")\n            .region(\"XXX1\")\n            .dnsNameservers(\"1.1.1.1\")\n            .cidr(\"192.168.168.0/24\")\n            .dhcp(true)\n            .enableGatewayIp(true)\n            .useDefaultPublicDnsResolver(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  subnet:\n    type: ovh:CloudProject:NetworkPrivateSubnetV2\n    properties:\n      serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n      networkId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n      name: my_private_subnet\n      region: XXX1\n      dnsNameservers:\n        - 1.1.1.1\n      cidr: 192.168.168.0/24\n      dhcp: true\n      enableGatewayIp: true\n      useDefaultPublicDnsResolver: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSubnet in a private network of a public cloud project can be imported using the `service_name`, `region`, `network_id` and `subnet_id`, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProject/networkPrivateSubnetV2:NetworkPrivateSubnetV2 mysubnet 5ceb661434891538b54a4f2c66fc4b746e/BHS5/25807101-8aaa-4ea5-b507-61f0d661b101/0f0b73a4-403b-45e4-86d0-b438f1291909\n```\n\n","properties":{"allocationPools":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/NetworkPrivateSubnetV2AllocationPool:NetworkPrivateSubnetV2AllocationPool"},"description":"List of IP allocation pools Changing this value recreates the resource.\n"},"cidr":{"type":"string","description":"IP range of the subnet Changing this value recreates the subnet.\n"},"dhcp":{"type":"boolean","description":"Enable DHCP. Changing this forces a new resource to be created. Defaults to true.\n"},"dnsNameservers":{"type":"array","items":{"type":"string"},"description":"DNS nameservers used by DHCP Changing this value recreates the resource. Defaults to OVH default DNS nameserver.\n"},"enableGatewayIp":{"type":"boolean","description":"Set to true if you want to set a default gateway IP. Changing this value recreates the resource. Defaults to true.\n"},"gatewayIp":{"type":"string","description":"See Argument Reference above.\n"},"hostRoutes":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/NetworkPrivateSubnetV2HostRoute:NetworkPrivateSubnetV2HostRoute"},"description":"List of custom host routes. Changing this value recreates the resource.\n"},"name":{"type":"string","description":"Name of the subnet Changing this value recreates the subnet.\n"},"networkId":{"type":"string","description":"The id of the network. Changing this forces a new resource to be created.\n"},"region":{"type":"string","description":"The region in which the network subnet will be created. Ex.: \"GRA1\". Changing this value recreates the resource.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"useDefaultPublicDnsResolver":{"type":"boolean","description":"Set to false if you want to use your DNS resolver. Changing this value recreates the resource.\n"}},"required":["allocationPools","cidr","dnsNameservers","gatewayIp","name","networkId","region","serviceName"],"inputProperties":{"allocationPools":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/NetworkPrivateSubnetV2AllocationPool:NetworkPrivateSubnetV2AllocationPool"},"description":"List of IP allocation pools Changing this value recreates the resource.\n","willReplaceOnChanges":true},"cidr":{"type":"string","description":"IP range of the subnet Changing this value recreates the subnet.\n","willReplaceOnChanges":true},"dhcp":{"type":"boolean","description":"Enable DHCP. Changing this forces a new resource to be created. Defaults to true.\n","willReplaceOnChanges":true},"dnsNameservers":{"type":"array","items":{"type":"string"},"description":"DNS nameservers used by DHCP Changing this value recreates the resource. Defaults to OVH default DNS nameserver.\n","willReplaceOnChanges":true},"enableGatewayIp":{"type":"boolean","description":"Set to true if you want to set a default gateway IP. Changing this value recreates the resource. Defaults to true.\n","willReplaceOnChanges":true},"gatewayIp":{"type":"string","description":"See Argument Reference above.\n","willReplaceOnChanges":true},"hostRoutes":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/NetworkPrivateSubnetV2HostRoute:NetworkPrivateSubnetV2HostRoute"},"description":"List of custom host routes. Changing this value recreates the resource.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Name of the subnet Changing this value recreates the subnet.\n","willReplaceOnChanges":true},"networkId":{"type":"string","description":"The id of the network. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"The region in which the network subnet will be created. Ex.: \"GRA1\". Changing this value recreates the resource.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"useDefaultPublicDnsResolver":{"type":"boolean","description":"Set to false if you want to use your DNS resolver. Changing this value recreates the resource.\n","willReplaceOnChanges":true}},"requiredInputs":["cidr","networkId","region"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkPrivateSubnetV2 resources.\n","properties":{"allocationPools":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/NetworkPrivateSubnetV2AllocationPool:NetworkPrivateSubnetV2AllocationPool"},"description":"List of IP allocation pools Changing this value recreates the resource.\n","willReplaceOnChanges":true},"cidr":{"type":"string","description":"IP range of the subnet Changing this value recreates the subnet.\n","willReplaceOnChanges":true},"dhcp":{"type":"boolean","description":"Enable DHCP. Changing this forces a new resource to be created. Defaults to true.\n","willReplaceOnChanges":true},"dnsNameservers":{"type":"array","items":{"type":"string"},"description":"DNS nameservers used by DHCP Changing this value recreates the resource. Defaults to OVH default DNS nameserver.\n","willReplaceOnChanges":true},"enableGatewayIp":{"type":"boolean","description":"Set to true if you want to set a default gateway IP. Changing this value recreates the resource. Defaults to true.\n","willReplaceOnChanges":true},"gatewayIp":{"type":"string","description":"See Argument Reference above.\n","willReplaceOnChanges":true},"hostRoutes":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/NetworkPrivateSubnetV2HostRoute:NetworkPrivateSubnetV2HostRoute"},"description":"List of custom host routes. Changing this value recreates the resource.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Name of the subnet Changing this value recreates the subnet.\n","willReplaceOnChanges":true},"networkId":{"type":"string","description":"The id of the network. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"The region in which the network subnet will be created. Ex.: \"GRA1\". Changing this value recreates the resource.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"useDefaultPublicDnsResolver":{"type":"boolean","description":"Set to false if you want to use your DNS resolver. Changing this value recreates the resource.\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:CloudProject/project:Project":{"description":"\n\n## Import\n\nCloud project can be imported using the `project_id`.\n\nUsing the following configuration:\n\nterraform\n\nimport {\n\n  to = ovh_cloud_project.my_cloud_project\n\n  id = \"\u003cproject ID\u003e\"\n\n}\n\nYou can then run:\n\nbash\n\n$ pulumi preview -generate-config-out=cloudproject.tf\n\n$ pulumi up\n\nThe file `cloudproject.tf` will then contain the imported resource's configuration, that can be copied next to the `import` block above. See https://developer.hashicorp.com/terraform/language/import/generating-configuration for more details.\n\n","properties":{"ProjectURN":{"type":"string","description":"The URN of the cloud project\n"},"access":{"type":"string"},"description":{"type":"string","description":"A description associated with the user.\n"},"orders":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/ProjectOrder:ProjectOrder"},"description":"Details about the order that was used to create the public cloud project\n"},"ovhSubsidiary":{"type":"string","description":"OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json)\n"},"paymentMean":{"type":"string","description":"Ovh payment mode\n","deprecationMessage":"This field is not anymore used since the API has been deprecated in favor of /payment/mean. Now, the default payment mean is used."},"plan":{"$ref":"#/types/ovh:CloudProject/ProjectPlan:ProjectPlan","description":"Product Plan to order\n"},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/ProjectPlanOption:ProjectPlanOption"},"description":"Product Plan to order\n"},"projectId":{"type":"string","description":"openstack project id\n"},"projectName":{"type":"string","description":"openstack project name\n"},"status":{"type":"string","description":"project status\n"}},"required":["access","description","orders","ovhSubsidiary","plan","projectId","projectName","status","ProjectURN"],"inputProperties":{"description":{"type":"string","description":"A description associated with the user.\n"},"orders":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/ProjectOrder:ProjectOrder"},"description":"Details about the order that was used to create the public cloud project\n"},"ovhSubsidiary":{"type":"string","description":"OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json)\n","willReplaceOnChanges":true},"paymentMean":{"type":"string","description":"Ovh payment mode\n","deprecationMessage":"This field is not anymore used since the API has been deprecated in favor of /payment/mean. Now, the default payment mean is used.","willReplaceOnChanges":true},"plan":{"$ref":"#/types/ovh:CloudProject/ProjectPlan:ProjectPlan","description":"Product Plan to order\n","willReplaceOnChanges":true},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/ProjectPlanOption:ProjectPlanOption"},"description":"Product Plan to order\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Project resources.\n","properties":{"ProjectURN":{"type":"string","description":"The URN of the cloud project\n"},"access":{"type":"string"},"description":{"type":"string","description":"A description associated with the user.\n"},"orders":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/ProjectOrder:ProjectOrder"},"description":"Details about the order that was used to create the public cloud project\n"},"ovhSubsidiary":{"type":"string","description":"OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json)\n","willReplaceOnChanges":true},"paymentMean":{"type":"string","description":"Ovh payment mode\n","deprecationMessage":"This field is not anymore used since the API has been deprecated in favor of /payment/mean. Now, the default payment mean is used.","willReplaceOnChanges":true},"plan":{"$ref":"#/types/ovh:CloudProject/ProjectPlan:ProjectPlan","description":"Product Plan to order\n","willReplaceOnChanges":true},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/ProjectPlanOption:ProjectPlanOption"},"description":"Product Plan to order\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"openstack project id\n"},"projectName":{"type":"string","description":"openstack project name\n"},"status":{"type":"string","description":"project status\n"}},"type":"object"}},"ovh:CloudProject/projectRegion:ProjectRegion":{"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 region = new ovh.cloudproject.ProjectRegion(\"region\", {\n    serviceName: \"\u003cpublic cloud project ID\u003e\",\n    region: \"EU-WEST-LZ-LUX-A\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nregion = ovh.cloudproject.ProjectRegion(\"region\",\n    service_name=\"\u003cpublic cloud project ID\u003e\",\n    region=\"EU-WEST-LZ-LUX-A\")\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 region = new Ovh.CloudProject.ProjectRegion(\"region\", new()\n    {\n        ServiceName = \"\u003cpublic cloud project ID\u003e\",\n        Region = \"EU-WEST-LZ-LUX-A\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewProjectRegion(ctx, \"region\", \u0026cloudproject.ProjectRegionArgs{\n\t\t\tServiceName: pulumi.String(\"\u003cpublic cloud project ID\u003e\"),\n\t\t\tRegion:      pulumi.String(\"EU-WEST-LZ-LUX-A\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.CloudProject.ProjectRegion;\nimport com.ovhcloud.pulumi.ovh.CloudProject.ProjectRegionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var region = new ProjectRegion(\"region\", ProjectRegionArgs.builder()\n            .serviceName(\"\u003cpublic cloud project ID\u003e\")\n            .region(\"EU-WEST-LZ-LUX-A\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  region:\n    type: ovh:CloudProject:ProjectRegion\n    properties:\n      serviceName: \u003cpublic cloud project ID\u003e\n      region: EU-WEST-LZ-LUX-A\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"availabilityZones":{"type":"array","items":{"type":"string"},"description":"Availability zones of the region\n"},"continentCode":{"type":"string","description":"Region continent code\n"},"countryCode":{"type":"string","description":"Region country code\n"},"datacenterLocation":{"type":"string","description":"Location of the datacenter where the region is\n"},"ipCountries":{"type":"array","items":{"type":"string"},"description":"Allowed countries for failover ip\n"},"name":{"type":"string","description":"Region name\n"},"region":{"type":"string","description":"Region to add to your project\n"},"regionName":{"type":"string","description":"Region name\n"},"serviceName":{"type":"string","description":"Service name. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"services":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/ProjectRegionService:ProjectRegionService"},"description":"Details about components status\n"},"status":{"type":"string","description":"Openstack region status\n"},"type":{"type":"string","description":"Region type\n"}},"required":["availabilityZones","continentCode","countryCode","datacenterLocation","ipCountries","name","region","regionName","services","status","type"],"inputProperties":{"region":{"type":"string","description":"Region to add to your project\n"},"serviceName":{"type":"string","description":"Service name. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"requiredInputs":["region"],"stateInputs":{"description":"Input properties used for looking up and filtering ProjectRegion resources.\n","properties":{"availabilityZones":{"type":"array","items":{"type":"string"},"description":"Availability zones of the region\n"},"continentCode":{"type":"string","description":"Region continent code\n"},"countryCode":{"type":"string","description":"Region country code\n"},"datacenterLocation":{"type":"string","description":"Location of the datacenter where the region is\n"},"ipCountries":{"type":"array","items":{"type":"string"},"description":"Allowed countries for failover ip\n"},"name":{"type":"string","description":"Region name\n"},"region":{"type":"string","description":"Region to add to your project\n"},"regionName":{"type":"string","description":"Region name\n"},"serviceName":{"type":"string","description":"Service name. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"services":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/ProjectRegionService:ProjectRegionService"},"description":"Details about components status\n"},"status":{"type":"string","description":"Openstack region status\n"},"type":{"type":"string","description":"Region type\n"}},"type":"object"}},"ovh:CloudProject/rancher:Rancher":{"description":"Manage a Rancher service in a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst rancher = new ovh.cloudproject.Rancher(\"rancher\", {\n    projectId: \"\u003cpublic cloud project ID\u003e\",\n    targetSpec: {\n        name: \"MyRancher\",\n        plan: \"STANDARD\",\n    },\n});\nexport const rancherUrl = rancher.currentState.apply(currentState =\u003e currentState.url);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nrancher = ovh.cloudproject.Rancher(\"rancher\",\n    project_id=\"\u003cpublic cloud project ID\u003e\",\n    target_spec={\n        \"name\": \"MyRancher\",\n        \"plan\": \"STANDARD\",\n    })\npulumi.export(\"rancherUrl\", rancher.current_state.url)\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 rancher = new Ovh.CloudProject.Rancher(\"rancher\", new()\n    {\n        ProjectId = \"\u003cpublic cloud project ID\u003e\",\n        TargetSpec = new Ovh.CloudProject.Inputs.RancherTargetSpecArgs\n        {\n            Name = \"MyRancher\",\n            Plan = \"STANDARD\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"rancherUrl\"] = rancher.CurrentState.Apply(currentState =\u003e currentState.Url),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\trancher, err := cloudproject.NewRancher(ctx, \"rancher\", \u0026cloudproject.RancherArgs{\n\t\t\tProjectId: pulumi.String(\"\u003cpublic cloud project ID\u003e\"),\n\t\t\tTargetSpec: \u0026cloudproject.RancherTargetSpecArgs{\n\t\t\t\tName: pulumi.String(\"MyRancher\"),\n\t\t\t\tPlan: pulumi.String(\"STANDARD\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"rancherUrl\", rancher.CurrentState.ApplyT(func(currentState cloudproject.RancherCurrentState) (*string, error) {\n\t\t\treturn \u0026currentState.Url, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.CloudProject.Rancher;\nimport com.ovhcloud.pulumi.ovh.CloudProject.RancherArgs;\nimport com.pulumi.ovh.CloudProject.inputs.RancherTargetSpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var rancher = new Rancher(\"rancher\", RancherArgs.builder()\n            .projectId(\"\u003cpublic cloud project ID\u003e\")\n            .targetSpec(RancherTargetSpecArgs.builder()\n                .name(\"MyRancher\")\n                .plan(\"STANDARD\")\n                .build())\n            .build());\n\n        ctx.export(\"rancherUrl\", rancher.currentState().applyValue(_currentState -\u003e _currentState.url()));\n    }\n}\n```\n```yaml\nresources:\n  rancher:\n    type: ovh:CloudProject:Rancher\n    properties:\n      projectId: \u003cpublic cloud project ID\u003e\n      targetSpec:\n        name: MyRancher\n        plan: STANDARD\noutputs:\n  rancherUrl: ${rancher.currentState.url}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nA share in a public cloud project can be imported using the `project_id` and `id` attributes. Using the following configuration:\n\nterraform\n\nimport {\n\n  id = \"\u003cproject_id\u003e/\u003cid\u003e\"\n\n  to = ovh_cloud_project_rancher.rancher\n\n}\n\nYou can then run:\n\nbash\n\n$ pulumi preview -generate-config-out=rancher.tf\n\n$ pulumi up\n\nThe file `rancher.tf` will then contain the imported resource's configuration, that can be copied next to the `import` block above. See https://developer.hashicorp.com/terraform/language/import/generating-configuration for more details.\n\n","properties":{"createdAt":{"type":"string","description":"Date of the managed Rancher service creation\n"},"currentState":{"$ref":"#/types/ovh:CloudProject/RancherCurrentState:RancherCurrentState","description":"Current configuration applied to the managed Rancher service\n"},"currentTasks":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/RancherCurrentTask:RancherCurrentTask"},"description":"Asynchronous operations ongoing on the managed Rancher service\n"},"projectId":{"type":"string","description":"Project ID\n"},"rancherId":{"type":"string","description":"Rancher ID\n"},"resourceStatus":{"type":"string","description":"Reflects the readiness of the managed Rancher service. A new target specification request will be accepted only in `READY` status\n"},"targetSpec":{"$ref":"#/types/ovh:CloudProject/RancherTargetSpec:RancherTargetSpec","description":"Target specification for the managed Rancher service\n"},"updatedAt":{"type":"string","description":"Date of the last managed Rancher service update\n"}},"required":["createdAt","currentState","currentTasks","projectId","rancherId","resourceStatus","targetSpec","updatedAt"],"inputProperties":{"projectId":{"type":"string","description":"Project ID\n"},"rancherId":{"type":"string","description":"Rancher ID\n"},"targetSpec":{"$ref":"#/types/ovh:CloudProject/RancherTargetSpec:RancherTargetSpec","description":"Target specification for the managed Rancher service\n"}},"requiredInputs":["projectId","targetSpec"],"stateInputs":{"description":"Input properties used for looking up and filtering Rancher resources.\n","properties":{"createdAt":{"type":"string","description":"Date of the managed Rancher service creation\n"},"currentState":{"$ref":"#/types/ovh:CloudProject/RancherCurrentState:RancherCurrentState","description":"Current configuration applied to the managed Rancher service\n"},"currentTasks":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/RancherCurrentTask:RancherCurrentTask"},"description":"Asynchronous operations ongoing on the managed Rancher service\n"},"projectId":{"type":"string","description":"Project ID\n"},"rancherId":{"type":"string","description":"Rancher ID\n"},"resourceStatus":{"type":"string","description":"Reflects the readiness of the managed Rancher service. A new target specification request will be accepted only in `READY` status\n"},"targetSpec":{"$ref":"#/types/ovh:CloudProject/RancherTargetSpec:RancherTargetSpec","description":"Target specification for the managed Rancher service\n"},"updatedAt":{"type":"string","description":"Date of the last managed Rancher service update\n"}},"type":"object"}},"ovh:CloudProject/regionLoadBalancerLogSubscription:RegionLoadBalancerLogSubscription":{"description":"Subscribe to a Managed Loadbalance Logs Service in a public cloud project.\n\n## Example Usage\n\nCreate a subscription\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst subscription = new ovh.cloudproject.RegionLoadBalancerLogSubscription(\"subscription\", {\n    serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    regionName: \"yyyy\",\n    loadbalancerId: \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\",\n    kind: \"haproxy\",\n    streamId: \"ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nsubscription = ovh.cloudproject.RegionLoadBalancerLogSubscription(\"subscription\",\n    service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    region_name=\"yyyy\",\n    loadbalancer_id=\"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\",\n    kind=\"haproxy\",\n    stream_id=\"ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj\")\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 subscription = new Ovh.CloudProject.RegionLoadBalancerLogSubscription(\"subscription\", new()\n    {\n        ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n        RegionName = \"yyyy\",\n        LoadbalancerId = \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\",\n        Kind = \"haproxy\",\n        StreamId = \"ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewRegionLoadBalancerLogSubscription(ctx, \"subscription\", \u0026cloudproject.RegionLoadBalancerLogSubscriptionArgs{\n\t\t\tServiceName:    pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tRegionName:     pulumi.String(\"yyyy\"),\n\t\t\tLoadbalancerId: pulumi.String(\"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\"),\n\t\t\tKind:           pulumi.String(\"haproxy\"),\n\t\t\tStreamId:       pulumi.String(\"ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.CloudProject.RegionLoadBalancerLogSubscription;\nimport com.ovhcloud.pulumi.ovh.CloudProject.RegionLoadBalancerLogSubscriptionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var subscription = new RegionLoadBalancerLogSubscription(\"subscription\", RegionLoadBalancerLogSubscriptionArgs.builder()\n            .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n            .regionName(\"yyyy\")\n            .loadbalancerId(\"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\")\n            .kind(\"haproxy\")\n            .streamId(\"ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  subscription:\n    type: ovh:CloudProject:RegionLoadBalancerLogSubscription\n    properties:\n      serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n      regionName: yyyy\n      loadbalancerId: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\n      kind: haproxy\n      streamId: ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"createdAt":{"type":"string","description":"The date of the subscription creation\n"},"kind":{"type":"string","description":"haproxy **Changing this value recreates the resource.**\n"},"ldpServiceName":{"type":"string","description":"LDP service name\n"},"loadbalancerId":{"type":"string","description":"Loadbalancer id to get the logs **Changing this value recreates the resource.**\n"},"operationId":{"type":"string","description":"The operation ID\n"},"regionName":{"type":"string","description":"A valid OVHcloud public cloud region name in which the loadbalancer will be available. Ex.: \"GRA11\". **Changing this value recreates the resource.**\n"},"resourceName":{"type":"string","description":"The resource name\n"},"resourceType":{"type":"string","description":"The resource type\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.**\n"},"streamId":{"type":"string","description":"Data stream id to use for the subscription **Changing this value recreates the resource.**\n"},"subscriptionId":{"type":"string","description":"The subscription id\n"},"updatedAt":{"type":"string","description":"The last update of the subscription\n"}},"required":["createdAt","kind","ldpServiceName","loadbalancerId","operationId","regionName","resourceName","resourceType","serviceName","streamId","subscriptionId","updatedAt"],"inputProperties":{"kind":{"type":"string","description":"haproxy **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"loadbalancerId":{"type":"string","description":"Loadbalancer id to get the logs **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"regionName":{"type":"string","description":"A valid OVHcloud public cloud region name in which the loadbalancer will be available. Ex.: \"GRA11\". **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"streamId":{"type":"string","description":"Data stream id to use for the subscription **Changing this value recreates the resource.**\n","willReplaceOnChanges":true}},"requiredInputs":["kind","loadbalancerId","regionName","streamId"],"stateInputs":{"description":"Input properties used for looking up and filtering RegionLoadBalancerLogSubscription resources.\n","properties":{"createdAt":{"type":"string","description":"The date of the subscription creation\n"},"kind":{"type":"string","description":"haproxy **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"ldpServiceName":{"type":"string","description":"LDP service name\n"},"loadbalancerId":{"type":"string","description":"Loadbalancer id to get the logs **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"operationId":{"type":"string","description":"The operation ID\n"},"regionName":{"type":"string","description":"A valid OVHcloud public cloud region name in which the loadbalancer will be available. Ex.: \"GRA11\". **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"resourceName":{"type":"string","description":"The resource name\n"},"resourceType":{"type":"string","description":"The resource type\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"streamId":{"type":"string","description":"Data stream id to use for the subscription **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"subscriptionId":{"type":"string","description":"The subscription id\n"},"updatedAt":{"type":"string","description":"The last update of the subscription\n"}},"type":"object"}},"ovh:CloudProject/regionNetwork:RegionNetwork":{"description":"Creates a network in a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  net:\n    type: ovh:CloudProject:RegionNetwork\n    properties:\n      serviceName: XXXXXX\n      regionName: EU-SOUTH-LZ-MAD-A\n      name: Madrid Network\n      subnet:\n        cidr: 10.0.0.0/24\n        enable_dhcp: true\n        enable_gateway_ip: false\n        ip_version: 4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nA network in a public cloud project can be imported using the `service_name`, `region_name` and `id` attributes. Using the following configuration:\n\nterraform\n\nimport {\n\n  id = \"\u003cservice_name\u003e/\u003cregion_name\u003e/\u003cid\u003e\"\n\n  to = ovh_cloud_project_region_network.test\n\n}\n\nYou can then run:\n\nbash\n\n$ pulumi preview -generate-config-out=network.tf\n\n$ pulumi up\n\nThe file `network.tf` will then contain the imported resource's configuration, that can be copied next to the `import` block above. See https://developer.hashicorp.com/terraform/language/import/generating-configuration for more details.\n\n","properties":{"name":{"type":"string","description":"Name of the network\n"},"region":{"type":"string","description":"Network region returned by the API\n"},"regionName":{"type":"string","description":"Network region\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"subnet":{"$ref":"#/types/ovh:CloudProject/RegionNetworkSubnet:RegionNetworkSubnet","description":"Parameters to create a subnet\n"},"visibility":{"type":"string","description":"Network visibility\n"},"vlanId":{"type":"number","description":"VLAN ID, between 1 and 4000\n"}},"required":["name","region","regionName","subnet","visibility","vlanId"],"inputProperties":{"name":{"type":"string","description":"Name of the network\n"},"regionName":{"type":"string","description":"Network region\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"subnet":{"$ref":"#/types/ovh:CloudProject/RegionNetworkSubnet:RegionNetworkSubnet","description":"Parameters to create a subnet\n"},"vlanId":{"type":"number","description":"VLAN ID, between 1 and 4000\n"}},"requiredInputs":["regionName","subnet"],"stateInputs":{"description":"Input properties used for looking up and filtering RegionNetwork resources.\n","properties":{"name":{"type":"string","description":"Name of the network\n"},"region":{"type":"string","description":"Network region returned by the API\n"},"regionName":{"type":"string","description":"Network region\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"subnet":{"$ref":"#/types/ovh:CloudProject/RegionNetworkSubnet:RegionNetworkSubnet","description":"Parameters to create a subnet\n"},"visibility":{"type":"string","description":"Network visibility\n"},"vlanId":{"type":"number","description":"VLAN ID, between 1 and 4000\n"}},"type":"object"}},"ovh:CloudProject/regionStoragePresign:RegionStoragePresign":{"description":"Generates a temporary presigned S3 URLs to download or upload an object.\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\nexport = async () =\u003e {\n    const presignedUrl = new ovh.cloudproject.RegionStoragePresign(\"presigned_url\", {\n        serviceName: \"xxxxxxxxxxxxxxxxx\",\n        regionName: \"GRA\",\n        name: \"s3-bucket-name\",\n        expire: 3600,\n        method: \"GET\",\n        object: \"an-object-in-the-bucket\",\n    });\n    return {\n        presignedUrl: presignedUrl.url,\n    };\n}\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\npresigned_url = ovh.cloudproject.RegionStoragePresign(\"presigned_url\",\n    service_name=\"xxxxxxxxxxxxxxxxx\",\n    region_name=\"GRA\",\n    name=\"s3-bucket-name\",\n    expire=3600,\n    method=\"GET\",\n    object=\"an-object-in-the-bucket\")\npulumi.export(\"presignedUrl\", presigned_url.url)\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 presignedUrl = new Ovh.CloudProject.RegionStoragePresign(\"presigned_url\", new()\n    {\n        ServiceName = \"xxxxxxxxxxxxxxxxx\",\n        RegionName = \"GRA\",\n        Name = \"s3-bucket-name\",\n        Expire = 3600,\n        Method = \"GET\",\n        Object = \"an-object-in-the-bucket\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"presignedUrl\"] = presignedUrl.Url,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tpresignedUrl, err := cloudproject.NewRegionStoragePresign(ctx, \"presigned_url\", \u0026cloudproject.RegionStoragePresignArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxx\"),\n\t\t\tRegionName:  pulumi.String(\"GRA\"),\n\t\t\tName:        pulumi.String(\"s3-bucket-name\"),\n\t\t\tExpire:      pulumi.Int(3600),\n\t\t\tMethod:      pulumi.String(\"GET\"),\n\t\t\tObject:      pulumi.String(\"an-object-in-the-bucket\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"presignedUrl\", presignedUrl.Url)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.CloudProject.RegionStoragePresign;\nimport com.ovhcloud.pulumi.ovh.CloudProject.RegionStoragePresignArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var presignedUrl = new RegionStoragePresign(\"presignedUrl\", RegionStoragePresignArgs.builder()\n            .serviceName(\"xxxxxxxxxxxxxxxxx\")\n            .regionName(\"GRA\")\n            .name(\"s3-bucket-name\")\n            .expire(3600)\n            .method(\"GET\")\n            .object(\"an-object-in-the-bucket\")\n            .build());\n\n        ctx.export(\"presignedUrl\", presignedUrl.url());\n    }\n}\n```\n```yaml\nresources:\n  presignedUrl:\n    type: ovh:CloudProject:RegionStoragePresign\n    name: presigned_url\n    properties:\n      serviceName: xxxxxxxxxxxxxxxxx\n      regionName: GRA\n      name: s3-bucket-name\n      expire: 3600\n      method: GET\n      object: an-object-in-the-bucket\noutputs:\n  presignedUrl: ${presignedUrl.url}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"expire":{"type":"integer","description":"Define, in seconds, for how long your URL will be valid.\n"},"method":{"type":"string","description":"The method you want to use to interact with your object. Can be either 'GET' or 'PUT'.\n"},"name":{"type":"string","description":"The name of your S3 storage container/bucket.\n"},"object":{"type":"string","description":"The name of the object in your S3 bucket.\n"},"regionName":{"type":"string","description":"The region in which your storage is located. Must be in **uppercase**. Ex.: \"GRA\".\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"signedHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of signed headers.\n"},"url":{"type":"string","description":"Computed URL result.\n"},"versionId":{"type":"string","description":"Version ID of the object to download or delete\n"}},"required":["expire","method","name","object","regionName","serviceName","signedHeaders","url"],"inputProperties":{"expire":{"type":"integer","description":"Define, in seconds, for how long your URL will be valid.\n","willReplaceOnChanges":true},"method":{"type":"string","description":"The method you want to use to interact with your object. Can be either 'GET' or 'PUT'.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of your S3 storage container/bucket.\n","willReplaceOnChanges":true},"object":{"type":"string","description":"The name of the object in your S3 bucket.\n","willReplaceOnChanges":true},"regionName":{"type":"string","description":"The region in which your storage is located. Must be in **uppercase**. Ex.: \"GRA\".\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"versionId":{"type":"string","description":"Version ID of the object to download or delete\n","willReplaceOnChanges":true}},"requiredInputs":["expire","method","object","regionName"],"stateInputs":{"description":"Input properties used for looking up and filtering RegionStoragePresign resources.\n","properties":{"expire":{"type":"integer","description":"Define, in seconds, for how long your URL will be valid.\n","willReplaceOnChanges":true},"method":{"type":"string","description":"The method you want to use to interact with your object. Can be either 'GET' or 'PUT'.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of your S3 storage container/bucket.\n","willReplaceOnChanges":true},"object":{"type":"string","description":"The name of the object in your S3 bucket.\n","willReplaceOnChanges":true},"regionName":{"type":"string","description":"The region in which your storage is located. Must be in **uppercase**. Ex.: \"GRA\".\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"signedHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of signed headers.\n"},"url":{"type":"string","description":"Computed URL result.\n"},"versionId":{"type":"string","description":"Version ID of the object to download or delete\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:CloudProject/s3Credential:S3Credential":{"description":"Creates an S3 Credential for a user in a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst user = new ovh.cloudproject.User(\"user\", {\n    serviceName: \"XXX\",\n    description: \"my user for acceptance tests\",\n    roleNames: [\"objectstore_operator\"],\n});\nconst myS3Credentials = new ovh.cloudproject.S3Credential(\"my_s3_credentials\", {\n    serviceName: user.serviceName,\n    userId: user.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nuser = ovh.cloudproject.User(\"user\",\n    service_name=\"XXX\",\n    description=\"my user for acceptance tests\",\n    role_names=[\"objectstore_operator\"])\nmy_s3_credentials = ovh.cloudproject.S3Credential(\"my_s3_credentials\",\n    service_name=user.service_name,\n    user_id=user.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var user = new Ovh.CloudProject.User(\"user\", new()\n    {\n        ServiceName = \"XXX\",\n        Description = \"my user for acceptance tests\",\n        RoleNames = new[]\n        {\n            \"objectstore_operator\",\n        },\n    });\n\n    var myS3Credentials = new Ovh.CloudProject.S3Credential(\"my_s3_credentials\", new()\n    {\n        ServiceName = user.ServiceName,\n        UserId = user.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tuser, err := cloudproject.NewUser(ctx, \"user\", \u0026cloudproject.UserArgs{\n\t\t\tServiceName: pulumi.String(\"XXX\"),\n\t\t\tDescription: pulumi.String(\"my user for acceptance tests\"),\n\t\t\tRoleNames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"objectstore_operator\"),\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.NewS3Credential(ctx, \"my_s3_credentials\", \u0026cloudproject.S3CredentialArgs{\n\t\t\tServiceName: user.ServiceName,\n\t\t\tUserId:      user.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.CloudProject.User;\nimport com.ovhcloud.pulumi.ovh.CloudProject.UserArgs;\nimport com.ovhcloud.pulumi.ovh.CloudProject.S3Credential;\nimport com.ovhcloud.pulumi.ovh.CloudProject.S3CredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var user = new User(\"user\", UserArgs.builder()\n            .serviceName(\"XXX\")\n            .description(\"my user for acceptance tests\")\n            .roleNames(\"objectstore_operator\")\n            .build());\n\n        var myS3Credentials = new S3Credential(\"myS3Credentials\", S3CredentialArgs.builder()\n            .serviceName(user.serviceName())\n            .userId(user.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  user:\n    type: ovh:CloudProject:User\n    properties:\n      serviceName: XXX\n      description: my user for acceptance tests\n      roleNames:\n        - objectstore_operator\n  myS3Credentials:\n    type: ovh:CloudProject:S3Credential\n    name: my_s3_credentials\n    properties:\n      serviceName: ${user.serviceName}\n      userId: ${user.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud User S3 Credentials can be imported using the `service_name`, `user_id` and `access_key_id` of the credential, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProject/s3Credential:S3Credential s3_credential service_name/user_id/access_key_id\n```\n\n","properties":{"accessKeyId":{"type":"string","description":"the Access Key ID\n"},"internalUserId":{"type":"string"},"secretAccessKey":{"type":"string","description":"(Sensitive) the Secret Access Key\n","secret":true},"serviceName":{"type":"string","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"userId":{"type":"string","description":"The ID of a public cloud project's user.\n"}},"required":["accessKeyId","internalUserId","secretAccessKey","serviceName","userId"],"inputProperties":{"serviceName":{"type":"string","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"The ID of a public cloud project's user.\n","willReplaceOnChanges":true}},"requiredInputs":["userId"],"stateInputs":{"description":"Input properties used for looking up and filtering S3Credential resources.\n","properties":{"accessKeyId":{"type":"string","description":"the Access Key ID\n"},"internalUserId":{"type":"string"},"secretAccessKey":{"type":"string","description":"(Sensitive) the Secret Access Key\n","secret":true},"serviceName":{"type":"string","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"The ID of a public cloud project's user.\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:CloudProject/s3Policy:S3Policy":{"description":"Set the S3 Policy of a public cloud project user.\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 user = new ovh.cloudproject.User(\"user\", {\n    serviceName: \"XXX\",\n    description: \"my user\",\n    roleNames: [\"objectstore_operator\"],\n});\nconst myS3Credentials = new ovh.cloudproject.S3Credential(\"my_s3_credentials\", {\n    serviceName: user.serviceName,\n    userId: user.id,\n});\nconst policy = new ovh.cloudproject.S3Policy(\"policy\", {\n    serviceName: user.serviceName,\n    userId: user.id,\n    policy: JSON.stringify({\n        Statement: [{\n            Sid: \"RWContainer\",\n            Effect: \"Allow\",\n            Action: [\n                \"s3:GetObject\",\n                \"s3:PutObject\",\n                \"s3:DeleteObject\",\n                \"s3:ListBucket\",\n                \"s3:ListMultipartUploadParts\",\n                \"s3:ListBucketMultipartUploads\",\n                \"s3:AbortMultipartUpload\",\n                \"s3:GetBucketLocation\",\n            ],\n            Resource: [\n                \"arn:aws:s3:::hp-bucket\",\n                \"arn:aws:s3:::hp-bucket/*\",\n            ],\n        }],\n    }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_ovh as ovh\n\nuser = ovh.cloudproject.User(\"user\",\n    service_name=\"XXX\",\n    description=\"my user\",\n    role_names=[\"objectstore_operator\"])\nmy_s3_credentials = ovh.cloudproject.S3Credential(\"my_s3_credentials\",\n    service_name=user.service_name,\n    user_id=user.id)\npolicy = ovh.cloudproject.S3Policy(\"policy\",\n    service_name=user.service_name,\n    user_id=user.id,\n    policy=json.dumps({\n        \"Statement\": [{\n            \"Sid\": \"RWContainer\",\n            \"Effect\": \"Allow\",\n            \"Action\": [\n                \"s3:GetObject\",\n                \"s3:PutObject\",\n                \"s3:DeleteObject\",\n                \"s3:ListBucket\",\n                \"s3:ListMultipartUploadParts\",\n                \"s3:ListBucketMultipartUploads\",\n                \"s3:AbortMultipartUpload\",\n                \"s3:GetBucketLocation\",\n            ],\n            \"Resource\": [\n                \"arn:aws:s3:::hp-bucket\",\n                \"arn:aws:s3:::hp-bucket/*\",\n            ],\n        }],\n    }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var user = new Ovh.CloudProject.User(\"user\", new()\n    {\n        ServiceName = \"XXX\",\n        Description = \"my user\",\n        RoleNames = new[]\n        {\n            \"objectstore_operator\",\n        },\n    });\n\n    var myS3Credentials = new Ovh.CloudProject.S3Credential(\"my_s3_credentials\", new()\n    {\n        ServiceName = user.ServiceName,\n        UserId = user.Id,\n    });\n\n    var policy = new Ovh.CloudProject.S3Policy(\"policy\", new()\n    {\n        ServiceName = user.ServiceName,\n        UserId = user.Id,\n        Policy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"Statement\"] = new[]\n            {\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"Sid\"] = \"RWContainer\",\n                    [\"Effect\"] = \"Allow\",\n                    [\"Action\"] = new[]\n                    {\n                        \"s3:GetObject\",\n                        \"s3:PutObject\",\n                        \"s3:DeleteObject\",\n                        \"s3:ListBucket\",\n                        \"s3:ListMultipartUploadParts\",\n                        \"s3:ListBucketMultipartUploads\",\n                        \"s3:AbortMultipartUpload\",\n                        \"s3:GetBucketLocation\",\n                    },\n                    [\"Resource\"] = new[]\n                    {\n                        \"arn:aws:s3:::hp-bucket\",\n                        \"arn:aws:s3:::hp-bucket/*\",\n                    },\n                },\n            },\n        }),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tuser, err := cloudproject.NewUser(ctx, \"user\", \u0026cloudproject.UserArgs{\n\t\t\tServiceName: pulumi.String(\"XXX\"),\n\t\t\tDescription: pulumi.String(\"my user\"),\n\t\t\tRoleNames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"objectstore_operator\"),\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.NewS3Credential(ctx, \"my_s3_credentials\", \u0026cloudproject.S3CredentialArgs{\n\t\t\tServiceName: user.ServiceName,\n\t\t\tUserId:      user.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Sid\":    \"RWContainer\",\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"s3:GetObject\",\n\t\t\t\t\t\t\"s3:PutObject\",\n\t\t\t\t\t\t\"s3:DeleteObject\",\n\t\t\t\t\t\t\"s3:ListBucket\",\n\t\t\t\t\t\t\"s3:ListMultipartUploadParts\",\n\t\t\t\t\t\t\"s3:ListBucketMultipartUploads\",\n\t\t\t\t\t\t\"s3:AbortMultipartUpload\",\n\t\t\t\t\t\t\"s3:GetBucketLocation\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Resource\": []string{\n\t\t\t\t\t\t\"arn:aws:s3:::hp-bucket\",\n\t\t\t\t\t\t\"arn:aws:s3:::hp-bucket/*\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = cloudproject.NewS3Policy(ctx, \"policy\", \u0026cloudproject.S3PolicyArgs{\n\t\t\tServiceName: user.ServiceName,\n\t\t\tUserId:      user.ID(),\n\t\t\tPolicy:      pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.CloudProject.User;\nimport com.ovhcloud.pulumi.ovh.CloudProject.UserArgs;\nimport com.ovhcloud.pulumi.ovh.CloudProject.S3Credential;\nimport com.ovhcloud.pulumi.ovh.CloudProject.S3CredentialArgs;\nimport com.ovhcloud.pulumi.ovh.CloudProject.S3Policy;\nimport com.ovhcloud.pulumi.ovh.CloudProject.S3PolicyArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var user = new User(\"user\", UserArgs.builder()\n            .serviceName(\"XXX\")\n            .description(\"my user\")\n            .roleNames(\"objectstore_operator\")\n            .build());\n\n        var myS3Credentials = new S3Credential(\"myS3Credentials\", S3CredentialArgs.builder()\n            .serviceName(user.serviceName())\n            .userId(user.id())\n            .build());\n\n        var policy = new S3Policy(\"policy\", S3PolicyArgs.builder()\n            .serviceName(user.serviceName())\n            .userId(user.id())\n            .policy(serializeJson(\n                jsonObject(\n                    jsonProperty(\"Statement\", jsonArray(jsonObject(\n                        jsonProperty(\"Sid\", \"RWContainer\"),\n                        jsonProperty(\"Effect\", \"Allow\"),\n                        jsonProperty(\"Action\", jsonArray(\n                            \"s3:GetObject\", \n                            \"s3:PutObject\", \n                            \"s3:DeleteObject\", \n                            \"s3:ListBucket\", \n                            \"s3:ListMultipartUploadParts\", \n                            \"s3:ListBucketMultipartUploads\", \n                            \"s3:AbortMultipartUpload\", \n                            \"s3:GetBucketLocation\"\n                        )),\n                        jsonProperty(\"Resource\", jsonArray(\n                            \"arn:aws:s3:::hp-bucket\", \n                            \"arn:aws:s3:::hp-bucket/*\"\n                        ))\n                    )))\n                )))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  user:\n    type: ovh:CloudProject:User\n    properties:\n      serviceName: XXX\n      description: my user\n      roleNames:\n        - objectstore_operator\n  myS3Credentials:\n    type: ovh:CloudProject:S3Credential\n    name: my_s3_credentials\n    properties:\n      serviceName: ${user.serviceName}\n      userId: ${user.id}\n  policy:\n    type: ovh:CloudProject:S3Policy\n    properties:\n      serviceName: ${user.serviceName}\n      userId: ${user.id}\n      policy:\n        fn::toJSON:\n          Statement:\n            - Sid: RWContainer\n              Effect: Allow\n              Action:\n                - s3:GetObject\n                - s3:PutObject\n                - s3:DeleteObject\n                - s3:ListBucket\n                - s3:ListMultipartUploadParts\n                - s3:ListBucketMultipartUploads\n                - s3:AbortMultipartUpload\n                - s3:GetBucketLocation\n              Resource:\n                - arn:aws:s3:::hp-bucket\n                - arn:aws:s3:::hp-bucket/*\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud User S3 Policy can be imported using the `service_name`, `user_id` of the policy, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProject/s3Policy:S3Policy policy service_name/user_id\n```\n\n","properties":{"policy":{"type":"string","description":"The policy document. This is a JSON formatted string. See examples of policies on [public documentation](https://docs.ovh.com/gb/en/storage/s3/identity-and-access-management/).\n"},"serviceName":{"type":"string","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"userId":{"type":"string","description":"The ID of a public cloud project's user.\n"}},"required":["policy","serviceName","userId"],"inputProperties":{"policy":{"type":"string","description":"The policy document. This is a JSON formatted string. See examples of policies on [public documentation](https://docs.ovh.com/gb/en/storage/s3/identity-and-access-management/).\n"},"serviceName":{"type":"string","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"The ID of a public cloud project's user.\n","willReplaceOnChanges":true}},"requiredInputs":["policy","userId"],"stateInputs":{"description":"Input properties used for looking up and filtering S3Policy resources.\n","properties":{"policy":{"type":"string","description":"The policy document. This is a JSON formatted string. See examples of policies on [public documentation](https://docs.ovh.com/gb/en/storage/s3/identity-and-access-management/).\n"},"serviceName":{"type":"string","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"The ID of a public cloud project's user.\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:CloudProject/storage:Storage":{"description":"\n\n## Import\n\nA storage in a public cloud project can be imported using the `service_name`, `region_name` and `name` attributes. Using the following configuration:\n\nterraform\n\nimport {\n\n  id = \"\u003cservice_name\u003e/\u003cregion_name\u003e/\u003cname\u003e\"\n\n  to = ovh_cloud_project_storage.storage\n\n}\n\nYou can then run:\n\nbash\n\n$ pulumi preview -generate-config-out=storage.tf\n\n$ pulumi up\n\nThe file `storage.tf` will then contain the imported resource's configuration, that can be copied next to the `import` block above. See https://developer.hashicorp.com/terraform/language/import/generating-configuration for more details.\n\n","properties":{"createdAt":{"type":"string","description":"The date and timestamp when the resource was created\n"},"encryption":{"$ref":"#/types/ovh:CloudProject/StorageEncryption:StorageEncryption","description":"Encryption configuration\n"},"hideObjects":{"type":"boolean","description":"If true, objects list will not be saved in state (useful for large buckets)\n"},"limit":{"type":"number","description":"Limit the number of objects returned (1000 maximum, defaults to 1000)\n"},"marker":{"type":"string","description":"Key to start with when listing objects\n"},"name":{"type":"string","description":"Container name\n"},"objectLock":{"$ref":"#/types/ovh:CloudProject/StorageObjectLock:StorageObjectLock","description":"Object lock configuration\n"},"objects":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/StorageObject:StorageObject"},"description":"Container objects\n"},"objectsCount":{"type":"number","description":"Container total objects count\n"},"objectsSize":{"type":"number","description":"Container total objects size (bytes)\n"},"ownerId":{"type":"number","description":"Container owner user ID\n"},"prefix":{"type":"string","description":"List objects whose key begins with this prefix\n"},"region":{"type":"string","description":"Container region\n"},"regionName":{"type":"string","description":"Region name\n"},"replication":{"$ref":"#/types/ovh:CloudProject/StorageReplication:StorageReplication","description":"Replication configuration\n"},"serviceName":{"type":"string","description":"Service name. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"versioning":{"$ref":"#/types/ovh:CloudProject/StorageVersioning:StorageVersioning","description":"Versioning configuration\n"},"virtualHost":{"type":"string","description":"Container virtual host\n"}},"required":["createdAt","encryption","limit","marker","name","objectLock","objects","objectsCount","objectsSize","ownerId","prefix","region","regionName","replication","versioning","virtualHost"],"inputProperties":{"encryption":{"$ref":"#/types/ovh:CloudProject/StorageEncryption:StorageEncryption","description":"Encryption configuration\n"},"hideObjects":{"type":"boolean","description":"If true, objects list will not be saved in state (useful for large buckets)\n"},"limit":{"type":"number","description":"Limit the number of objects returned (1000 maximum, defaults to 1000)\n"},"marker":{"type":"string","description":"Key to start with when listing objects\n"},"name":{"type":"string","description":"Container name\n"},"objectLock":{"$ref":"#/types/ovh:CloudProject/StorageObjectLock:StorageObjectLock","description":"Object lock configuration\n"},"ownerId":{"type":"number","description":"Container owner user ID\n"},"prefix":{"type":"string","description":"List objects whose key begins with this prefix\n"},"regionName":{"type":"string","description":"Region name\n"},"replication":{"$ref":"#/types/ovh:CloudProject/StorageReplication:StorageReplication","description":"Replication configuration\n"},"serviceName":{"type":"string","description":"Service name. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"versioning":{"$ref":"#/types/ovh:CloudProject/StorageVersioning:StorageVersioning","description":"Versioning configuration\n"}},"requiredInputs":["regionName"],"stateInputs":{"description":"Input properties used for looking up and filtering Storage resources.\n","properties":{"createdAt":{"type":"string","description":"The date and timestamp when the resource was created\n"},"encryption":{"$ref":"#/types/ovh:CloudProject/StorageEncryption:StorageEncryption","description":"Encryption configuration\n"},"hideObjects":{"type":"boolean","description":"If true, objects list will not be saved in state (useful for large buckets)\n"},"limit":{"type":"number","description":"Limit the number of objects returned (1000 maximum, defaults to 1000)\n"},"marker":{"type":"string","description":"Key to start with when listing objects\n"},"name":{"type":"string","description":"Container name\n"},"objectLock":{"$ref":"#/types/ovh:CloudProject/StorageObjectLock:StorageObjectLock","description":"Object lock configuration\n"},"objects":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/StorageObject:StorageObject"},"description":"Container objects\n"},"objectsCount":{"type":"number","description":"Container total objects count\n"},"objectsSize":{"type":"number","description":"Container total objects size (bytes)\n"},"ownerId":{"type":"number","description":"Container owner user ID\n"},"prefix":{"type":"string","description":"List objects whose key begins with this prefix\n"},"region":{"type":"string","description":"Container region\n"},"regionName":{"type":"string","description":"Region name\n"},"replication":{"$ref":"#/types/ovh:CloudProject/StorageReplication:StorageReplication","description":"Replication configuration\n"},"serviceName":{"type":"string","description":"Service name. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"versioning":{"$ref":"#/types/ovh:CloudProject/StorageVersioning:StorageVersioning","description":"Versioning configuration\n"},"virtualHost":{"type":"string","description":"Container virtual host\n"}},"type":"object"}},"ovh:CloudProject/user:User":{"description":"\n\n## Import\n\nThe resource can be imported using the public cloud project ID and the user ID, e.g.,\n\nterraform\n\nimport {\n\n  to = ovh_cloud_project_user.user\n\n  id = \"\u003cpublic cloud project ID\u003e/\u003cuser ID\u003e\"\n\n}\n\nbash\n\n$ pulumi preview -generate-config-out=user.tf\n\n$ pulumi up\n\nThe file `user.tf` will then contain the imported resource's configuration, that can be copied next to the `import` block above. See https://developer.hashicorp.com/terraform/language/import/generating-configuration for more details.\n\n","properties":{"creationDate":{"type":"string","description":"the date the user was created.\n"},"description":{"type":"string","description":"A description associated with the user.\n"},"openstackRc":{"type":"object","additionalProperties":{"type":"string"},"description":"a convenient map representing an openstack_rc file. Note: no password nor sensitive token is set in this map.\n"},"password":{"type":"string","description":"(Sensitive) the password generated for the user. The password can be used with the Openstack API. This attribute is sensitive and will only be retrieve once during creation.\n","secret":true},"passwordReset":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"roleName":{"type":"string","description":"The name of a role. See `role_names`.\n"},"roleNames":{"type":"array","items":{"type":"string"},"description":"A list of role names. Values can be:\n- administrator\n- ai_training_operator\n- ai_training_read\n- authentication\n- backup_operator\n- compute_operator\n- image_operator\n- infrastructure_supervisor\n- key-manager_operator\n- key-manager_read\n- load-balancer_operator\n- network_operator\n- network_security_operator\n- objectstore_operator\n- volume_operator\n"},"roles":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/UserRole:UserRole"},"description":"A list of roles associated with the user.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"status":{"type":"string","description":"the status of the user. should be normally set to 'ok'.\n"},"username":{"type":"string","description":"the username generated for the user. This username can be used with the Openstack API.\n"}},"required":["creationDate","openstackRc","password","roles","serviceName","status","username"],"inputProperties":{"description":{"type":"string","description":"A description associated with the user.\n","willReplaceOnChanges":true},"openstackRc":{"type":"object","additionalProperties":{"type":"string"},"description":"a convenient map representing an openstack_rc file. Note: no password nor sensitive token is set in this map.\n"},"passwordReset":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"roleName":{"type":"string","description":"The name of a role. See `role_names`.\n"},"roleNames":{"type":"array","items":{"type":"string"},"description":"A list of role names. Values can be:\n- administrator\n- ai_training_operator\n- ai_training_read\n- authentication\n- backup_operator\n- compute_operator\n- image_operator\n- infrastructure_supervisor\n- key-manager_operator\n- key-manager_read\n- load-balancer_operator\n- network_operator\n- network_security_operator\n- objectstore_operator\n- volume_operator\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering User resources.\n","properties":{"creationDate":{"type":"string","description":"the date the user was created.\n"},"description":{"type":"string","description":"A description associated with the user.\n","willReplaceOnChanges":true},"openstackRc":{"type":"object","additionalProperties":{"type":"string"},"description":"a convenient map representing an openstack_rc file. Note: no password nor sensitive token is set in this map.\n"},"password":{"type":"string","description":"(Sensitive) the password generated for the user. The password can be used with the Openstack API. This attribute is sensitive and will only be retrieve once during creation.\n","secret":true},"passwordReset":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"roleName":{"type":"string","description":"The name of a role. See `role_names`.\n"},"roleNames":{"type":"array","items":{"type":"string"},"description":"A list of role names. Values can be:\n- administrator\n- ai_training_operator\n- ai_training_read\n- authentication\n- backup_operator\n- compute_operator\n- image_operator\n- infrastructure_supervisor\n- key-manager_operator\n- key-manager_read\n- load-balancer_operator\n- network_operator\n- network_security_operator\n- objectstore_operator\n- volume_operator\n"},"roles":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/UserRole:UserRole"},"description":"A list of roles associated with the user.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"the status of the user. should be normally set to 'ok'.\n"},"username":{"type":"string","description":"the username generated for the user. This username can be used with the Openstack API.\n"}},"type":"object"}},"ovh:CloudProject/volume:Volume":{"description":"Create volume in a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst volume = new ovh.cloudproject.Volume(\"volume\", {\n    regionName: \"xxx\",\n    serviceName: \"yyyyy\",\n    description: \"Terraform volume\",\n    name: \"terrformName\",\n    size: 15,\n    type: \"classic\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nvolume = ovh.cloudproject.Volume(\"volume\",\n    region_name=\"xxx\",\n    service_name=\"yyyyy\",\n    description=\"Terraform volume\",\n    name=\"terrformName\",\n    size=15,\n    type=\"classic\")\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 volume = new Ovh.CloudProject.Volume(\"volume\", new()\n    {\n        RegionName = \"xxx\",\n        ServiceName = \"yyyyy\",\n        Description = \"Terraform volume\",\n        Name = \"terrformName\",\n        Size = 15,\n        Type = \"classic\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewVolume(ctx, \"volume\", \u0026cloudproject.VolumeArgs{\n\t\t\tRegionName:  pulumi.String(\"xxx\"),\n\t\t\tServiceName: pulumi.String(\"yyyyy\"),\n\t\t\tDescription: pulumi.String(\"Terraform volume\"),\n\t\t\tName:        pulumi.String(\"terrformName\"),\n\t\t\tSize:        pulumi.Float64(15),\n\t\t\tType:        pulumi.String(\"classic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.CloudProject.Volume;\nimport com.ovhcloud.pulumi.ovh.CloudProject.VolumeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var volume = new Volume(\"volume\", VolumeArgs.builder()\n            .regionName(\"xxx\")\n            .serviceName(\"yyyyy\")\n            .description(\"Terraform volume\")\n            .name(\"terrformName\")\n            .size(15.0)\n            .type(\"classic\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  volume:\n    type: ovh:CloudProject:Volume\n    properties:\n      regionName: xxx\n      serviceName: yyyyy\n      description: Terraform volume\n      name: terrformName\n      size: 15\n      type: classic\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe resource can be imported using the public cloud project ID, region and the volume ID, e.g.,\n\nterraform\n\nimport {\n\n  to = ovh_cloud_project_volume.volume\n\n  id = \"\u003cpublic cloud project ID\u003e/\u003cregion\u003e/\u003cvolume ID\u003e\"\n\n}\n\nbash\n\n$ pulumi preview -generate-config-out=volume.tf\n\n$ pulumi up\n\nThe file `volume.tf` will then contain the imported resource's configuration, that can be copied next to the `import` block above. See https://developer.hashicorp.com/terraform/language/import/generating-configuration for more details.\n\n","properties":{"action":{"type":"string","description":"The action of the operation\n"},"completedAt":{"type":"string","description":"The completed date of the operation\n"},"createdAt":{"type":"string","description":"The creation date of the operation\n"},"description":{"type":"string","description":"A description of the volume\n"},"imageId":{"type":"string","description":"Image ID\n"},"instanceId":{"type":"string","description":"Instance ID\n"},"name":{"type":"string","description":"Name of the volume\n"},"progress":{"type":"number","description":"Volume status\n"},"regionName":{"type":"string","description":"Required. A valid OVHcloud public cloud region name in which the volume will be available. Ex.: \"GRA11\". **Changing this value recreates the resource.**\n"},"regions":{"type":"array","items":{"type":"string"},"description":"List of regions\n"},"resourceId":{"type":"string","description":"Id of the resource\n"},"serviceName":{"type":"string","description":"Optional. The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.**\n"},"size":{"type":"number","description":"Size (GB) of the volume\n"},"snapshotId":{"type":"string","description":"Snapshot ID\n"},"startedAt":{"type":"string","description":"Datetime of the operation creation\n"},"status":{"type":"string","description":"Volume status\n"},"subOperations":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/VolumeSubOperation:VolumeSubOperation"},"description":"Sub-operations of the operation\n"},"type":{"type":"string","description":"Type of the volume **Changing this value recreates the resource.** Available types are: classic, classic-luks, classic-multiattach, high-speed, high-speed-luks, high-speed-gen2, high-speed-gen2-luks\n"},"volumeId":{"type":"string","description":"Volume ID\n"}},"required":["action","completedAt","createdAt","description","imageId","instanceId","name","progress","regionName","regions","resourceId","size","snapshotId","startedAt","status","subOperations","type","volumeId"],"inputProperties":{"description":{"type":"string","description":"A description of the volume\n"},"imageId":{"type":"string","description":"Image ID\n"},"instanceId":{"type":"string","description":"Instance ID\n"},"name":{"type":"string","description":"Name of the volume\n"},"regionName":{"type":"string","description":"Required. A valid OVHcloud public cloud region name in which the volume will be available. Ex.: \"GRA11\". **Changing this value recreates the resource.**\n"},"serviceName":{"type":"string","description":"Optional. The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.**\n"},"size":{"type":"number","description":"Size (GB) of the volume\n"},"snapshotId":{"type":"string","description":"Snapshot ID\n"},"type":{"type":"string","description":"Type of the volume **Changing this value recreates the resource.** Available types are: classic, classic-luks, classic-multiattach, high-speed, high-speed-luks, high-speed-gen2, high-speed-gen2-luks\n"},"volumeId":{"type":"string","description":"Volume ID\n"}},"requiredInputs":["regionName"],"stateInputs":{"description":"Input properties used for looking up and filtering Volume resources.\n","properties":{"action":{"type":"string","description":"The action of the operation\n"},"completedAt":{"type":"string","description":"The completed date of the operation\n"},"createdAt":{"type":"string","description":"The creation date of the operation\n"},"description":{"type":"string","description":"A description of the volume\n"},"imageId":{"type":"string","description":"Image ID\n"},"instanceId":{"type":"string","description":"Instance ID\n"},"name":{"type":"string","description":"Name of the volume\n"},"progress":{"type":"number","description":"Volume status\n"},"regionName":{"type":"string","description":"Required. A valid OVHcloud public cloud region name in which the volume will be available. Ex.: \"GRA11\". **Changing this value recreates the resource.**\n"},"regions":{"type":"array","items":{"type":"string"},"description":"List of regions\n"},"resourceId":{"type":"string","description":"Id of the resource\n"},"serviceName":{"type":"string","description":"Optional. The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.**\n"},"size":{"type":"number","description":"Size (GB) of the volume\n"},"snapshotId":{"type":"string","description":"Snapshot ID\n"},"startedAt":{"type":"string","description":"Datetime of the operation creation\n"},"status":{"type":"string","description":"Volume status\n"},"subOperations":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/VolumeSubOperation:VolumeSubOperation"},"description":"Sub-operations of the operation\n"},"type":{"type":"string","description":"Type of the volume **Changing this value recreates the resource.** Available types are: classic, classic-luks, classic-multiattach, high-speed, high-speed-luks, high-speed-gen2, high-speed-gen2-luks\n"},"volumeId":{"type":"string","description":"Volume ID\n"}},"type":"object"}},"ovh:CloudProject/volumeBackup:VolumeBackup":{"description":"Manage backups for the given volume in a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst backup = new ovh.cloudproject.VolumeBackup(\"backup\", {\n    serviceName: \"\u003cpublic cloud project ID\u003e\",\n    regionName: \"GRA9\",\n    volumeId: \"\u003cvolume ID\u003e\",\n    name: \"ExampleBackup\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nbackup = ovh.cloudproject.VolumeBackup(\"backup\",\n    service_name=\"\u003cpublic cloud project ID\u003e\",\n    region_name=\"GRA9\",\n    volume_id=\"\u003cvolume ID\u003e\",\n    name=\"ExampleBackup\")\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 backup = new Ovh.CloudProject.VolumeBackup(\"backup\", new()\n    {\n        ServiceName = \"\u003cpublic cloud project ID\u003e\",\n        RegionName = \"GRA9\",\n        VolumeId = \"\u003cvolume ID\u003e\",\n        Name = \"ExampleBackup\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewVolumeBackup(ctx, \"backup\", \u0026cloudproject.VolumeBackupArgs{\n\t\t\tServiceName: pulumi.String(\"\u003cpublic cloud project ID\u003e\"),\n\t\t\tRegionName:  pulumi.String(\"GRA9\"),\n\t\t\tVolumeId:    pulumi.String(\"\u003cvolume ID\u003e\"),\n\t\t\tName:        pulumi.String(\"ExampleBackup\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.CloudProject.VolumeBackup;\nimport com.ovhcloud.pulumi.ovh.CloudProject.VolumeBackupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var backup = new VolumeBackup(\"backup\", VolumeBackupArgs.builder()\n            .serviceName(\"\u003cpublic cloud project ID\u003e\")\n            .regionName(\"GRA9\")\n            .volumeId(\"\u003cvolume ID\u003e\")\n            .name(\"ExampleBackup\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  backup:\n    type: ovh:CloudProject:VolumeBackup\n    properties:\n      serviceName: \u003cpublic cloud project ID\u003e\n      regionName: GRA9\n      volumeId: \u003cvolume ID\u003e\n      name: ExampleBackup\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nA volume backup in a public cloud project can be imported using the `service_name`, `region_name` and `id` attributes. Using the following configuration:\n\nterraform\n\nimport {\n\n  id = \"\u003cservice_name\u003e/\u003cregion_name\u003e/\u003cid\u003e\"\n\n  to = ovh_cloud_project_volume_backup.backup\n\n}\n\nYou can then run:\n\nbash\n\n$ pulumi preview -generate-config-out=backup.tf\n\n$ pulumi up\n\nThe file `backup.tf` will then contain the imported resource's configuration, that can be copied next to the `import` block above. See https://developer.hashicorp.com/terraform/language/import/generating-configuration for more details.\n\n","properties":{"creationDate":{"type":"string","description":"Creation date of the backup\n"},"name":{"type":"string","description":"name of the backup\n"},"region":{"type":"string","description":"Volume backup region\n"},"regionName":{"type":"string","description":"Region name\n"},"serviceName":{"type":"string","description":"Service name. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"size":{"type":"number","description":"Size of the backup in GiB\n"},"status":{"type":"string","description":"Staus of the backup\n"},"volumeId":{"type":"string","description":"ID of the volume to backup\n"}},"required":["creationDate","name","region","regionName","size","status","volumeId"],"inputProperties":{"name":{"type":"string","description":"name of the backup\n"},"regionName":{"type":"string","description":"Region name\n"},"serviceName":{"type":"string","description":"Service name. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"volumeId":{"type":"string","description":"ID of the volume to backup\n"}},"requiredInputs":["regionName","volumeId"],"stateInputs":{"description":"Input properties used for looking up and filtering VolumeBackup resources.\n","properties":{"creationDate":{"type":"string","description":"Creation date of the backup\n"},"name":{"type":"string","description":"name of the backup\n"},"region":{"type":"string","description":"Volume backup region\n"},"regionName":{"type":"string","description":"Region name\n"},"serviceName":{"type":"string","description":"Service name. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"size":{"type":"number","description":"Size of the backup in GiB\n"},"status":{"type":"string","description":"Staus of the backup\n"},"volumeId":{"type":"string","description":"ID of the volume to backup\n"}},"type":"object"}},"ovh:CloudProject/workflowBackup:WorkflowBackup":{"description":"Manage a worflow that schedules backups of public cloud instance. Note that upon deletion, the workflow is deleted but any backups that have been created by this workflow are not.\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 myBackup = new ovh.cloudproject.WorkflowBackup(\"my_backup\", {\n    serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    regionName: \"GRA11\",\n    cron: \"50 4 * * *\",\n    instanceId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx\",\n    maxExecutionCount: 0,\n    name: \"Backup workflow for instance\",\n    rotation: 7,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_backup = ovh.cloudproject.WorkflowBackup(\"my_backup\",\n    service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    region_name=\"GRA11\",\n    cron=\"50 4 * * *\",\n    instance_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx\",\n    max_execution_count=0,\n    name=\"Backup workflow for instance\",\n    rotation=7)\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 myBackup = new Ovh.CloudProject.WorkflowBackup(\"my_backup\", new()\n    {\n        ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n        RegionName = \"GRA11\",\n        Cron = \"50 4 * * *\",\n        InstanceId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx\",\n        MaxExecutionCount = 0,\n        Name = \"Backup workflow for instance\",\n        Rotation = 7,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewWorkflowBackup(ctx, \"my_backup\", \u0026cloudproject.WorkflowBackupArgs{\n\t\t\tServiceName:       pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tRegionName:        pulumi.String(\"GRA11\"),\n\t\t\tCron:              pulumi.String(\"50 4 * * *\"),\n\t\t\tInstanceId:        pulumi.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx\"),\n\t\t\tMaxExecutionCount: pulumi.Int(0),\n\t\t\tName:              pulumi.String(\"Backup workflow for instance\"),\n\t\t\tRotation:          pulumi.Int(7),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.CloudProject.WorkflowBackup;\nimport com.ovhcloud.pulumi.ovh.CloudProject.WorkflowBackupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myBackup = new WorkflowBackup(\"myBackup\", WorkflowBackupArgs.builder()\n            .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n            .regionName(\"GRA11\")\n            .cron(\"50 4 * * *\")\n            .instanceId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx\")\n            .maxExecutionCount(0)\n            .name(\"Backup workflow for instance\")\n            .rotation(7)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myBackup:\n    type: ovh:CloudProject:WorkflowBackup\n    name: my_backup\n    properties:\n      serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n      regionName: GRA11\n      cron: 50 4 * * *\n      instanceId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx\n      maxExecutionCount: '0'\n      name: Backup workflow for instance\n      rotation: '7'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nA cloud project workflow backup can be imported using the `id` (workflow ID) E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProject/workflowBackup:WorkflowBackup my_workflow id\n```\n\n","properties":{"backupName":{"type":"string","description":"The name of the backup files that are created. If empty, the `name` attribute is used.\n"},"createdAt":{"type":"string","description":"The creation date of the workflow.\n"},"cron":{"type":"string","description":"The cron periodicity at which the backup workflow is scheduled\n\n* `instanceId` the id of the instance to back up\n"},"instanceId":{"type":"string","description":"See Argument Reference above.\n"},"maxExecutionCount":{"type":"integer","description":"The number of times the worflow is run. Default value is `0` which means that the workflow will be scheduled continously until its deletion\n"},"name":{"type":"string","description":"The worflow name that is used in the UI\n"},"regionName":{"type":"string","description":"The name of the openstack region.\n"},"rotation":{"type":"integer","description":"The number of backup that are retained.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"required":["backupName","createdAt","cron","instanceId","name","regionName","rotation","serviceName"],"inputProperties":{"backupName":{"type":"string","description":"The name of the backup files that are created. If empty, the `name` attribute is used.\n","willReplaceOnChanges":true},"cron":{"type":"string","description":"The cron periodicity at which the backup workflow is scheduled\n\n* `instanceId` the id of the instance to back up\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"See Argument Reference above.\n","willReplaceOnChanges":true},"maxExecutionCount":{"type":"integer","description":"The number of times the worflow is run. Default value is `0` which means that the workflow will be scheduled continously until its deletion\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The worflow name that is used in the UI\n","willReplaceOnChanges":true},"regionName":{"type":"string","description":"The name of the openstack region.\n","willReplaceOnChanges":true},"rotation":{"type":"integer","description":"The number of backup that are retained.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"requiredInputs":["cron","instanceId","regionName","rotation"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkflowBackup resources.\n","properties":{"backupName":{"type":"string","description":"The name of the backup files that are created. If empty, the `name` attribute is used.\n","willReplaceOnChanges":true},"createdAt":{"type":"string","description":"The creation date of the workflow.\n"},"cron":{"type":"string","description":"The cron periodicity at which the backup workflow is scheduled\n\n* `instanceId` the id of the instance to back up\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"See Argument Reference above.\n","willReplaceOnChanges":true},"maxExecutionCount":{"type":"integer","description":"The number of times the worflow is run. Default value is `0` which means that the workflow will be scheduled continously until its deletion\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The worflow name that is used in the UI\n","willReplaceOnChanges":true},"regionName":{"type":"string","description":"The name of the openstack region.\n","willReplaceOnChanges":true},"rotation":{"type":"integer","description":"The number of backup that are retained.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:CloudProjectDatabase/databaseInstance:DatabaseInstance":{"description":"Creates a database for a database cluster associated with a public cloud project.\n\nWith this resource you can create a database for the following database engine:\n\n* `clickhouse`\n* `mysql`\n* `postgresql`\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst db = ovh.CloudProjectDatabase.getDatabase({\n    serviceName: \"XXXX\",\n    engine: \"YYYY\",\n    id: \"ZZZZ\",\n});\nconst database = new ovh.cloudprojectdatabase.DatabaseInstance(\"database\", {\n    serviceName: db.then(db =\u003e db.serviceName),\n    engine: db.then(db =\u003e db.engine),\n    clusterId: db.then(db =\u003e db.id),\n    name: \"mydatabase\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ndb = ovh.CloudProjectDatabase.get_database(service_name=\"XXXX\",\n    engine=\"YYYY\",\n    id=\"ZZZZ\")\ndatabase = ovh.cloudprojectdatabase.DatabaseInstance(\"database\",\n    service_name=db.service_name,\n    engine=db.engine,\n    cluster_id=db.id,\n    name=\"mydatabase\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var db = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n    {\n        ServiceName = \"XXXX\",\n        Engine = \"YYYY\",\n        Id = \"ZZZZ\",\n    });\n\n    var database = new Ovh.CloudProjectDatabase.DatabaseInstance(\"database\", new()\n    {\n        ServiceName = db.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n        Engine = db.Apply(getDatabaseResult =\u003e getDatabaseResult.Engine),\n        ClusterId = db.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n        Name = \"mydatabase\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdb, err := cloudprojectdatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXXX\",\n\t\t\tEngine:      \"YYYY\",\n\t\t\tId:          \"ZZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudprojectdatabase.NewDatabaseInstance(ctx, \"database\", \u0026cloudprojectdatabase.DatabaseInstanceArgs{\n\t\t\tServiceName: pulumi.String(db.ServiceName),\n\t\t\tEngine:      pulumi.String(db.Engine),\n\t\t\tClusterId:   pulumi.String(db.Id),\n\t\t\tName:        pulumi.String(\"mydatabase\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.ovhcloud.pulumi.ovh.CloudProjectDatabase.DatabaseInstance;\nimport com.ovhcloud.pulumi.ovh.CloudProjectDatabase.DatabaseInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var db = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n            .serviceName(\"XXXX\")\n            .engine(\"YYYY\")\n            .id(\"ZZZZ\")\n            .build());\n\n        var database = new DatabaseInstance(\"database\", DatabaseInstanceArgs.builder()\n            .serviceName(db.serviceName())\n            .engine(db.engine())\n            .clusterId(db.id())\n            .name(\"mydatabase\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  database:\n    type: ovh:CloudProjectDatabase:DatabaseInstance\n    properties:\n      serviceName: ${db.serviceName}\n      engine: ${db.engine}\n      clusterId: ${db.id}\n      name: mydatabase\nvariables:\n  db:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getDatabase\n      arguments:\n        serviceName: XXXX\n        engine: YYYY\n        id: ZZZZ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed database clusters databases can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the database, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/databaseInstance:DatabaseInstance my_database service_name/engine/cluster_id/id\n```\n\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n"},"default":{"type":"boolean","description":"Defines if the database has been created by default.\n"},"engine":{"type":"string","description":"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:\n"},"name":{"type":"string","description":"Name of the database.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"required":["clusterId","default","engine","name","serviceName"],"inputProperties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"engine":{"type":"string","description":"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:\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Name of the database.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterId","engine"],"stateInputs":{"description":"Input properties used for looking up and filtering DatabaseInstance resources.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"default":{"type":"boolean","description":"Defines if the database has been created by default.\n"},"engine":{"type":"string","description":"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:\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Name of the database.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:CloudProjectDatabase/integration:Integration":{"description":"Creates an integration for a database cluster associated with a public cloud project.\n\nWith this resource you can create an integration for all engine except `mongodb`.\n\nPlease take a look at the list of available `types` in the `Argument references` section in order to know the list of available integrations. For example, thanks to the integration feature you can have your PostgreSQL logs in your OpenSearch Database.\n\n## Example Usage\n\nPush PostgreSQL logs in an OpenSearch DB:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst dbPostgresql = ovh.CloudProjectDatabase.getDatabase({\n    serviceName: \"XXXX\",\n    engine: \"postgresql\",\n    id: \"ZZZZ\",\n});\nconst dbOpensearch = ovh.CloudProjectDatabase.getDatabase({\n    serviceName: \"XXXX\",\n    engine: \"opensearch\",\n    id: \"ZZZZ\",\n});\nconst integration = new ovh.cloudprojectdatabase.Integration(\"integration\", {\n    serviceName: dbPostgresql.then(dbPostgresql =\u003e dbPostgresql.serviceName),\n    engine: dbPostgresql.then(dbPostgresql =\u003e dbPostgresql.engine),\n    clusterId: dbPostgresql.then(dbPostgresql =\u003e dbPostgresql.id),\n    sourceServiceId: dbPostgresql.then(dbPostgresql =\u003e dbPostgresql.id),\n    destinationServiceId: dbOpensearch.then(dbOpensearch =\u003e dbOpensearch.id),\n    type: \"opensearchLogs\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ndb_postgresql = ovh.CloudProjectDatabase.get_database(service_name=\"XXXX\",\n    engine=\"postgresql\",\n    id=\"ZZZZ\")\ndb_opensearch = ovh.CloudProjectDatabase.get_database(service_name=\"XXXX\",\n    engine=\"opensearch\",\n    id=\"ZZZZ\")\nintegration = ovh.cloudprojectdatabase.Integration(\"integration\",\n    service_name=db_postgresql.service_name,\n    engine=db_postgresql.engine,\n    cluster_id=db_postgresql.id,\n    source_service_id=db_postgresql.id,\n    destination_service_id=db_opensearch.id,\n    type=\"opensearchLogs\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var dbPostgresql = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n    {\n        ServiceName = \"XXXX\",\n        Engine = \"postgresql\",\n        Id = \"ZZZZ\",\n    });\n\n    var dbOpensearch = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n    {\n        ServiceName = \"XXXX\",\n        Engine = \"opensearch\",\n        Id = \"ZZZZ\",\n    });\n\n    var integration = new Ovh.CloudProjectDatabase.Integration(\"integration\", new()\n    {\n        ServiceName = dbPostgresql.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n        Engine = dbPostgresql.Apply(getDatabaseResult =\u003e getDatabaseResult.Engine),\n        ClusterId = dbPostgresql.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n        SourceServiceId = dbPostgresql.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n        DestinationServiceId = dbOpensearch.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n        Type = \"opensearchLogs\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdbPostgresql, err := cloudprojectdatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXXX\",\n\t\t\tEngine:      \"postgresql\",\n\t\t\tId:          \"ZZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdbOpensearch, err := cloudprojectdatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXXX\",\n\t\t\tEngine:      \"opensearch\",\n\t\t\tId:          \"ZZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudprojectdatabase.NewIntegration(ctx, \"integration\", \u0026cloudprojectdatabase.IntegrationArgs{\n\t\t\tServiceName:          pulumi.String(dbPostgresql.ServiceName),\n\t\t\tEngine:               pulumi.String(dbPostgresql.Engine),\n\t\t\tClusterId:            pulumi.String(dbPostgresql.Id),\n\t\t\tSourceServiceId:      pulumi.String(dbPostgresql.Id),\n\t\t\tDestinationServiceId: pulumi.String(dbOpensearch.Id),\n\t\t\tType:                 pulumi.String(\"opensearchLogs\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.ovhcloud.pulumi.ovh.CloudProjectDatabase.Integration;\nimport com.ovhcloud.pulumi.ovh.CloudProjectDatabase.IntegrationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var dbPostgresql = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n            .serviceName(\"XXXX\")\n            .engine(\"postgresql\")\n            .id(\"ZZZZ\")\n            .build());\n\n        final var dbOpensearch = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n            .serviceName(\"XXXX\")\n            .engine(\"opensearch\")\n            .id(\"ZZZZ\")\n            .build());\n\n        var integration = new Integration(\"integration\", IntegrationArgs.builder()\n            .serviceName(dbPostgresql.serviceName())\n            .engine(dbPostgresql.engine())\n            .clusterId(dbPostgresql.id())\n            .sourceServiceId(dbPostgresql.id())\n            .destinationServiceId(dbOpensearch.id())\n            .type(\"opensearchLogs\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  integration:\n    type: ovh:CloudProjectDatabase:Integration\n    properties:\n      serviceName: ${dbPostgresql.serviceName}\n      engine: ${dbPostgresql.engine}\n      clusterId: ${dbPostgresql.id}\n      sourceServiceId: ${dbPostgresql.id}\n      destinationServiceId: ${dbOpensearch.id}\n      type: opensearchLogs\nvariables:\n  dbPostgresql:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getDatabase\n      arguments:\n        serviceName: XXXX\n        engine: postgresql\n        id: ZZZZ\n  dbOpensearch:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getDatabase\n      arguments:\n        serviceName: XXXX\n        engine: opensearch\n        id: ZZZZ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed database cluster integrations can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the integration, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/integration:Integration my_integration service_name/engine/cluster_id/id\n```\n\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n"},"destinationServiceId":{"type":"string","description":"ID of the destination service.\n"},"engine":{"type":"string","description":"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). All engines available except `mongodb`.\n"},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"Parameters for the integration.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"sourceServiceId":{"type":"string","description":"ID of the source service.\n"},"status":{"type":"string","description":"Current status of the integration.\n"},"type":{"type":"string","description":"Type of the integration. Available types:\n* `grafanaDashboard`\n* `grafanaDatasource`\n* `kafkaConnect`\n* `kafkaLogs`\n* `kafkaMirrorMaker`\n"}},"required":["clusterId","destinationServiceId","engine","serviceName","sourceServiceId","status","type"],"inputProperties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"destinationServiceId":{"type":"string","description":"ID of the destination service.\n","willReplaceOnChanges":true},"engine":{"type":"string","description":"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). All engines available except `mongodb`.\n","willReplaceOnChanges":true},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"Parameters for the integration.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"sourceServiceId":{"type":"string","description":"ID of the source service.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"Type of the integration. Available types:\n* `grafanaDashboard`\n* `grafanaDatasource`\n* `kafkaConnect`\n* `kafkaLogs`\n* `kafkaMirrorMaker`\n","willReplaceOnChanges":true}},"requiredInputs":["clusterId","destinationServiceId","engine","sourceServiceId"],"stateInputs":{"description":"Input properties used for looking up and filtering Integration resources.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"destinationServiceId":{"type":"string","description":"ID of the destination service.\n","willReplaceOnChanges":true},"engine":{"type":"string","description":"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). All engines available except `mongodb`.\n","willReplaceOnChanges":true},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"Parameters for the integration.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"sourceServiceId":{"type":"string","description":"ID of the source service.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Current status of the integration.\n"},"type":{"type":"string","description":"Type of the integration. Available types:\n* `grafanaDashboard`\n* `grafanaDatasource`\n* `kafkaConnect`\n* `kafkaLogs`\n* `kafkaMirrorMaker`\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:CloudProjectDatabase/ipRestriction:IpRestriction":{"description":"\u003e **DEPRECATED** Use `ip_restrictions` field in `ovh.CloudProject.Database` resource instead. Using the `ovh.CloudProjectDatabase.IpRestriction` resource to add an IP restriction to a `ovh.CloudProject.Database` resource will cause its update on each apply\n\n\u003e **NOTE** This resource is only compatible with the following engines: **cassandra, grafana, kafka, kakfaConnect, m3db, mongodb, mysql, opensearch, postgres, redis**\n\nApply IP restrictions to an OVHcloud Managed Database cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst db = ovh.CloudProjectDatabase.getDatabase({\n    serviceName: \"XXXX\",\n    engine: \"YYYY\",\n    id: \"ZZZZ\",\n});\nconst ipRestriction = new ovh.cloudprojectdatabase.IpRestriction(\"ip_restriction\", {\n    serviceName: db.then(db =\u003e db.serviceName),\n    engine: db.then(db =\u003e db.engine),\n    clusterId: db.then(db =\u003e db.id),\n    ip: \"178.97.6.0/24\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ndb = ovh.CloudProjectDatabase.get_database(service_name=\"XXXX\",\n    engine=\"YYYY\",\n    id=\"ZZZZ\")\nip_restriction = ovh.cloudprojectdatabase.IpRestriction(\"ip_restriction\",\n    service_name=db.service_name,\n    engine=db.engine,\n    cluster_id=db.id,\n    ip=\"178.97.6.0/24\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var db = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n    {\n        ServiceName = \"XXXX\",\n        Engine = \"YYYY\",\n        Id = \"ZZZZ\",\n    });\n\n    var ipRestriction = new Ovh.CloudProjectDatabase.IpRestriction(\"ip_restriction\", new()\n    {\n        ServiceName = db.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n        Engine = db.Apply(getDatabaseResult =\u003e getDatabaseResult.Engine),\n        ClusterId = db.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n        Ip = \"178.97.6.0/24\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdb, err := cloudprojectdatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXXX\",\n\t\t\tEngine:      \"YYYY\",\n\t\t\tId:          \"ZZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudprojectdatabase.NewIpRestriction(ctx, \"ip_restriction\", \u0026cloudprojectdatabase.IpRestrictionArgs{\n\t\t\tServiceName: pulumi.String(db.ServiceName),\n\t\t\tEngine:      pulumi.String(db.Engine),\n\t\t\tClusterId:   pulumi.String(db.Id),\n\t\t\tIp:          pulumi.String(\"178.97.6.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.ovhcloud.pulumi.ovh.CloudProjectDatabase.IpRestriction;\nimport com.ovhcloud.pulumi.ovh.CloudProjectDatabase.IpRestrictionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var db = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n            .serviceName(\"XXXX\")\n            .engine(\"YYYY\")\n            .id(\"ZZZZ\")\n            .build());\n\n        var ipRestriction = new IpRestriction(\"ipRestriction\", IpRestrictionArgs.builder()\n            .serviceName(db.serviceName())\n            .engine(db.engine())\n            .clusterId(db.id())\n            .ip(\"178.97.6.0/24\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ipRestriction:\n    type: ovh:CloudProjectDatabase:IpRestriction\n    name: ip_restriction\n    properties:\n      serviceName: ${db.serviceName}\n      engine: ${db.engine}\n      clusterId: ${db.id}\n      ip: 178.97.6.0/24\nvariables:\n  db:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getDatabase\n      arguments:\n        serviceName: XXXX\n        engine: YYYY\n        id: ZZZZ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed database cluster IP restrictions can be imported using the `service_name`, `engine`, `cluster_id` and the `ip`, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/ipRestriction:IpRestriction my_ip_restriction service_name/engine/cluster_id/178.97.6.0/24\n```\n\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n"},"description":{"type":"string","description":"Description of the IP restriction.\n"},"engine":{"type":"string","description":"The engine of the database cluster you want to add an IP restriction. To get a full list of available engine visit. [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases).\n"},"ip":{"type":"string","description":"Authorized IP.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"status":{"type":"string","description":"Current status of the IP restriction.\n"}},"required":["clusterId","engine","ip","serviceName","status"],"inputProperties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Description of the IP restriction.\n"},"engine":{"type":"string","description":"The engine of the database cluster you want to add an IP restriction. To get a full list of available engine visit. [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases).\n","willReplaceOnChanges":true},"ip":{"type":"string","description":"Authorized IP.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterId","engine","ip"],"stateInputs":{"description":"Input properties used for looking up and filtering IpRestriction resources.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Description of the IP restriction.\n"},"engine":{"type":"string","description":"The engine of the database cluster you want to add an IP restriction. To get a full list of available engine visit. [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases).\n","willReplaceOnChanges":true},"ip":{"type":"string","description":"Authorized IP.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Current status of the IP restriction.\n"}},"type":"object"}},"ovh:CloudProjectDatabase/kafkaAcl:KafkaAcl":{"description":"Creates an ACL for a kafka cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst kafka = ovh.CloudProjectDatabase.getDatabase({\n    serviceName: \"XXX\",\n    engine: \"kafka\",\n    id: \"ZZZ\",\n});\nconst acl = new ovh.cloudprojectdatabase.KafkaAcl(\"acl\", {\n    serviceName: kafka.then(kafka =\u003e kafka.serviceName),\n    clusterId: kafka.then(kafka =\u003e kafka.id),\n    permission: \"read\",\n    topic: \"mytopic\",\n    username: \"johndoe\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nkafka = ovh.CloudProjectDatabase.get_database(service_name=\"XXX\",\n    engine=\"kafka\",\n    id=\"ZZZ\")\nacl = ovh.cloudprojectdatabase.KafkaAcl(\"acl\",\n    service_name=kafka.service_name,\n    cluster_id=kafka.id,\n    permission=\"read\",\n    topic=\"mytopic\",\n    username=\"johndoe\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var kafka = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        Engine = \"kafka\",\n        Id = \"ZZZ\",\n    });\n\n    var acl = new Ovh.CloudProjectDatabase.KafkaAcl(\"acl\", new()\n    {\n        ServiceName = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n        ClusterId = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n        Permission = \"read\",\n        Topic = \"mytopic\",\n        Username = \"johndoe\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkafka, err := cloudprojectdatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine:      \"kafka\",\n\t\t\tId:          \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudprojectdatabase.NewKafkaAcl(ctx, \"acl\", \u0026cloudprojectdatabase.KafkaAclArgs{\n\t\t\tServiceName: pulumi.String(kafka.ServiceName),\n\t\t\tClusterId:   pulumi.String(kafka.Id),\n\t\t\tPermission:  pulumi.String(\"read\"),\n\t\t\tTopic:       pulumi.String(\"mytopic\"),\n\t\t\tUsername:    pulumi.String(\"johndoe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.ovhcloud.pulumi.ovh.CloudProjectDatabase.KafkaAcl;\nimport com.ovhcloud.pulumi.ovh.CloudProjectDatabase.KafkaAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var kafka = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n            .serviceName(\"XXX\")\n            .engine(\"kafka\")\n            .id(\"ZZZ\")\n            .build());\n\n        var acl = new KafkaAcl(\"acl\", KafkaAclArgs.builder()\n            .serviceName(kafka.serviceName())\n            .clusterId(kafka.id())\n            .permission(\"read\")\n            .topic(\"mytopic\")\n            .username(\"johndoe\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  acl:\n    type: ovh:CloudProjectDatabase:KafkaAcl\n    properties:\n      serviceName: ${kafka.serviceName}\n      clusterId: ${kafka.id}\n      permission: read\n      topic: mytopic\n      username: johndoe\nvariables:\n  kafka:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getDatabase\n      arguments:\n        serviceName: XXX\n        engine: kafka\n        id: ZZZ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed kafka clusters ACLs can be imported using the `service_name`, `cluster_id` and `id` of the acl, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/kafkaAcl:KafkaAcl my_acl service_name/cluster_id/id\n```\n\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n"},"permission":{"type":"string","description":"Permission to give to this username on this topic. Available permissions:\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"topic":{"type":"string","description":"Topic affected by this ACL.\n"},"username":{"type":"string","description":"Username affected by this ACL.\n"}},"required":["clusterId","permission","serviceName","topic","username"],"inputProperties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"permission":{"type":"string","description":"Permission to give to this username on this topic. Available permissions:\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"topic":{"type":"string","description":"Topic affected by this ACL.\n","willReplaceOnChanges":true},"username":{"type":"string","description":"Username affected by this ACL.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterId","permission","topic","username"],"stateInputs":{"description":"Input properties used for looking up and filtering KafkaAcl resources.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"permission":{"type":"string","description":"Permission to give to this username on this topic. Available permissions:\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"topic":{"type":"string","description":"Topic affected by this ACL.\n","willReplaceOnChanges":true},"username":{"type":"string","description":"Username affected by this ACL.\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:CloudProjectDatabase/kafkaSchemaRegistryAcl:KafkaSchemaRegistryAcl":{"description":"Creates a schema registry ACL for a Kafka cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst kafka = ovh.CloudProjectDatabase.getDatabase({\n    serviceName: \"XXX\",\n    engine: \"kafka\",\n    id: \"ZZZ\",\n});\nconst schemaRegistryAcl = new ovh.cloudprojectdatabase.KafkaSchemaRegistryAcl(\"schema_registry_acl\", {\n    serviceName: kafka.then(kafka =\u003e kafka.serviceName),\n    clusterId: kafka.then(kafka =\u003e kafka.id),\n    permission: \"schema_registry_read\",\n    resource: \"Subject:myResource\",\n    username: \"johndoe\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nkafka = ovh.CloudProjectDatabase.get_database(service_name=\"XXX\",\n    engine=\"kafka\",\n    id=\"ZZZ\")\nschema_registry_acl = ovh.cloudprojectdatabase.KafkaSchemaRegistryAcl(\"schema_registry_acl\",\n    service_name=kafka.service_name,\n    cluster_id=kafka.id,\n    permission=\"schema_registry_read\",\n    resource=\"Subject:myResource\",\n    username=\"johndoe\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var kafka = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        Engine = \"kafka\",\n        Id = \"ZZZ\",\n    });\n\n    var schemaRegistryAcl = new Ovh.CloudProjectDatabase.KafkaSchemaRegistryAcl(\"schema_registry_acl\", new()\n    {\n        ServiceName = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n        ClusterId = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n        Permission = \"schema_registry_read\",\n        Resource = \"Subject:myResource\",\n        Username = \"johndoe\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkafka, err := cloudprojectdatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine:      \"kafka\",\n\t\t\tId:          \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudprojectdatabase.NewKafkaSchemaRegistryAcl(ctx, \"schema_registry_acl\", \u0026cloudprojectdatabase.KafkaSchemaRegistryAclArgs{\n\t\t\tServiceName: pulumi.String(kafka.ServiceName),\n\t\t\tClusterId:   pulumi.String(kafka.Id),\n\t\t\tPermission:  pulumi.String(\"schema_registry_read\"),\n\t\t\tResource:    pulumi.String(\"Subject:myResource\"),\n\t\t\tUsername:    pulumi.String(\"johndoe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.ovhcloud.pulumi.ovh.CloudProjectDatabase.KafkaSchemaRegistryAcl;\nimport com.ovhcloud.pulumi.ovh.CloudProjectDatabase.KafkaSchemaRegistryAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var kafka = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n            .serviceName(\"XXX\")\n            .engine(\"kafka\")\n            .id(\"ZZZ\")\n            .build());\n\n        var schemaRegistryAcl = new KafkaSchemaRegistryAcl(\"schemaRegistryAcl\", KafkaSchemaRegistryAclArgs.builder()\n            .serviceName(kafka.serviceName())\n            .clusterId(kafka.id())\n            .permission(\"schema_registry_read\")\n            .resource(\"Subject:myResource\")\n            .username(\"johndoe\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  schemaRegistryAcl:\n    type: ovh:CloudProjectDatabase:KafkaSchemaRegistryAcl\n    name: schema_registry_acl\n    properties:\n      serviceName: ${kafka.serviceName}\n      clusterId: ${kafka.id}\n      permission: schema_registry_read\n      resource: Subject:myResource\n      username: johndoe\nvariables:\n  kafka:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getDatabase\n      arguments:\n        serviceName: XXX\n        engine: kafka\n        id: ZZZ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed Kafka clusters schema registry ACLs can be imported using the `service_name`, `cluster_id` and `id` of the schema registry ACL, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/kafkaSchemaRegistryAcl:KafkaSchemaRegistryAcl my_schemaRegistryAcl service_name/cluster_id/id\n```\n\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n"},"permission":{"type":"string","description":"Permission to give to this username on this resource. Available permissions:\n"},"resource":{"type":"string","description":"Resource affected by this schema registry ACL.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"username":{"type":"string","description":"Username affected by this schema registry ACL.\n"}},"required":["clusterId","permission","resource","serviceName","username"],"inputProperties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"permission":{"type":"string","description":"Permission to give to this username on this resource. Available permissions:\n","willReplaceOnChanges":true},"resource":{"type":"string","description":"Resource affected by this schema registry ACL.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"username":{"type":"string","description":"Username affected by this schema registry ACL.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterId","permission","resource","username"],"stateInputs":{"description":"Input properties used for looking up and filtering KafkaSchemaRegistryAcl resources.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"permission":{"type":"string","description":"Permission to give to this username on this resource. Available permissions:\n","willReplaceOnChanges":true},"resource":{"type":"string","description":"Resource affected by this schema registry ACL.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"username":{"type":"string","description":"Username affected by this schema registry ACL.\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:CloudProjectDatabase/kafkaTopic:KafkaTopic":{"description":"Creates a topic for a kafka cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst kafka = ovh.CloudProjectDatabase.getDatabase({\n    serviceName: \"XXX\",\n    engine: \"kafka\",\n    id: \"ZZZ\",\n});\nconst topic = new ovh.cloudprojectdatabase.KafkaTopic(\"topic\", {\n    serviceName: kafka.then(kafka =\u003e kafka.serviceName),\n    clusterId: kafka.then(kafka =\u003e kafka.id),\n    name: \"mytopic\",\n    minInsyncReplicas: 1,\n    partitions: 3,\n    replication: 2,\n    retentionBytes: 4,\n    retentionHours: 5,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nkafka = ovh.CloudProjectDatabase.get_database(service_name=\"XXX\",\n    engine=\"kafka\",\n    id=\"ZZZ\")\ntopic = ovh.cloudprojectdatabase.KafkaTopic(\"topic\",\n    service_name=kafka.service_name,\n    cluster_id=kafka.id,\n    name=\"mytopic\",\n    min_insync_replicas=1,\n    partitions=3,\n    replication=2,\n    retention_bytes=4,\n    retention_hours=5)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var kafka = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        Engine = \"kafka\",\n        Id = \"ZZZ\",\n    });\n\n    var topic = new Ovh.CloudProjectDatabase.KafkaTopic(\"topic\", new()\n    {\n        ServiceName = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n        ClusterId = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n        Name = \"mytopic\",\n        MinInsyncReplicas = 1,\n        Partitions = 3,\n        Replication = 2,\n        RetentionBytes = 4,\n        RetentionHours = 5,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkafka, err := cloudprojectdatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine:      \"kafka\",\n\t\t\tId:          \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudprojectdatabase.NewKafkaTopic(ctx, \"topic\", \u0026cloudprojectdatabase.KafkaTopicArgs{\n\t\t\tServiceName:       pulumi.String(kafka.ServiceName),\n\t\t\tClusterId:         pulumi.String(kafka.Id),\n\t\t\tName:              pulumi.String(\"mytopic\"),\n\t\t\tMinInsyncReplicas: pulumi.Int(1),\n\t\t\tPartitions:        pulumi.Int(3),\n\t\t\tReplication:       pulumi.Int(2),\n\t\t\tRetentionBytes:    pulumi.Int(4),\n\t\t\tRetentionHours:    pulumi.Int(5),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.ovhcloud.pulumi.ovh.CloudProjectDatabase.KafkaTopic;\nimport com.ovhcloud.pulumi.ovh.CloudProjectDatabase.KafkaTopicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var kafka = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n            .serviceName(\"XXX\")\n            .engine(\"kafka\")\n            .id(\"ZZZ\")\n            .build());\n\n        var topic = new KafkaTopic(\"topic\", KafkaTopicArgs.builder()\n            .serviceName(kafka.serviceName())\n            .clusterId(kafka.id())\n            .name(\"mytopic\")\n            .minInsyncReplicas(1)\n            .partitions(3)\n            .replication(2)\n            .retentionBytes(4)\n            .retentionHours(5)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  topic:\n    type: ovh:CloudProjectDatabase:KafkaTopic\n    properties:\n      serviceName: ${kafka.serviceName}\n      clusterId: ${kafka.id}\n      name: mytopic\n      minInsyncReplicas: 1\n      partitions: 3\n      replication: 2\n      retentionBytes: 4\n      retentionHours: 5\nvariables:\n  kafka:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getDatabase\n      arguments:\n        serviceName: XXX\n        engine: kafka\n        id: ZZZ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed kafka clusters topics can be imported using the `service_name`, `cluster_id` and `id` of the topic, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/kafkaTopic:KafkaTopic my_topic service_name/cluster_id/id\n```\n\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n"},"minInsyncReplicas":{"type":"integer","description":"Minimum insync replica accepted for this topic. Should be superior to 0\n"},"name":{"type":"string","description":"Name of the topic. No spaces allowed.\n"},"partitions":{"type":"integer","description":"Number of partitions for this topic. Should be superior to 0\n"},"replication":{"type":"integer","description":"Number of replication for this topic. Should be superior to 1\n"},"retentionBytes":{"type":"integer","description":"Number of bytes for the retention of the data for this topic. Inferior to 0 means unlimited\n"},"retentionHours":{"type":"integer","description":"Number of hours for the retention of the data for this topic. Should be superior to -2. Inferior to 0 means unlimited\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"required":["clusterId","minInsyncReplicas","name","partitions","replication","retentionBytes","retentionHours","serviceName"],"inputProperties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"minInsyncReplicas":{"type":"integer","description":"Minimum insync replica accepted for this topic. Should be superior to 0\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Name of the topic. No spaces allowed.\n","willReplaceOnChanges":true},"partitions":{"type":"integer","description":"Number of partitions for this topic. Should be superior to 0\n","willReplaceOnChanges":true},"replication":{"type":"integer","description":"Number of replication for this topic. Should be superior to 1\n","willReplaceOnChanges":true},"retentionBytes":{"type":"integer","description":"Number of bytes for the retention of the data for this topic. Inferior to 0 means unlimited\n","willReplaceOnChanges":true},"retentionHours":{"type":"integer","description":"Number of hours for the retention of the data for this topic. Should be superior to -2. Inferior to 0 means unlimited\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering KafkaTopic resources.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"minInsyncReplicas":{"type":"integer","description":"Minimum insync replica accepted for this topic. Should be superior to 0\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Name of the topic. No spaces allowed.\n","willReplaceOnChanges":true},"partitions":{"type":"integer","description":"Number of partitions for this topic. Should be superior to 0\n","willReplaceOnChanges":true},"replication":{"type":"integer","description":"Number of replication for this topic. Should be superior to 1\n","willReplaceOnChanges":true},"retentionBytes":{"type":"integer","description":"Number of bytes for the retention of the data for this topic. Inferior to 0 means unlimited\n","willReplaceOnChanges":true},"retentionHours":{"type":"integer","description":"Number of hours for the retention of the data for this topic. Should be superior to -2. Inferior to 0 means unlimited\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:CloudProjectDatabase/logSubscription:LogSubscription":{"description":"Creates a log subscription for a cluster associated with a public cloud project.\n\n## Example Usage\n\nCreate a log subscription for a database.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst stream = ovh.Dbaas.getLogsOutputGraylogStream({\n    serviceName: \"ldp-xx-xxxxx\",\n    title: \"my stream\",\n});\nconst db = ovh.CloudProjectDatabase.getDatabase({\n    serviceName: \"XXX\",\n    engine: \"YYY\",\n    id: \"ZZZ\",\n});\nconst subscription = new ovh.cloudprojectdatabase.LogSubscription(\"subscription\", {\n    serviceName: db.then(db =\u003e db.serviceName),\n    engine: db.then(db =\u003e db.engine),\n    clusterId: db.then(db =\u003e db.id),\n    streamId: stream.then(stream =\u003e stream.id),\n    kind: \"customer_logs\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nstream = ovh.Dbaas.get_logs_output_graylog_stream(service_name=\"ldp-xx-xxxxx\",\n    title=\"my stream\")\ndb = ovh.CloudProjectDatabase.get_database(service_name=\"XXX\",\n    engine=\"YYY\",\n    id=\"ZZZ\")\nsubscription = ovh.cloudprojectdatabase.LogSubscription(\"subscription\",\n    service_name=db.service_name,\n    engine=db.engine,\n    cluster_id=db.id,\n    stream_id=stream.id,\n    kind=\"customer_logs\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var stream = Ovh.Dbaas.GetLogsOutputGraylogStream.Invoke(new()\n    {\n        ServiceName = \"ldp-xx-xxxxx\",\n        Title = \"my stream\",\n    });\n\n    var db = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        Engine = \"YYY\",\n        Id = \"ZZZ\",\n    });\n\n    var subscription = new Ovh.CloudProjectDatabase.LogSubscription(\"subscription\", new()\n    {\n        ServiceName = db.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n        Engine = db.Apply(getDatabaseResult =\u003e getDatabaseResult.Engine),\n        ClusterId = db.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n        StreamId = stream.Apply(getLogsOutputGraylogStreamResult =\u003e getLogsOutputGraylogStreamResult.Id),\n        Kind = \"customer_logs\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/dbaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tstream, err := dbaas.GetLogsOutputGraylogStream(ctx, \u0026dbaas.GetLogsOutputGraylogStreamArgs{\n\t\t\tServiceName: \"ldp-xx-xxxxx\",\n\t\t\tTitle:       \"my stream\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdb, err := cloudprojectdatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine:      \"YYY\",\n\t\t\tId:          \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudprojectdatabase.NewLogSubscription(ctx, \"subscription\", \u0026cloudprojectdatabase.LogSubscriptionArgs{\n\t\t\tServiceName: pulumi.String(db.ServiceName),\n\t\t\tEngine:      pulumi.String(db.Engine),\n\t\t\tClusterId:   pulumi.String(db.Id),\n\t\t\tStreamId:    pulumi.String(stream.Id),\n\t\t\tKind:        pulumi.String(\"customer_logs\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Dbaas.DbaasFunctions;\nimport com.pulumi.ovh.Dbaas.inputs.GetLogsOutputGraylogStreamArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.ovhcloud.pulumi.ovh.CloudProjectDatabase.LogSubscription;\nimport com.ovhcloud.pulumi.ovh.CloudProjectDatabase.LogSubscriptionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 stream = DbaasFunctions.getLogsOutputGraylogStream(GetLogsOutputGraylogStreamArgs.builder()\n            .serviceName(\"ldp-xx-xxxxx\")\n            .title(\"my stream\")\n            .build());\n\n        final var db = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n            .serviceName(\"XXX\")\n            .engine(\"YYY\")\n            .id(\"ZZZ\")\n            .build());\n\n        var subscription = new LogSubscription(\"subscription\", LogSubscriptionArgs.builder()\n            .serviceName(db.serviceName())\n            .engine(db.engine())\n            .clusterId(db.id())\n            .streamId(stream.id())\n            .kind(\"customer_logs\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  subscription:\n    type: ovh:CloudProjectDatabase:LogSubscription\n    properties:\n      serviceName: ${db.serviceName}\n      engine: ${db.engine}\n      clusterId: ${db.id}\n      streamId: ${stream.id}\n      kind: customer_logs\nvariables:\n  stream:\n    fn::invoke:\n      function: ovh:Dbaas:getLogsOutputGraylogStream\n      arguments:\n        serviceName: ldp-xx-xxxxx\n        title: my stream\n  db:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getDatabase\n      arguments:\n        serviceName: XXX\n        engine: YYY\n        id: ZZZ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed clusters logs subscription can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the subscription, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/logSubscription:LogSubscription sub service_name/engine/cluster_id/id\n```\n\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n"},"createdAt":{"type":"string","description":"Creation date of the subscription.\n"},"engine":{"type":"string","description":"The database engine for which you want to manage a subscription. To get a full list of available engine visit. [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases).\n"},"kind":{"type":"string","description":"Log kind name of this subscription.\n"},"ldpServiceName":{"type":"string","description":"Name of the destination log service.\n","secret":true},"operationId":{"type":"string","description":"Identifier of the operation.\n"},"resourceName":{"type":"string","description":"Name of subscribed resource, where the logs come from.\n"},"resourceType":{"type":"string","description":"Type of subscribed resource, where the logs come from.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"streamId":{"type":"string","description":"Id of the target Log data platform stream.\n"},"updatedAt":{"type":"string","description":"Last update date of the subscription.\n"}},"required":["clusterId","createdAt","engine","kind","ldpServiceName","operationId","resourceName","resourceType","serviceName","streamId","updatedAt"],"inputProperties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"engine":{"type":"string","description":"The database engine for which you want to manage a subscription. To get a full list of available engine visit. [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases).\n","willReplaceOnChanges":true},"kind":{"type":"string","description":"Log kind name of this subscription.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"streamId":{"type":"string","description":"Id of the target Log data platform stream.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterId","engine","kind","streamId"],"stateInputs":{"description":"Input properties used for looking up and filtering LogSubscription resources.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"createdAt":{"type":"string","description":"Creation date of the subscription.\n"},"engine":{"type":"string","description":"The database engine for which you want to manage a subscription. To get a full list of available engine visit. [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases).\n","willReplaceOnChanges":true},"kind":{"type":"string","description":"Log kind name of this subscription.\n","willReplaceOnChanges":true},"ldpServiceName":{"type":"string","description":"Name of the destination log service.\n","secret":true},"operationId":{"type":"string","description":"Identifier of the operation.\n"},"resourceName":{"type":"string","description":"Name of subscribed resource, where the logs come from.\n"},"resourceType":{"type":"string","description":"Type of subscribed resource, where the logs come from.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"streamId":{"type":"string","description":"Id of the target Log data platform stream.\n","willReplaceOnChanges":true},"updatedAt":{"type":"string","description":"Last update date of the subscription.\n"}},"type":"object"}},"ovh:CloudProjectDatabase/m3DbNamespace:M3DbNamespace":{"description":"Creates a namespace for a M3DB cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst m3db = ovh.CloudProjectDatabase.getDatabase({\n    serviceName: \"XXX\",\n    engine: \"m3db\",\n    id: \"ZZZ\",\n});\nconst namespace = new ovh.cloudprojectdatabase.M3DbNamespace(\"namespace\", {\n    serviceName: m3db.then(m3db =\u003e m3db.serviceName),\n    clusterId: m3db.then(m3db =\u003e m3db.id),\n    name: \"mynamespace\",\n    resolution: \"P2D\",\n    retentionPeriodDuration: \"PT48H\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nm3db = ovh.CloudProjectDatabase.get_database(service_name=\"XXX\",\n    engine=\"m3db\",\n    id=\"ZZZ\")\nnamespace = ovh.cloudprojectdatabase.M3DbNamespace(\"namespace\",\n    service_name=m3db.service_name,\n    cluster_id=m3db.id,\n    name=\"mynamespace\",\n    resolution=\"P2D\",\n    retention_period_duration=\"PT48H\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var m3db = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        Engine = \"m3db\",\n        Id = \"ZZZ\",\n    });\n\n    var @namespace = new Ovh.CloudProjectDatabase.M3DbNamespace(\"namespace\", new()\n    {\n        ServiceName = m3db.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n        ClusterId = m3db.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n        Name = \"mynamespace\",\n        Resolution = \"P2D\",\n        RetentionPeriodDuration = \"PT48H\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tm3db, err := cloudprojectdatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine:      \"m3db\",\n\t\t\tId:          \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudprojectdatabase.NewM3DbNamespace(ctx, \"namespace\", \u0026cloudprojectdatabase.M3DbNamespaceArgs{\n\t\t\tServiceName:             pulumi.String(m3db.ServiceName),\n\t\t\tClusterId:               pulumi.String(m3db.Id),\n\t\t\tName:                    pulumi.String(\"mynamespace\"),\n\t\t\tResolution:              pulumi.String(\"P2D\"),\n\t\t\tRetentionPeriodDuration: pulumi.String(\"PT48H\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.ovhcloud.pulumi.ovh.CloudProjectDatabase.M3DbNamespace;\nimport com.ovhcloud.pulumi.ovh.CloudProjectDatabase.M3DbNamespaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var m3db = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n            .serviceName(\"XXX\")\n            .engine(\"m3db\")\n            .id(\"ZZZ\")\n            .build());\n\n        var namespace = new M3DbNamespace(\"namespace\", M3DbNamespaceArgs.builder()\n            .serviceName(m3db.serviceName())\n            .clusterId(m3db.id())\n            .name(\"mynamespace\")\n            .resolution(\"P2D\")\n            .retentionPeriodDuration(\"PT48H\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  namespace:\n    type: ovh:CloudProjectDatabase:M3DbNamespace\n    properties:\n      serviceName: ${m3db.serviceName}\n      clusterId: ${m3db.id}\n      name: mynamespace\n      resolution: P2D\n      retentionPeriodDuration: PT48H\nvariables:\n  m3db:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getDatabase\n      arguments:\n        serviceName: XXX\n        engine: m3db\n        id: ZZZ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed M3DB clusters namespaces can be imported using the `service_name`, `cluster_id` and `id` of the namespace, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/m3DbNamespace:M3DbNamespace my_namespace service_name/cluster_id/id\n```\n\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n"},"name":{"type":"string","description":"Name of the namespace. A namespace named \"default\" is mapped with already created default namespace instead of creating a new namespace.\n"},"resolution":{"type":"string","description":"Resolution for an aggregated namespace. Should follow Rfc3339 e.g P2D, PT48H.\n"},"retentionBlockDataExpirationDuration":{"type":"string","description":"Controls how long we wait before expiring stale data. Should follow Rfc3339 e.g P2D, PT48H.\n"},"retentionBlockSizeDuration":{"type":"string","description":"Controls how long to keep a block in memory before flushing to a fileset on disk. Should follow Rfc3339 e.g P2D, PT48H.\n"},"retentionBufferFutureDuration":{"type":"string","description":"Controls how far into the future writes to the namespace will be accepted. Should follow Rfc3339 e.g P2D, PT48H.\n"},"retentionBufferPastDuration":{"type":"string","description":"Controls how far into the past writes to the namespace will be accepted. Should follow Rfc3339 e.g P2D, PT48H.\n"},"retentionPeriodDuration":{"type":"string","description":"Controls the duration of time that M3DB will retain data for the namespace. Should follow Rfc3339 e.g P2D, PT48H.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"snapshotEnabled":{"type":"boolean","description":"Defines whether M3DB will create snapshot files for this namespace.\n"},"type":{"type":"string","description":"Type of namespace.\n"},"writesToCommitLogEnabled":{"type":"boolean","description":"Defines whether M3DB will include writes to this namespace in the commit log.\n"}},"required":["clusterId","name","resolution","retentionBlockSizeDuration","retentionPeriodDuration","serviceName","snapshotEnabled","type","writesToCommitLogEnabled"],"inputProperties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Name of the namespace. A namespace named \"default\" is mapped with already created default namespace instead of creating a new namespace.\n","willReplaceOnChanges":true},"resolution":{"type":"string","description":"Resolution for an aggregated namespace. Should follow Rfc3339 e.g P2D, PT48H.\n"},"retentionBlockDataExpirationDuration":{"type":"string","description":"Controls how long we wait before expiring stale data. Should follow Rfc3339 e.g P2D, PT48H.\n"},"retentionBlockSizeDuration":{"type":"string","description":"Controls how long to keep a block in memory before flushing to a fileset on disk. Should follow Rfc3339 e.g P2D, PT48H.\n","willReplaceOnChanges":true},"retentionBufferFutureDuration":{"type":"string","description":"Controls how far into the future writes to the namespace will be accepted. Should follow Rfc3339 e.g P2D, PT48H.\n"},"retentionBufferPastDuration":{"type":"string","description":"Controls how far into the past writes to the namespace will be accepted. Should follow Rfc3339 e.g P2D, PT48H.\n"},"retentionPeriodDuration":{"type":"string","description":"Controls the duration of time that M3DB will retain data for the namespace. Should follow Rfc3339 e.g P2D, PT48H.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"snapshotEnabled":{"type":"boolean","description":"Defines whether M3DB will create snapshot files for this namespace.\n"},"writesToCommitLogEnabled":{"type":"boolean","description":"Defines whether M3DB will include writes to this namespace in the commit log.\n"}},"requiredInputs":["clusterId","resolution"],"stateInputs":{"description":"Input properties used for looking up and filtering M3DbNamespace resources.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Name of the namespace. A namespace named \"default\" is mapped with already created default namespace instead of creating a new namespace.\n","willReplaceOnChanges":true},"resolution":{"type":"string","description":"Resolution for an aggregated namespace. Should follow Rfc3339 e.g P2D, PT48H.\n"},"retentionBlockDataExpirationDuration":{"type":"string","description":"Controls how long we wait before expiring stale data. Should follow Rfc3339 e.g P2D, PT48H.\n"},"retentionBlockSizeDuration":{"type":"string","description":"Controls how long to keep a block in memory before flushing to a fileset on disk. Should follow Rfc3339 e.g P2D, PT48H.\n","willReplaceOnChanges":true},"retentionBufferFutureDuration":{"type":"string","description":"Controls how far into the future writes to the namespace will be accepted. Should follow Rfc3339 e.g P2D, PT48H.\n"},"retentionBufferPastDuration":{"type":"string","description":"Controls how far into the past writes to the namespace will be accepted. Should follow Rfc3339 e.g P2D, PT48H.\n"},"retentionPeriodDuration":{"type":"string","description":"Controls the duration of time that M3DB will retain data for the namespace. Should follow Rfc3339 e.g P2D, PT48H.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"snapshotEnabled":{"type":"boolean","description":"Defines whether M3DB will create snapshot files for this namespace.\n"},"type":{"type":"string","description":"Type of namespace.\n"},"writesToCommitLogEnabled":{"type":"boolean","description":"Defines whether M3DB will include writes to this namespace in the commit log.\n"}},"type":"object"}},"ovh:CloudProjectDatabase/m3DbUser:M3DbUser":{"description":"\n\n## Import\n\nOVHcloud Managed M3DB clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/m3DbUser:M3DbUser my_user service_name/cluster_id/id\n```\n\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n"},"createdAt":{"type":"string","description":"Date of the creation of the user.\n"},"group":{"type":"string","description":"Group of the user.\n"},"name":{"type":"string","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","description":"(Sensitive) Password of the user.\n","secret":true},"passwordReset":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"status":{"type":"string","description":"Current status of the user.\n"}},"required":["clusterId","createdAt","name","password","serviceName","status"],"inputProperties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"group":{"type":"string","description":"Group of the user.\n"},"name":{"type":"string","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":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering M3DbUser resources.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"createdAt":{"type":"string","description":"Date of the creation of the user.\n"},"group":{"type":"string","description":"Group of the user.\n"},"name":{"type":"string","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":{"type":"string","description":"(Sensitive) Password of the user.\n","secret":true},"passwordReset":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Current status of the user.\n"}},"type":"object"}},"ovh:CloudProjectDatabase/mongoDbPrometheus:MongoDbPrometheus":{"description":"\n\n## Import\n\nOVHcloud Managed MongoDB clusters prometheus can be imported using the `service_name` and `cluster_id`, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/mongoDbPrometheus:MongoDbPrometheus my_prometheus service_name/engine/cluster_id\n```\n\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n"},"password":{"type":"string","description":"(Sensitive) Password of the user.\n","secret":true},"passwordReset":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"srvDomain":{"type":"string","description":"Name of the srv domain endpoint.\n"},"username":{"type":"string","description":"name of the prometheus user.\n"}},"required":["clusterId","password","serviceName","srvDomain","username"],"inputProperties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"passwordReset":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering MongoDbPrometheus resources.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"(Sensitive) Password of the user.\n","secret":true},"passwordReset":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"srvDomain":{"type":"string","description":"Name of the srv domain endpoint.\n"},"username":{"type":"string","description":"name of the prometheus user.\n"}},"type":"object"}},"ovh:CloudProjectDatabase/mongoDbUser:MongoDbUser":{"description":"\n\n## Import\n\nOVHcloud Managed MongoDB clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/mongoDbUser:MongoDbUser my_user service_name/cluster_id/id\n```\n\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n"},"createdAt":{"type":"string","description":"Date of the creation of the user.\n"},"name":{"type":"string","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","description":"(Sensitive) Password of the user.\n","secret":true},"passwordReset":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"roles":{"type":"array","items":{"type":"string"},"description":"Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles. Available roles:\n* `backup@admin`\n* `clusterAdmin@admin`\n* `clusterManager@admin`\n* `clusterMonitor@admin`\n* `dbAdmin@(defined db)`\n* `dbAdminAnyDatabase@admin`\n* `dbOwner@(defined db)`\n* `enableSharding@(defined db)`\n* `hostManager@admin`\n* `read@(defined db)`\n* `readAnyDatabase@admin`\n* `readWrite@(defined db)`\n* `readWriteAnyDatabase@admin`\n* `restore@admin`\n* `root@admin`\n* `userAdmin@(defined db)`\n* `userAdminAnyDatabase@admin`\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"status":{"type":"string","description":"Current status of the user.\n"}},"required":["clusterId","createdAt","name","password","serviceName","status"],"inputProperties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"name":{"type":"string","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":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"roles":{"type":"array","items":{"type":"string"},"description":"Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles. Available roles:\n* `backup@admin`\n* `clusterAdmin@admin`\n* `clusterManager@admin`\n* `clusterMonitor@admin`\n* `dbAdmin@(defined db)`\n* `dbAdminAnyDatabase@admin`\n* `dbOwner@(defined db)`\n* `enableSharding@(defined db)`\n* `hostManager@admin`\n* `read@(defined db)`\n* `readAnyDatabase@admin`\n* `readWrite@(defined db)`\n* `readWriteAnyDatabase@admin`\n* `restore@admin`\n* `root@admin`\n* `userAdmin@(defined db)`\n* `userAdminAnyDatabase@admin`\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering MongoDbUser resources.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"createdAt":{"type":"string","description":"Date of the creation of the user.\n"},"name":{"type":"string","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":{"type":"string","description":"(Sensitive) Password of the user.\n","secret":true},"passwordReset":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"roles":{"type":"array","items":{"type":"string"},"description":"Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles. Available roles:\n* `backup@admin`\n* `clusterAdmin@admin`\n* `clusterManager@admin`\n* `clusterMonitor@admin`\n* `dbAdmin@(defined db)`\n* `dbAdminAnyDatabase@admin`\n* `dbOwner@(defined db)`\n* `enableSharding@(defined db)`\n* `hostManager@admin`\n* `read@(defined db)`\n* `readAnyDatabase@admin`\n* `readWrite@(defined db)`\n* `readWriteAnyDatabase@admin`\n* `restore@admin`\n* `root@admin`\n* `userAdmin@(defined db)`\n* `userAdminAnyDatabase@admin`\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Current status of the user.\n"}},"type":"object"}},"ovh:CloudProjectDatabase/opensearchPattern:OpensearchPattern":{"description":"Creates a pattern for a opensearch cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst opensearch = ovh.CloudProjectDatabase.getDatabase({\n    serviceName: \"XXX\",\n    engine: \"opensearch\",\n    id: \"ZZZ\",\n});\nconst pattern = new ovh.cloudprojectdatabase.OpensearchPattern(\"pattern\", {\n    serviceName: opensearch.then(opensearch =\u003e opensearch.serviceName),\n    clusterId: opensearch.then(opensearch =\u003e opensearch.id),\n    maxIndexCount: 2,\n    pattern: \"logs_*\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nopensearch = ovh.CloudProjectDatabase.get_database(service_name=\"XXX\",\n    engine=\"opensearch\",\n    id=\"ZZZ\")\npattern = ovh.cloudprojectdatabase.OpensearchPattern(\"pattern\",\n    service_name=opensearch.service_name,\n    cluster_id=opensearch.id,\n    max_index_count=2,\n    pattern=\"logs_*\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var opensearch = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        Engine = \"opensearch\",\n        Id = \"ZZZ\",\n    });\n\n    var pattern = new Ovh.CloudProjectDatabase.OpensearchPattern(\"pattern\", new()\n    {\n        ServiceName = opensearch.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n        ClusterId = opensearch.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n        MaxIndexCount = 2,\n        Pattern = \"logs_*\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topensearch, err := cloudprojectdatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine:      \"opensearch\",\n\t\t\tId:          \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudprojectdatabase.NewOpensearchPattern(ctx, \"pattern\", \u0026cloudprojectdatabase.OpensearchPatternArgs{\n\t\t\tServiceName:   pulumi.String(opensearch.ServiceName),\n\t\t\tClusterId:     pulumi.String(opensearch.Id),\n\t\t\tMaxIndexCount: pulumi.Int(2),\n\t\t\tPattern:       pulumi.String(\"logs_*\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.ovhcloud.pulumi.ovh.CloudProjectDatabase.OpensearchPattern;\nimport com.ovhcloud.pulumi.ovh.CloudProjectDatabase.OpensearchPatternArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var opensearch = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n            .serviceName(\"XXX\")\n            .engine(\"opensearch\")\n            .id(\"ZZZ\")\n            .build());\n\n        var pattern = new OpensearchPattern(\"pattern\", OpensearchPatternArgs.builder()\n            .serviceName(opensearch.serviceName())\n            .clusterId(opensearch.id())\n            .maxIndexCount(2)\n            .pattern(\"logs_*\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  pattern:\n    type: ovh:CloudProjectDatabase:OpensearchPattern\n    properties:\n      serviceName: ${opensearch.serviceName}\n      clusterId: ${opensearch.id}\n      maxIndexCount: 2\n      pattern: logs_*\nvariables:\n  opensearch:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getDatabase\n      arguments:\n        serviceName: XXX\n        engine: opensearch\n        id: ZZZ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed opensearch clusters patterns can be imported using the `service_name`, `cluster_id` and `id` of the pattern, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/opensearchPattern:OpensearchPattern my_pattern service_name/cluster_id/id\n```\n\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n"},"maxIndexCount":{"type":"integer","description":"Maximum number of index for this pattern.\n"},"pattern":{"type":"string","description":"Pattern format.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"required":["clusterId","pattern","serviceName"],"inputProperties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"maxIndexCount":{"type":"integer","description":"Maximum number of index for this pattern.\n","willReplaceOnChanges":true},"pattern":{"type":"string","description":"Pattern format.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterId","pattern"],"stateInputs":{"description":"Input properties used for looking up and filtering OpensearchPattern resources.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"maxIndexCount":{"type":"integer","description":"Maximum number of index for this pattern.\n","willReplaceOnChanges":true},"pattern":{"type":"string","description":"Pattern format.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:CloudProjectDatabase/opensearchUser:OpensearchUser":{"description":"\n\n## Import\n\nOVHcloud Managed OpenSearch clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/opensearchUser:OpensearchUser my_user service_name/cluster_id/id\n```\n\n","properties":{"acls":{"type":"array","items":{"$ref":"#/types/ovh:CloudProjectDatabase/OpensearchUserAcl:OpensearchUserAcl"},"description":"Acls of the user.\n"},"clusterId":{"type":"string","description":"Cluster ID.\n"},"createdAt":{"type":"string","description":"Date of the creation of the user.\n"},"name":{"type":"string","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","description":"(Sensitive) Password of the user.\n","secret":true},"passwordReset":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"status":{"type":"string","description":"Current status of the user.\n"}},"required":["clusterId","createdAt","name","password","serviceName","status"],"inputProperties":{"acls":{"type":"array","items":{"$ref":"#/types/ovh:CloudProjectDatabase/OpensearchUserAcl:OpensearchUserAcl"},"description":"Acls of the user.\n"},"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"name":{"type":"string","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":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering OpensearchUser resources.\n","properties":{"acls":{"type":"array","items":{"$ref":"#/types/ovh:CloudProjectDatabase/OpensearchUserAcl:OpensearchUserAcl"},"description":"Acls of the user.\n"},"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"createdAt":{"type":"string","description":"Date of the creation of the user.\n"},"name":{"type":"string","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":{"type":"string","description":"(Sensitive) Password of the user.\n","secret":true},"passwordReset":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Current status of the user.\n"}},"type":"object"}},"ovh:CloudProjectDatabase/postgresSqlConnectionPool:PostgresSqlConnectionPool":{"description":"\n\n## Import\n\nOVHcloud Managed PostgreSQL clusters connection pools can be imported using the `service_name`, `cluster_id` and `id` of the connection pool, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/postgresSqlConnectionPool:PostgresSqlConnectionPool my_connection_pool service_name/cluster_id/id\n```\n\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n"},"databaseId":{"type":"string","description":"Database ID for a database that belongs to the Database cluster given above.\n"},"mode":{"type":"string","description":"Connection mode to the connection pool Available modes:\n"},"name":{"type":"string","description":"Name of the connection pool.\n"},"port":{"type":"integer","description":"Port of the connection pool.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"size":{"type":"integer","description":"Size of the connection pool.\n"},"sslMode":{"type":"string","description":"Ssl connection mode for the pool.\n"},"uri":{"type":"string","description":"Connection URI to the pool.\n"},"userId":{"type":"string","description":"Database user authorized to connect to the pool, if none all the users are allowed.\n"}},"required":["clusterId","databaseId","mode","name","port","serviceName","size","sslMode","uri","userId"],"inputProperties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"databaseId":{"type":"string","description":"Database ID for a database that belongs to the Database cluster given above.\n"},"mode":{"type":"string","description":"Connection mode to the connection pool Available modes:\n"},"name":{"type":"string","description":"Name of the connection pool.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"size":{"type":"integer","description":"Size of the connection pool.\n"},"userId":{"type":"string","description":"Database user authorized to connect to the pool, if none all the users are allowed.\n"}},"requiredInputs":["clusterId","databaseId","mode","size"],"stateInputs":{"description":"Input properties used for looking up and filtering PostgresSqlConnectionPool resources.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"databaseId":{"type":"string","description":"Database ID for a database that belongs to the Database cluster given above.\n"},"mode":{"type":"string","description":"Connection mode to the connection pool Available modes:\n"},"name":{"type":"string","description":"Name of the connection pool.\n","willReplaceOnChanges":true},"port":{"type":"integer","description":"Port of the connection pool.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"size":{"type":"integer","description":"Size of the connection pool.\n"},"sslMode":{"type":"string","description":"Ssl connection mode for the pool.\n"},"uri":{"type":"string","description":"Connection URI to the pool.\n"},"userId":{"type":"string","description":"Database user authorized to connect to the pool, if none all the users are allowed.\n"}},"type":"object"}},"ovh:CloudProjectDatabase/postgresSqlUser:PostgresSqlUser":{"description":"\n\n## Import\n\nOVHcloud Managed PostgreSQL clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/postgresSqlUser:PostgresSqlUser my_user service_name/cluster_id/id\n```\n\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n"},"createdAt":{"type":"string","description":"Date of the creation of the user.\n"},"name":{"type":"string","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","description":"(Sensitive) Password of the user.\n","secret":true},"passwordReset":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"roles":{"type":"array","items":{"type":"string"},"description":"Roles the user belongs to. Available roles:\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"status":{"type":"string","description":"Current status of the user.\n"}},"required":["clusterId","createdAt","name","password","roles","serviceName","status"],"inputProperties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"name":{"type":"string","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":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"roles":{"type":"array","items":{"type":"string"},"description":"Roles the user belongs to. Available roles:\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering PostgresSqlUser resources.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"createdAt":{"type":"string","description":"Date of the creation of the user.\n"},"name":{"type":"string","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":{"type":"string","description":"(Sensitive) Password of the user.\n","secret":true},"passwordReset":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"roles":{"type":"array","items":{"type":"string"},"description":"Roles the user belongs to. Available roles:\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Current status of the user.\n"}},"type":"object"}},"ovh:CloudProjectDatabase/prometheus:Prometheus":{"description":"\n\n## Import\n\nOVHcloud Managed database clusters prometheus can be imported using the `service_name`, `engine` and `cluster_id`, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/prometheus:Prometheus my_prometheus service_name/engine/cluster_id\n```\n\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n"},"engine":{"type":"string","description":"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:\n"},"password":{"type":"string","description":"(Sensitive) Password of the user.\n","secret":true},"passwordReset":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"targets":{"type":"array","items":{"$ref":"#/types/ovh:CloudProjectDatabase/PrometheusTarget:PrometheusTarget"},"description":"List of all endpoint targets.\n* `Host` - Host of the endpoint.\n* `Port` - Connection port for the endpoint.\n"},"username":{"type":"string","description":"name of the prometheus user.\n"}},"required":["clusterId","engine","password","serviceName","targets","username"],"inputProperties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"engine":{"type":"string","description":"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:\n","willReplaceOnChanges":true},"passwordReset":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterId","engine"],"stateInputs":{"description":"Input properties used for looking up and filtering Prometheus resources.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"engine":{"type":"string","description":"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:\n","willReplaceOnChanges":true},"password":{"type":"string","description":"(Sensitive) Password of the user.\n","secret":true},"passwordReset":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"targets":{"type":"array","items":{"$ref":"#/types/ovh:CloudProjectDatabase/PrometheusTarget:PrometheusTarget"},"description":"List of all endpoint targets.\n* `Host` - Host of the endpoint.\n* `Port` - Connection port for the endpoint.\n"},"username":{"type":"string","description":"name of the prometheus user.\n"}},"type":"object"}},"ovh:CloudProjectDatabase/redisUser:RedisUser":{"description":"\n\n## Import\n\nOVHcloud Managed Redis clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/redisUser:RedisUser my_user service_name/cluster_id/id\n```\n\n","properties":{"categories":{"type":"array","items":{"type":"string"},"description":"Categories of the user.\n"},"channels":{"type":"array","items":{"type":"string"},"description":"Channels of the user.\n"},"clusterId":{"type":"string","description":"Cluster ID.\n"},"commands":{"type":"array","items":{"type":"string"},"description":"Commands of the user.\n"},"createdAt":{"type":"string","description":"Date of the creation of the user.\n"},"keys":{"type":"array","items":{"type":"string"},"description":"Keys of the user.\n"},"name":{"type":"string","description":"Name of the user.\n"},"password":{"type":"string","description":"(Sensitive) Password of the user.\n","secret":true},"passwordReset":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"status":{"type":"string","description":"Current status of the user.\n"}},"required":["channels","clusterId","createdAt","name","password","serviceName","status"],"inputProperties":{"categories":{"type":"array","items":{"type":"string"},"description":"Categories of the user.\n"},"channels":{"type":"array","items":{"type":"string"},"description":"Channels of the user.\n"},"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"commands":{"type":"array","items":{"type":"string"},"description":"Commands of the user.\n"},"keys":{"type":"array","items":{"type":"string"},"description":"Keys of the user.\n"},"name":{"type":"string","description":"Name of the user.\n","willReplaceOnChanges":true},"passwordReset":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering RedisUser resources.\n","properties":{"categories":{"type":"array","items":{"type":"string"},"description":"Categories of the user.\n"},"channels":{"type":"array","items":{"type":"string"},"description":"Channels of the user.\n"},"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"commands":{"type":"array","items":{"type":"string"},"description":"Commands of the user.\n"},"createdAt":{"type":"string","description":"Date of the creation of the user.\n"},"keys":{"type":"array","items":{"type":"string"},"description":"Keys of the user.\n"},"name":{"type":"string","description":"Name of the user.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"(Sensitive) Password of the user.\n","secret":true},"passwordReset":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Current status of the user.\n"}},"type":"object"}},"ovh:CloudProjectDatabase/user:User":{"description":"\n\n## Import\n\nOVHcloud Managed database clusters users can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the user, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProjectDatabase/user:User my_user service_name/engine/cluster_id/id\n```\n\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n"},"createdAt":{"type":"string","description":"Date of the creation of the user.\n"},"engine":{"type":"string","description":"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:\n"},"name":{"type":"string","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","description":"(Sensitive) Password of the user.\n","secret":true},"passwordReset":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"status":{"type":"string","description":"Current status of the user.\n"}},"required":["clusterId","createdAt","engine","name","password","serviceName","status"],"inputProperties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"engine":{"type":"string","description":"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:\n","willReplaceOnChanges":true},"name":{"type":"string","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":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterId","engine"],"stateInputs":{"description":"Input properties used for looking up and filtering User resources.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"createdAt":{"type":"string","description":"Date of the creation of the user.\n"},"engine":{"type":"string","description":"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:\n","willReplaceOnChanges":true},"name":{"type":"string","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":{"type":"string","description":"(Sensitive) Password of the user.\n","secret":true},"passwordReset":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Current status of the user.\n"}},"type":"object"}},"ovh:Dbaas/logsCluster:LogsCluster":{"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 ldp = new ovh.dbaas.LogsCluster(\"ldp\", {\n    serviceName: \"ldp-xx-xxxxx\",\n    clusterId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    archiveAllowedNetworks: [\"10.0.0.0/16\"],\n    directInputAllowedNetworks: [\"10.0.0.0/16\"],\n    queryAllowedNetworks: [\"10.0.0.0/16\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nldp = ovh.dbaas.LogsCluster(\"ldp\",\n    service_name=\"ldp-xx-xxxxx\",\n    cluster_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    archive_allowed_networks=[\"10.0.0.0/16\"],\n    direct_input_allowed_networks=[\"10.0.0.0/16\"],\n    query_allowed_networks=[\"10.0.0.0/16\"])\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 ldp = new Ovh.Dbaas.LogsCluster(\"ldp\", new()\n    {\n        ServiceName = \"ldp-xx-xxxxx\",\n        ClusterId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n        ArchiveAllowedNetworks = new[]\n        {\n            \"10.0.0.0/16\",\n        },\n        DirectInputAllowedNetworks = new[]\n        {\n            \"10.0.0.0/16\",\n        },\n        QueryAllowedNetworks = new[]\n        {\n            \"10.0.0.0/16\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/dbaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbaas.NewLogsCluster(ctx, \"ldp\", \u0026dbaas.LogsClusterArgs{\n\t\t\tServiceName: pulumi.String(\"ldp-xx-xxxxx\"),\n\t\t\tClusterId:   pulumi.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"),\n\t\t\tArchiveAllowedNetworks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tDirectInputAllowedNetworks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tQueryAllowedNetworks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Dbaas.LogsCluster;\nimport com.ovhcloud.pulumi.ovh.Dbaas.LogsClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var ldp = new LogsCluster(\"ldp\", LogsClusterArgs.builder()\n            .serviceName(\"ldp-xx-xxxxx\")\n            .clusterId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n            .archiveAllowedNetworks(\"10.0.0.0/16\")\n            .directInputAllowedNetworks(\"10.0.0.0/16\")\n            .queryAllowedNetworks(\"10.0.0.0/16\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ldp:\n    type: ovh:Dbaas:LogsCluster\n    properties:\n      serviceName: ldp-xx-xxxxx\n      clusterId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n      archiveAllowedNetworks:\n        - 10.0.0.0/16\n      directInputAllowedNetworks:\n        - 10.0.0.0/16\n      queryAllowedNetworks:\n        - 10.0.0.0/16\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud DBaaS Log Data Platform clusters can be imported using the `service_name` and `cluster_id` of the cluster, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Dbaas/logsCluster:LogsCluster ldp service_name/cluster_id\n```\n\n","properties":{"archiveAllowedNetworks":{"type":"array","items":{"type":"string"},"description":"List of IP blocks\n"},"clusterId":{"type":"string","description":"Cluster ID. If not provided, the default cluster_id is used\n"},"clusterType":{"type":"string","description":"type of cluster (DEDICATED, PRO or TRIAL)\n"},"dedicatedInputPem":{"type":"string","description":"PEM for dedicated inputs\n","secret":true},"directInputAllowedNetworks":{"type":"array","items":{"type":"string"},"description":"List of IP blocks\n"},"directInputPem":{"type":"string","description":"PEM for direct inputs\n","secret":true},"hostname":{"type":"string","description":"cluster hostname hosting tenant\n"},"initialArchiveAllowedNetworks":{"type":"array","items":{"type":"string"},"description":"Initial allowed networks for ARCHIVE flow type\n","secret":true},"initialDirectInputAllowedNetworks":{"type":"array","items":{"type":"string"},"description":"Initial allowed networks for DIRECT_INPUT flow type\n","secret":true},"initialQueryAllowedNetworks":{"type":"array","items":{"type":"string"},"description":"Initial allowed networks for QUERY flow type\n","secret":true},"isDefault":{"type":"boolean","description":"true if all content generated by given service will be placed on this cluster\n"},"isUnlocked":{"type":"boolean","description":"true if given service can perform advanced operations on cluster\n"},"queryAllowedNetworks":{"type":"array","items":{"type":"string"},"description":"List of IP blocks\n"},"region":{"type":"string","description":"datacenter localization\n"},"serviceName":{"type":"string","description":"The service name\n"}},"required":["clusterType","dedicatedInputPem","directInputPem","hostname","initialArchiveAllowedNetworks","initialDirectInputAllowedNetworks","initialQueryAllowedNetworks","isDefault","isUnlocked","region","serviceName"],"inputProperties":{"archiveAllowedNetworks":{"type":"array","items":{"type":"string"},"description":"List of IP blocks\n"},"clusterId":{"type":"string","description":"Cluster ID. If not provided, the default cluster_id is used\n"},"directInputAllowedNetworks":{"type":"array","items":{"type":"string"},"description":"List of IP blocks\n"},"queryAllowedNetworks":{"type":"array","items":{"type":"string"},"description":"List of IP blocks\n"},"serviceName":{"type":"string","description":"The service name\n","willReplaceOnChanges":true}},"requiredInputs":["serviceName"],"stateInputs":{"description":"Input properties used for looking up and filtering LogsCluster resources.\n","properties":{"archiveAllowedNetworks":{"type":"array","items":{"type":"string"},"description":"List of IP blocks\n"},"clusterId":{"type":"string","description":"Cluster ID. If not provided, the default cluster_id is used\n"},"clusterType":{"type":"string","description":"type of cluster (DEDICATED, PRO or TRIAL)\n"},"dedicatedInputPem":{"type":"string","description":"PEM for dedicated inputs\n","secret":true},"directInputAllowedNetworks":{"type":"array","items":{"type":"string"},"description":"List of IP blocks\n"},"directInputPem":{"type":"string","description":"PEM for direct inputs\n","secret":true},"hostname":{"type":"string","description":"cluster hostname hosting tenant\n"},"initialArchiveAllowedNetworks":{"type":"array","items":{"type":"string"},"description":"Initial allowed networks for ARCHIVE flow type\n","secret":true},"initialDirectInputAllowedNetworks":{"type":"array","items":{"type":"string"},"description":"Initial allowed networks for DIRECT_INPUT flow type\n","secret":true},"initialQueryAllowedNetworks":{"type":"array","items":{"type":"string"},"description":"Initial allowed networks for QUERY flow type\n","secret":true},"isDefault":{"type":"boolean","description":"true if all content generated by given service will be placed on this cluster\n"},"isUnlocked":{"type":"boolean","description":"true if given service can perform advanced operations on cluster\n"},"queryAllowedNetworks":{"type":"array","items":{"type":"string"},"description":"List of IP blocks\n"},"region":{"type":"string","description":"datacenter localization\n"},"serviceName":{"type":"string","description":"The service name\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:Dbaas/logsInput:LogsInput":{"description":"Creates a dbaas logs input.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst logstash = ovh.Dbaas.getLogsInputEngine({\n    name: \"logstash\",\n    version: \"9.x\",\n});\nconst stream = new ovh.dbaas.LogsOutputGraylogStream(\"stream\", {\n    serviceName: \"....\",\n    title: \"my stream\",\n    description: \"my graylog stream\",\n});\nconst input = new ovh.dbaas.LogsInput(\"input\", {\n    serviceName: stream.serviceName,\n    description: stream.description,\n    title: stream.title,\n    engineId: logstash.then(logstash =\u003e logstash.id),\n    streamId: stream.id,\n    allowedNetworks: [\"10.0.0.0/16\"],\n    exposedPort: \"6154\",\n    nbInstance: 2,\n    configuration: {\n        logstash: {\n            inputSection: `  beats {\n    port =\u003e 6514\n    ssl_enabled =\u003e true\n    ssl_certificate =\u003e \"/etc/ssl/private/server.crt\"\n    ssl_key =\u003e \"/etc/ssl/private/server.key\"\n  }\n`,\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlogstash = ovh.Dbaas.get_logs_input_engine(name=\"logstash\",\n    version=\"9.x\")\nstream = ovh.dbaas.LogsOutputGraylogStream(\"stream\",\n    service_name=\"....\",\n    title=\"my stream\",\n    description=\"my graylog stream\")\ninput = ovh.dbaas.LogsInput(\"input\",\n    service_name=stream.service_name,\n    description=stream.description,\n    title=stream.title,\n    engine_id=logstash.id,\n    stream_id=stream.id,\n    allowed_networks=[\"10.0.0.0/16\"],\n    exposed_port=\"6154\",\n    nb_instance=2,\n    configuration={\n        \"logstash\": {\n            \"input_section\": \"\"\"  beats {\n    port =\u003e 6514\n    ssl_enabled =\u003e true\n    ssl_certificate =\u003e \"/etc/ssl/private/server.crt\"\n    ssl_key =\u003e \"/etc/ssl/private/server.key\"\n  }\n\"\"\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var logstash = Ovh.Dbaas.GetLogsInputEngine.Invoke(new()\n    {\n        Name = \"logstash\",\n        Version = \"9.x\",\n    });\n\n    var stream = new Ovh.Dbaas.LogsOutputGraylogStream(\"stream\", new()\n    {\n        ServiceName = \"....\",\n        Title = \"my stream\",\n        Description = \"my graylog stream\",\n    });\n\n    var input = new Ovh.Dbaas.LogsInput(\"input\", new()\n    {\n        ServiceName = stream.ServiceName,\n        Description = stream.Description,\n        Title = stream.Title,\n        EngineId = logstash.Apply(getLogsInputEngineResult =\u003e getLogsInputEngineResult.Id),\n        StreamId = stream.Id,\n        AllowedNetworks = new[]\n        {\n            \"10.0.0.0/16\",\n        },\n        ExposedPort = \"6154\",\n        NbInstance = 2,\n        Configuration = new Ovh.Dbaas.Inputs.LogsInputConfigurationArgs\n        {\n            Logstash = new Ovh.Dbaas.Inputs.LogsInputConfigurationLogstashArgs\n            {\n                InputSection = @\"  beats {\n    port =\u003e 6514\n    ssl_enabled =\u003e true\n    ssl_certificate =\u003e \"\"/etc/ssl/private/server.crt\"\"\n    ssl_key =\u003e \"\"/etc/ssl/private/server.key\"\"\n  }\n\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/dbaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tlogstash, err := dbaas.GetLogsInputEngine(ctx, \u0026dbaas.GetLogsInputEngineArgs{\n\t\t\tName:    pulumi.StringRef(\"logstash\"),\n\t\t\tVersion: pulumi.StringRef(\"9.x\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tstream, err := dbaas.NewLogsOutputGraylogStream(ctx, \"stream\", \u0026dbaas.LogsOutputGraylogStreamArgs{\n\t\t\tServiceName: pulumi.String(\"....\"),\n\t\t\tTitle:       pulumi.String(\"my stream\"),\n\t\t\tDescription: pulumi.String(\"my graylog stream\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dbaas.NewLogsInput(ctx, \"input\", \u0026dbaas.LogsInputArgs{\n\t\t\tServiceName: stream.ServiceName,\n\t\t\tDescription: stream.Description,\n\t\t\tTitle:       stream.Title,\n\t\t\tEngineId:    pulumi.String(logstash.Id),\n\t\t\tStreamId:    stream.ID(),\n\t\t\tAllowedNetworks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tExposedPort: pulumi.String(\"6154\"),\n\t\t\tNbInstance:  pulumi.Int(2),\n\t\t\tConfiguration: \u0026dbaas.LogsInputConfigurationArgs{\n\t\t\t\tLogstash: \u0026dbaas.LogsInputConfigurationLogstashArgs{\n\t\t\t\t\tInputSection: pulumi.String(`  beats {\n    port =\u003e 6514\n    ssl_enabled =\u003e true\n    ssl_certificate =\u003e \"/etc/ssl/private/server.crt\"\n    ssl_key =\u003e \"/etc/ssl/private/server.key\"\n  }\n`),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Dbaas.DbaasFunctions;\nimport com.pulumi.ovh.Dbaas.inputs.GetLogsInputEngineArgs;\nimport com.ovhcloud.pulumi.ovh.Dbaas.LogsOutputGraylogStream;\nimport com.ovhcloud.pulumi.ovh.Dbaas.LogsOutputGraylogStreamArgs;\nimport com.ovhcloud.pulumi.ovh.Dbaas.LogsInput;\nimport com.ovhcloud.pulumi.ovh.Dbaas.LogsInputArgs;\nimport com.pulumi.ovh.Dbaas.inputs.LogsInputConfigurationArgs;\nimport com.pulumi.ovh.Dbaas.inputs.LogsInputConfigurationLogstashArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var logstash = DbaasFunctions.getLogsInputEngine(GetLogsInputEngineArgs.builder()\n            .name(\"logstash\")\n            .version(\"9.x\")\n            .build());\n\n        var stream = new LogsOutputGraylogStream(\"stream\", LogsOutputGraylogStreamArgs.builder()\n            .serviceName(\"....\")\n            .title(\"my stream\")\n            .description(\"my graylog stream\")\n            .build());\n\n        var input = new LogsInput(\"input\", LogsInputArgs.builder()\n            .serviceName(stream.serviceName())\n            .description(stream.description())\n            .title(stream.title())\n            .engineId(logstash.id())\n            .streamId(stream.id())\n            .allowedNetworks(\"10.0.0.0/16\")\n            .exposedPort(\"6154\")\n            .nbInstance(2)\n            .configuration(LogsInputConfigurationArgs.builder()\n                .logstash(LogsInputConfigurationLogstashArgs.builder()\n                    .inputSection(\"\"\"\n  beats {\n    port =\u003e 6514\n    ssl_enabled =\u003e true\n    ssl_certificate =\u003e \"/etc/ssl/private/server.crt\"\n    ssl_key =\u003e \"/etc/ssl/private/server.key\"\n  }\n                    \"\"\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  stream:\n    type: ovh:Dbaas:LogsOutputGraylogStream\n    properties:\n      serviceName: '....'\n      title: my stream\n      description: my graylog stream\n  input:\n    type: ovh:Dbaas:LogsInput\n    properties:\n      serviceName: ${stream.serviceName}\n      description: ${stream.description}\n      title: ${stream.title}\n      engineId: ${logstash.id}\n      streamId: ${stream.id}\n      allowedNetworks:\n        - 10.0.0.0/16\n      exposedPort: '6154'\n      nbInstance: 2\n      configuration:\n        logstash:\n          inputSection: |2\n              beats {\n                port =\u003e 6514\n                ssl_enabled =\u003e true\n                ssl_certificate =\u003e \"/etc/ssl/private/server.crt\"\n                ssl_key =\u003e \"/etc/ssl/private/server.key\"\n              }\nvariables:\n  logstash:\n    fn::invoke:\n      function: ovh:Dbaas:getLogsInputEngine\n      arguments:\n        name: logstash\n        version: 9.x\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nDBaaS Logs input can be imported using the `service_name` and `id` of the input, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Dbaas/logsInput:LogsInput my_input service_name/input_id\n```\n\n","properties":{"allowedNetworks":{"type":"array","items":{"type":"string"},"description":"List of IP blocks\n"},"autoscale":{"type":"boolean","description":"Whether the workload is auto-scaled (mutually exclusive with parameter `nb_instance`)\n"},"configuration":{"$ref":"#/types/ovh:Dbaas/LogsInputConfiguration:LogsInputConfiguration","description":"Input configuration\n"},"createdAt":{"type":"string","description":"Input creation\n"},"currentNbInstance":{"type":"integer","description":"Number of instance running (returned by the API)\n"},"description":{"type":"string","description":"Input description\n"},"engineId":{"type":"string","description":"Input engine ID\n"},"exposedPort":{"type":"string","description":"Port\n"},"hostname":{"type":"string","description":"Hostname\n"},"inputId":{"type":"string","description":"Input ID\n"},"isRestartRequired":{"type":"boolean","description":"Indicate if input need to be restarted\n"},"maxScaleInstance":{"type":"integer","description":"Maximum number of instances in auto-scaled mode\n"},"minScaleInstance":{"type":"integer","description":"Minimum number of instances in auto-scaled mode\n"},"nbInstance":{"type":"integer","description":"Number of instance running (input, mutually exclusive with parameter `autoscale`)\n"},"publicAddress":{"type":"string","description":"Input IP address\n"},"serviceName":{"type":"string","description":"service name\n"},"sslCertificate":{"type":"string","description":"Input SSL certificate\n","secret":true},"status":{"type":"string","description":"init: configuration required, pending: ready to start, running: available\n"},"streamId":{"type":"string","description":"Associated Graylog stream\n"},"title":{"type":"string","description":"Input title\n"},"updatedAt":{"type":"string","description":"Input last update\n"}},"required":["allowedNetworks","configuration","createdAt","currentNbInstance","description","engineId","exposedPort","hostname","inputId","isRestartRequired","publicAddress","serviceName","sslCertificate","status","streamId","title","updatedAt"],"inputProperties":{"allowedNetworks":{"type":"array","items":{"type":"string"},"description":"List of IP blocks\n"},"autoscale":{"type":"boolean","description":"Whether the workload is auto-scaled (mutually exclusive with parameter `nb_instance`)\n"},"configuration":{"$ref":"#/types/ovh:Dbaas/LogsInputConfiguration:LogsInputConfiguration","description":"Input configuration\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Input description\n"},"engineId":{"type":"string","description":"Input engine ID\n"},"exposedPort":{"type":"string","description":"Port\n"},"maxScaleInstance":{"type":"integer","description":"Maximum number of instances in auto-scaled mode\n"},"minScaleInstance":{"type":"integer","description":"Minimum number of instances in auto-scaled mode\n"},"nbInstance":{"type":"integer","description":"Number of instance running (input, mutually exclusive with parameter `autoscale`)\n"},"serviceName":{"type":"string","description":"service name\n","willReplaceOnChanges":true},"streamId":{"type":"string","description":"Associated Graylog stream\n"},"title":{"type":"string","description":"Input title\n"}},"requiredInputs":["configuration","description","engineId","serviceName","streamId","title"],"stateInputs":{"description":"Input properties used for looking up and filtering LogsInput resources.\n","properties":{"allowedNetworks":{"type":"array","items":{"type":"string"},"description":"List of IP blocks\n"},"autoscale":{"type":"boolean","description":"Whether the workload is auto-scaled (mutually exclusive with parameter `nb_instance`)\n"},"configuration":{"$ref":"#/types/ovh:Dbaas/LogsInputConfiguration:LogsInputConfiguration","description":"Input configuration\n","willReplaceOnChanges":true},"createdAt":{"type":"string","description":"Input creation\n"},"currentNbInstance":{"type":"integer","description":"Number of instance running (returned by the API)\n"},"description":{"type":"string","description":"Input description\n"},"engineId":{"type":"string","description":"Input engine ID\n"},"exposedPort":{"type":"string","description":"Port\n"},"hostname":{"type":"string","description":"Hostname\n"},"inputId":{"type":"string","description":"Input ID\n"},"isRestartRequired":{"type":"boolean","description":"Indicate if input need to be restarted\n"},"maxScaleInstance":{"type":"integer","description":"Maximum number of instances in auto-scaled mode\n"},"minScaleInstance":{"type":"integer","description":"Minimum number of instances in auto-scaled mode\n"},"nbInstance":{"type":"integer","description":"Number of instance running (input, mutually exclusive with parameter `autoscale`)\n"},"publicAddress":{"type":"string","description":"Input IP address\n"},"serviceName":{"type":"string","description":"service name\n","willReplaceOnChanges":true},"sslCertificate":{"type":"string","description":"Input SSL certificate\n","secret":true},"status":{"type":"string","description":"init: configuration required, pending: ready to start, running: available\n"},"streamId":{"type":"string","description":"Associated Graylog stream\n"},"title":{"type":"string","description":"Input title\n"},"updatedAt":{"type":"string","description":"Input last update\n"}},"type":"object"}},"ovh:Dbaas/logsOutputGraylogStream:LogsOutputGraylogStream":{"description":"Creates a DBaaS Logs Graylog output stream.\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 stream = new ovh.dbaas.LogsOutputGraylogStream(\"stream\", {\n    serviceName: \"....\",\n    title: \"my stream\",\n    description: \"my graylog stream\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nstream = ovh.dbaas.LogsOutputGraylogStream(\"stream\",\n    service_name=\"....\",\n    title=\"my stream\",\n    description=\"my graylog stream\")\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 stream = new Ovh.Dbaas.LogsOutputGraylogStream(\"stream\", new()\n    {\n        ServiceName = \"....\",\n        Title = \"my stream\",\n        Description = \"my graylog stream\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/dbaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbaas.NewLogsOutputGraylogStream(ctx, \"stream\", \u0026dbaas.LogsOutputGraylogStreamArgs{\n\t\t\tServiceName: pulumi.String(\"....\"),\n\t\t\tTitle:       pulumi.String(\"my stream\"),\n\t\t\tDescription: pulumi.String(\"my graylog stream\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Dbaas.LogsOutputGraylogStream;\nimport com.ovhcloud.pulumi.ovh.Dbaas.LogsOutputGraylogStreamArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var stream = new LogsOutputGraylogStream(\"stream\", LogsOutputGraylogStreamArgs.builder()\n            .serviceName(\"....\")\n            .title(\"my stream\")\n            .description(\"my graylog stream\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  stream:\n    type: ovh:Dbaas:LogsOutputGraylogStream\n    properties:\n      serviceName: '....'\n      title: my stream\n      description: my graylog stream\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nTo define the retention of the stream, you can use the following configuration:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst retention = ovh.Dbaas.getLogsClustersRetention({\n    serviceName: \"ldp-xx-xxxxx\",\n    clusterId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    duration: \"P14D\",\n});\nconst stream = new ovh.dbaas.LogsOutputGraylogStream(\"stream\", {\n    serviceName: \"....\",\n    title: \"my stream\",\n    description: \"my graylog stream\",\n    retentionId: retention.then(retention =\u003e retention.retentionId),\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nretention = ovh.Dbaas.get_logs_clusters_retention(service_name=\"ldp-xx-xxxxx\",\n    cluster_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    duration=\"P14D\")\nstream = ovh.dbaas.LogsOutputGraylogStream(\"stream\",\n    service_name=\"....\",\n    title=\"my stream\",\n    description=\"my graylog stream\",\n    retention_id=retention.retention_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var retention = Ovh.Dbaas.GetLogsClustersRetention.Invoke(new()\n    {\n        ServiceName = \"ldp-xx-xxxxx\",\n        ClusterId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n        Duration = \"P14D\",\n    });\n\n    var stream = new Ovh.Dbaas.LogsOutputGraylogStream(\"stream\", new()\n    {\n        ServiceName = \"....\",\n        Title = \"my stream\",\n        Description = \"my graylog stream\",\n        RetentionId = retention.Apply(getLogsClustersRetentionResult =\u003e getLogsClustersRetentionResult.RetentionId),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/dbaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tretention, err := dbaas.GetLogsClustersRetention(ctx, \u0026dbaas.GetLogsClustersRetentionArgs{\n\t\t\tServiceName: \"ldp-xx-xxxxx\",\n\t\t\tClusterId:   \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n\t\t\tDuration:    pulumi.StringRef(\"P14D\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dbaas.NewLogsOutputGraylogStream(ctx, \"stream\", \u0026dbaas.LogsOutputGraylogStreamArgs{\n\t\t\tServiceName: pulumi.String(\"....\"),\n\t\t\tTitle:       pulumi.String(\"my stream\"),\n\t\t\tDescription: pulumi.String(\"my graylog stream\"),\n\t\t\tRetentionId: pulumi.String(retention.RetentionId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Dbaas.DbaasFunctions;\nimport com.pulumi.ovh.Dbaas.inputs.GetLogsClustersRetentionArgs;\nimport com.ovhcloud.pulumi.ovh.Dbaas.LogsOutputGraylogStream;\nimport com.ovhcloud.pulumi.ovh.Dbaas.LogsOutputGraylogStreamArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 retention = DbaasFunctions.getLogsClustersRetention(GetLogsClustersRetentionArgs.builder()\n            .serviceName(\"ldp-xx-xxxxx\")\n            .clusterId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n            .duration(\"P14D\")\n            .build());\n\n        var stream = new LogsOutputGraylogStream(\"stream\", LogsOutputGraylogStreamArgs.builder()\n            .serviceName(\"....\")\n            .title(\"my stream\")\n            .description(\"my graylog stream\")\n            .retentionId(retention.retentionId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  stream:\n    type: ovh:Dbaas:LogsOutputGraylogStream\n    properties:\n      serviceName: '....'\n      title: my stream\n      description: my graylog stream\n      retentionId: ${retention.retentionId}\nvariables:\n  retention:\n    fn::invoke:\n      function: ovh:Dbaas:getLogsClustersRetention\n      arguments:\n        serviceName: ldp-xx-xxxxx\n        clusterId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n        duration: P14D\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nDBaas logs output Graylog stream can be imported using the `service_name` of the cluster and `stream_id` of the graylog output stream, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Dbaas/logsOutputGraylogStream:LogsOutputGraylogStream ldp ldp-az-12345/9d2f9cf8-9f92-1337-c0f3-48a0213d2c6f\n```\n\n","properties":{"canAlert":{"type":"boolean","description":"Indicates if the current user can create alert on the stream\n"},"coldStorageCompression":{"type":"string","description":"Cold storage compression method. One of \"LZMA\", \"GZIP\", \"DEFLATED\", \"ZSTD\"\n"},"coldStorageContent":{"type":"string","description":"ColdStorage content. One of \"ALL\", \"GLEF\", \"PLAIN\"\n"},"coldStorageEnabled":{"type":"boolean","description":"Is Cold storage enabled?\n"},"coldStorageNotifyEnabled":{"type":"boolean","description":"Notify on new Cold storage archive\n"},"coldStorageRetention":{"type":"integer","description":"Cold storage retention in year\n"},"coldStorageTarget":{"type":"string","description":"ColdStorage destination. One of \"PCA\", \"PCS\"\n"},"createdAt":{"type":"string","description":"Stream creation\n"},"description":{"type":"string","description":"Stream description\n"},"indexingEnabled":{"type":"boolean","description":"Enable ES indexing\n"},"indexingMaxSize":{"type":"integer","description":"Maximum indexing size (in GB)\n"},"indexingNotifyEnabled":{"type":"boolean","description":"If set, notify when size is near 80, 90 or 100 % of the maximum configured setting\n"},"isEditable":{"type":"boolean","description":"Indicates if you are allowed to edit entry\n"},"isShareable":{"type":"boolean","description":"Indicates if you are allowed to share entry\n"},"nbAlertCondition":{"type":"integer","description":"Number of alert condition\n"},"nbArchive":{"type":"integer","description":"Number of coldstored archivesr\n"},"parentStreamId":{"type":"string","description":"Parent stream ID\n"},"pauseIndexingOnMaxSize":{"type":"boolean","description":"If set, pause indexing when maximum size is reached\n"},"retentionId":{"type":"string","description":"Retention ID\n"},"serviceName":{"type":"string","description":"The service name\n"},"streamId":{"type":"string","description":"Stream ID\n"},"title":{"type":"string","description":"Stream name\n"},"updatedAt":{"type":"string","description":"Stream last updater\n"},"webSocketEnabled":{"type":"boolean","description":"Enable Websocket\n"},"writeToken":{"type":"string","description":"Write token of the stream (empty if the caller is not the owner of the stream)\n","secret":true}},"required":["canAlert","coldStorageCompression","coldStorageContent","coldStorageEnabled","coldStorageNotifyEnabled","coldStorageRetention","coldStorageTarget","createdAt","description","indexingEnabled","indexingMaxSize","indexingNotifyEnabled","isEditable","isShareable","nbAlertCondition","nbArchive","pauseIndexingOnMaxSize","retentionId","serviceName","streamId","title","updatedAt","webSocketEnabled","writeToken"],"inputProperties":{"coldStorageCompression":{"type":"string","description":"Cold storage compression method. One of \"LZMA\", \"GZIP\", \"DEFLATED\", \"ZSTD\"\n"},"coldStorageContent":{"type":"string","description":"ColdStorage content. One of \"ALL\", \"GLEF\", \"PLAIN\"\n"},"coldStorageEnabled":{"type":"boolean","description":"Is Cold storage enabled?\n"},"coldStorageNotifyEnabled":{"type":"boolean","description":"Notify on new Cold storage archive\n"},"coldStorageRetention":{"type":"integer","description":"Cold storage retention in year\n"},"coldStorageTarget":{"type":"string","description":"ColdStorage destination. One of \"PCA\", \"PCS\"\n"},"description":{"type":"string","description":"Stream description\n"},"indexingEnabled":{"type":"boolean","description":"Enable ES indexing\n"},"indexingMaxSize":{"type":"integer","description":"Maximum indexing size (in GB)\n"},"indexingNotifyEnabled":{"type":"boolean","description":"If set, notify when size is near 80, 90 or 100 % of the maximum configured setting\n"},"parentStreamId":{"type":"string","description":"Parent stream ID\n","willReplaceOnChanges":true},"pauseIndexingOnMaxSize":{"type":"boolean","description":"If set, pause indexing when maximum size is reached\n"},"retentionId":{"type":"string","description":"Retention ID\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The service name\n"},"title":{"type":"string","description":"Stream name\n"},"webSocketEnabled":{"type":"boolean","description":"Enable Websocket\n"}},"requiredInputs":["description","serviceName","title"],"stateInputs":{"description":"Input properties used for looking up and filtering LogsOutputGraylogStream resources.\n","properties":{"canAlert":{"type":"boolean","description":"Indicates if the current user can create alert on the stream\n"},"coldStorageCompression":{"type":"string","description":"Cold storage compression method. One of \"LZMA\", \"GZIP\", \"DEFLATED\", \"ZSTD\"\n"},"coldStorageContent":{"type":"string","description":"ColdStorage content. One of \"ALL\", \"GLEF\", \"PLAIN\"\n"},"coldStorageEnabled":{"type":"boolean","description":"Is Cold storage enabled?\n"},"coldStorageNotifyEnabled":{"type":"boolean","description":"Notify on new Cold storage archive\n"},"coldStorageRetention":{"type":"integer","description":"Cold storage retention in year\n"},"coldStorageTarget":{"type":"string","description":"ColdStorage destination. One of \"PCA\", \"PCS\"\n"},"createdAt":{"type":"string","description":"Stream creation\n"},"description":{"type":"string","description":"Stream description\n"},"indexingEnabled":{"type":"boolean","description":"Enable ES indexing\n"},"indexingMaxSize":{"type":"integer","description":"Maximum indexing size (in GB)\n"},"indexingNotifyEnabled":{"type":"boolean","description":"If set, notify when size is near 80, 90 or 100 % of the maximum configured setting\n"},"isEditable":{"type":"boolean","description":"Indicates if you are allowed to edit entry\n"},"isShareable":{"type":"boolean","description":"Indicates if you are allowed to share entry\n"},"nbAlertCondition":{"type":"integer","description":"Number of alert condition\n"},"nbArchive":{"type":"integer","description":"Number of coldstored archivesr\n"},"parentStreamId":{"type":"string","description":"Parent stream ID\n","willReplaceOnChanges":true},"pauseIndexingOnMaxSize":{"type":"boolean","description":"If set, pause indexing when maximum size is reached\n"},"retentionId":{"type":"string","description":"Retention ID\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The service name\n"},"streamId":{"type":"string","description":"Stream ID\n"},"title":{"type":"string","description":"Stream name\n"},"updatedAt":{"type":"string","description":"Stream last updater\n"},"webSocketEnabled":{"type":"boolean","description":"Enable Websocket\n"},"writeToken":{"type":"string","description":"Write token of the stream (empty if the caller is not the owner of the stream)\n","secret":true}},"type":"object"}},"ovh:Dbaas/logsOutputOpenSearchAlias:LogsOutputOpenSearchAlias":{"description":"Creates a DBaaS Logs Opensearch output alias.\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 alias = new ovh.dbaas.LogsOutputOpenSearchAlias(\"alias\", {\n    serviceName: \"....\",\n    description: \"my opensearch alias\",\n    suffix: \"alias\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nalias = ovh.dbaas.LogsOutputOpenSearchAlias(\"alias\",\n    service_name=\"....\",\n    description=\"my opensearch alias\",\n    suffix=\"alias\")\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 @alias = new Ovh.Dbaas.LogsOutputOpenSearchAlias(\"alias\", new()\n    {\n        ServiceName = \"....\",\n        Description = \"my opensearch alias\",\n        Suffix = \"alias\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/dbaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbaas.NewLogsOutputOpenSearchAlias(ctx, \"alias\", \u0026dbaas.LogsOutputOpenSearchAliasArgs{\n\t\t\tServiceName: pulumi.String(\"....\"),\n\t\t\tDescription: pulumi.String(\"my opensearch alias\"),\n\t\t\tSuffix:      pulumi.String(\"alias\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Dbaas.LogsOutputOpenSearchAlias;\nimport com.ovhcloud.pulumi.ovh.Dbaas.LogsOutputOpenSearchAliasArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var alias = new LogsOutputOpenSearchAlias(\"alias\", LogsOutputOpenSearchAliasArgs.builder()\n            .serviceName(\"....\")\n            .description(\"my opensearch alias\")\n            .suffix(\"alias\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  alias:\n    type: ovh:Dbaas:LogsOutputOpenSearchAlias\n    properties:\n      serviceName: '....'\n      description: my opensearch alias\n      suffix: alias\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nDBaaS logs Opensearch output alias can be imported using the `service_name` and `alias_id`, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Dbaas/logsOutputOpenSearchAlias:LogsOutputOpenSearchAlias this ldp-XX-NNNNN/7e2301b6-c0fe-41d9-bc58-44fd844f1e3e\n```\n\n","properties":{"aliasId":{"type":"string","description":"Alias Id\n"},"createdAt":{"type":"string","description":"Alias creation\n"},"currentSize":{"type":"integer","description":"Current alias size (in bytes)\n"},"description":{"type":"string","description":"Index description\n"},"indexes":{"type":"array","items":{"type":"string"},"description":"List of attached indexes id\n"},"isEditable":{"type":"boolean","description":"Indicates if you are allowed to edit entry\n"},"name":{"type":"string","description":"Alias name\n"},"nbIndex":{"type":"integer","description":"Number of indices linked\n"},"nbStream":{"type":"integer","description":"Number of streams linked\n"},"serviceName":{"type":"string","description":"The service name\n"},"streams":{"type":"array","items":{"type":"string"},"description":"List of attached streams id\n"},"suffix":{"type":"string","description":"Index suffix\n"},"updatedAt":{"type":"string","description":"Input last update\n"}},"required":["aliasId","createdAt","currentSize","description","indexes","isEditable","name","nbIndex","nbStream","serviceName","streams","suffix","updatedAt"],"inputProperties":{"description":{"type":"string","description":"Index description\n"},"indexes":{"type":"array","items":{"type":"string"},"description":"List of attached indexes id\n"},"nbIndex":{"type":"integer","description":"Number of indices linked\n"},"nbStream":{"type":"integer","description":"Number of streams linked\n"},"serviceName":{"type":"string","description":"The service name\n"},"streams":{"type":"array","items":{"type":"string"},"description":"List of attached streams id\n"},"suffix":{"type":"string","description":"Index suffix\n"}},"requiredInputs":["description","serviceName","suffix"],"stateInputs":{"description":"Input properties used for looking up and filtering LogsOutputOpenSearchAlias resources.\n","properties":{"aliasId":{"type":"string","description":"Alias Id\n"},"createdAt":{"type":"string","description":"Alias creation\n"},"currentSize":{"type":"integer","description":"Current alias size (in bytes)\n"},"description":{"type":"string","description":"Index description\n"},"indexes":{"type":"array","items":{"type":"string"},"description":"List of attached indexes id\n"},"isEditable":{"type":"boolean","description":"Indicates if you are allowed to edit entry\n"},"name":{"type":"string","description":"Alias name\n"},"nbIndex":{"type":"integer","description":"Number of indices linked\n"},"nbStream":{"type":"integer","description":"Number of streams linked\n"},"serviceName":{"type":"string","description":"The service name\n"},"streams":{"type":"array","items":{"type":"string"},"description":"List of attached streams id\n"},"suffix":{"type":"string","description":"Index suffix\n"},"updatedAt":{"type":"string","description":"Input last update\n"}},"type":"object"}},"ovh:Dbaas/logsOutputOpenSearchIndex:LogsOutputOpenSearchIndex":{"description":"Creates a DBaaS Logs Opensearch output index.\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 index = new ovh.dbaas.LogsOutputOpenSearchIndex(\"index\", {\n    serviceName: \"....\",\n    description: \"my opensearch index\",\n    suffix: \"index\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nindex = ovh.dbaas.LogsOutputOpenSearchIndex(\"index\",\n    service_name=\"....\",\n    description=\"my opensearch index\",\n    suffix=\"index\")\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 index = new Ovh.Dbaas.LogsOutputOpenSearchIndex(\"index\", new()\n    {\n        ServiceName = \"....\",\n        Description = \"my opensearch index\",\n        Suffix = \"index\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/dbaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbaas.NewLogsOutputOpenSearchIndex(ctx, \"index\", \u0026dbaas.LogsOutputOpenSearchIndexArgs{\n\t\t\tServiceName: pulumi.String(\"....\"),\n\t\t\tDescription: pulumi.String(\"my opensearch index\"),\n\t\t\tSuffix:      pulumi.String(\"index\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Dbaas.LogsOutputOpenSearchIndex;\nimport com.ovhcloud.pulumi.ovh.Dbaas.LogsOutputOpenSearchIndexArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var index = new LogsOutputOpenSearchIndex(\"index\", LogsOutputOpenSearchIndexArgs.builder()\n            .serviceName(\"....\")\n            .description(\"my opensearch index\")\n            .suffix(\"index\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  index:\n    type: ovh:Dbaas:LogsOutputOpenSearchIndex\n    properties:\n      serviceName: '....'\n      description: my opensearch index\n      suffix: index\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nA DBaaS Logs Opensearch output index can be imported using the `service_name` and `id`, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Dbaas/logsOutputOpenSearchIndex:LogsOutputOpenSearchIndex index service_name/id\n```\n\n","properties":{"alertNotifyEnabled":{"type":"boolean","description":"If set, notify when size is near 80, 90 or 100 % of its maximum capacity\n"},"createdAt":{"type":"string","description":"Index creation\n"},"currentSize":{"type":"integer","description":"Current index size (in bytes)\n"},"description":{"type":"string","description":"Index description\n"},"indexId":{"type":"string","description":"Index ID\n"},"isEditable":{"type":"boolean","description":"Indicates if you are allowed to edit entry\n"},"maxSize":{"type":"integer","description":"Maximum index size (in bytes)\n"},"name":{"type":"string","description":"Index name\n"},"nbShard":{"type":"integer","description":"Number of shards\n"},"serviceName":{"type":"string","description":"The service name\n"},"suffix":{"type":"string","description":"Index suffix\n"},"updatedAt":{"type":"string","description":"Index last update\n"}},"required":["alertNotifyEnabled","createdAt","currentSize","description","indexId","isEditable","maxSize","name","nbShard","serviceName","suffix","updatedAt"],"inputProperties":{"description":{"type":"string","description":"Index description\n"},"nbShard":{"type":"integer","description":"Number of shards\n"},"serviceName":{"type":"string","description":"The service name\n"},"suffix":{"type":"string","description":"Index suffix\n"}},"requiredInputs":["description","nbShard","serviceName","suffix"],"stateInputs":{"description":"Input properties used for looking up and filtering LogsOutputOpenSearchIndex resources.\n","properties":{"alertNotifyEnabled":{"type":"boolean","description":"If set, notify when size is near 80, 90 or 100 % of its maximum capacity\n"},"createdAt":{"type":"string","description":"Index creation\n"},"currentSize":{"type":"integer","description":"Current index size (in bytes)\n"},"description":{"type":"string","description":"Index description\n"},"indexId":{"type":"string","description":"Index ID\n"},"isEditable":{"type":"boolean","description":"Indicates if you are allowed to edit entry\n"},"maxSize":{"type":"integer","description":"Maximum index size (in bytes)\n"},"name":{"type":"string","description":"Index name\n"},"nbShard":{"type":"integer","description":"Number of shards\n"},"serviceName":{"type":"string","description":"The service name\n"},"suffix":{"type":"string","description":"Index suffix\n"},"updatedAt":{"type":"string","description":"Index last update\n"}},"type":"object"}},"ovh:Dbaas/logsRole:LogsRole":{"description":"Reference a DBaaS logs role.\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 ro = new ovh.dbaas.LogsRole(\"ro\", {\n    serviceName: \"ldp-xx-xxxxx\",\n    name: \"Devops - RO\",\n    description: \"Devops - RO\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nro = ovh.dbaas.LogsRole(\"ro\",\n    service_name=\"ldp-xx-xxxxx\",\n    name=\"Devops - RO\",\n    description=\"Devops - RO\")\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 ro = new Ovh.Dbaas.LogsRole(\"ro\", new()\n    {\n        ServiceName = \"ldp-xx-xxxxx\",\n        Name = \"Devops - RO\",\n        Description = \"Devops - RO\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/dbaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbaas.NewLogsRole(ctx, \"ro\", \u0026dbaas.LogsRoleArgs{\n\t\t\tServiceName: pulumi.String(\"ldp-xx-xxxxx\"),\n\t\t\tName:        pulumi.String(\"Devops - RO\"),\n\t\t\tDescription: pulumi.String(\"Devops - RO\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Dbaas.LogsRole;\nimport com.ovhcloud.pulumi.ovh.Dbaas.LogsRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var ro = new LogsRole(\"ro\", LogsRoleArgs.builder()\n            .serviceName(\"ldp-xx-xxxxx\")\n            .name(\"Devops - RO\")\n            .description(\"Devops - RO\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ro:\n    type: ovh:Dbaas:LogsRole\n    properties:\n      serviceName: ldp-xx-xxxxx\n      name: Devops - RO\n      description: Devops - RO\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud DBaaS Log Role can be imported using the `service_name` and `role_id` of the role, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Dbaas/logsRole:LogsRole  ovh_dbaas_logs_role.ro ldp-ra-XX/dc145bc2-eb01-4efe-a802-XXXXXX\n```\n\n","properties":{"createdAt":{"type":"string","description":"Role creation date\n"},"description":{"type":"string","description":"The role description\n"},"name":{"type":"string","description":"The role name\n"},"nbMember":{"type":"integer","description":"number of member for the role\n"},"nbPermission":{"type":"integer","description":"number of configured permission for the role\n"},"roleId":{"type":"string","description":"Role identifier\n"},"serviceName":{"type":"string","description":"The service name\n"},"updatedAt":{"type":"string","description":"Role last update date\n"}},"required":["createdAt","description","name","nbMember","nbPermission","roleId","serviceName","updatedAt"],"inputProperties":{"description":{"type":"string","description":"The role description\n"},"name":{"type":"string","description":"The role name\n"},"serviceName":{"type":"string","description":"The service name\n"}},"requiredInputs":["description","serviceName"],"stateInputs":{"description":"Input properties used for looking up and filtering LogsRole resources.\n","properties":{"createdAt":{"type":"string","description":"Role creation date\n"},"description":{"type":"string","description":"The role description\n"},"name":{"type":"string","description":"The role name\n"},"nbMember":{"type":"integer","description":"number of member for the role\n"},"nbPermission":{"type":"integer","description":"number of configured permission for the role\n"},"roleId":{"type":"string","description":"Role identifier\n"},"serviceName":{"type":"string","description":"The service name\n"},"updatedAt":{"type":"string","description":"Role last update date\n"}},"type":"object"}},"ovh:Dbaas/logsRolePermissionStream:LogsRolePermissionStream":{"description":"Reference a DBaaS logs role stream permission.\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 permission = new ovh.dbaas.LogsRolePermissionStream(\"permission\", {\n    serviceName: \"ldp-xx-xxxxx\",\n    roleId: ro.id,\n    streamId: mystream.streamId,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\npermission = ovh.dbaas.LogsRolePermissionStream(\"permission\",\n    service_name=\"ldp-xx-xxxxx\",\n    role_id=ro[\"id\"],\n    stream_id=mystream[\"streamId\"])\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 permission = new Ovh.Dbaas.LogsRolePermissionStream(\"permission\", new()\n    {\n        ServiceName = \"ldp-xx-xxxxx\",\n        RoleId = ro.Id,\n        StreamId = mystream.StreamId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/dbaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbaas.NewLogsRolePermissionStream(ctx, \"permission\", \u0026dbaas.LogsRolePermissionStreamArgs{\n\t\t\tServiceName: pulumi.String(\"ldp-xx-xxxxx\"),\n\t\t\tRoleId:      pulumi.Any(ro.Id),\n\t\t\tStreamId:    pulumi.Any(mystream.StreamId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Dbaas.LogsRolePermissionStream;\nimport com.ovhcloud.pulumi.ovh.Dbaas.LogsRolePermissionStreamArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var permission = new LogsRolePermissionStream(\"permission\", LogsRolePermissionStreamArgs.builder()\n            .serviceName(\"ldp-xx-xxxxx\")\n            .roleId(ro.id())\n            .streamId(mystream.streamId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  permission:\n    type: ovh:Dbaas:LogsRolePermissionStream\n    properties:\n      serviceName: ldp-xx-xxxxx\n      roleId: ${ro.id}\n      streamId: ${mystream.streamId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nDBaaS logs role stream permission can be imported using the `service_name`, `role_id` and `id` of the permission, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Dbaas/logsRolePermissionStream:LogsRolePermissionStream  ovh_dbaas_logs_role_permission_stream.perm ldp-ra-XX/dc145bc2-eb01-4efe-a802-XXXXXX/e4818fa8-f426-11ef-a1f6-XXXXXXX\n```\n\n","properties":{"permissionId":{"type":"string","description":"Permission ID\n"},"permissionType":{"type":"string","description":"Permission type (e.g., READ_ONLY)\n"},"roleId":{"type":"string","description":"The DBaaS Logs role id\n"},"serviceName":{"type":"string","description":"The service name\n"},"streamId":{"type":"string","description":"The DBaaS Logs Graylog output stream id\n"}},"required":["permissionId","permissionType","roleId","serviceName","streamId"],"inputProperties":{"roleId":{"type":"string","description":"The DBaaS Logs role id\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The service name\n","willReplaceOnChanges":true},"streamId":{"type":"string","description":"The DBaaS Logs Graylog output stream id\n","willReplaceOnChanges":true}},"requiredInputs":["roleId","serviceName","streamId"],"stateInputs":{"description":"Input properties used for looking up and filtering LogsRolePermissionStream resources.\n","properties":{"permissionId":{"type":"string","description":"Permission ID\n"},"permissionType":{"type":"string","description":"Permission type (e.g., READ_ONLY)\n"},"roleId":{"type":"string","description":"The DBaaS Logs role id\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The service name\n","willReplaceOnChanges":true},"streamId":{"type":"string","description":"The DBaaS Logs Graylog output stream id\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:Dbaas/logsToken:LogsToken":{"description":"Allows to manipulate LDP tokens.\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 token = new ovh.dbaas.LogsToken(\"token\", {\n    serviceName: \"ldp-xx-xxxxx\",\n    name: \"ExampleToken\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ntoken = ovh.dbaas.LogsToken(\"token\",\n    service_name=\"ldp-xx-xxxxx\",\n    name=\"ExampleToken\")\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 token = new Ovh.Dbaas.LogsToken(\"token\", new()\n    {\n        ServiceName = \"ldp-xx-xxxxx\",\n        Name = \"ExampleToken\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/dbaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbaas.NewLogsToken(ctx, \"token\", \u0026dbaas.LogsTokenArgs{\n\t\t\tServiceName: pulumi.String(\"ldp-xx-xxxxx\"),\n\t\t\tName:        pulumi.String(\"ExampleToken\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Dbaas.LogsToken;\nimport com.ovhcloud.pulumi.ovh.Dbaas.LogsTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var token = new LogsToken(\"token\", LogsTokenArgs.builder()\n            .serviceName(\"ldp-xx-xxxxx\")\n            .name(\"ExampleToken\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  token:\n    type: ovh:Dbaas:LogsToken\n    properties:\n      serviceName: ldp-xx-xxxxx\n      name: ExampleToken\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nA token can be imported using the `service_name` and `token_id` fields.\n\nUsing the following configuration:\n\nterraform\n\nimport {\n\n  to = ovh_dbaas_logs_token.token\n\n  id = \"\u003cservice_name\u003e/\u003ctoken_id\"\n\n}\n\nYou can then run:\n\nbash\n\n$ pulumi preview -generate-config-out=token.tf\n\n$ pulumi up\n\nThe file `token.tf` will then contain the imported resource's configuration, that can be copied next to the `import` block above. See https://developer.hashicorp.com/terraform/language/import/generating-configuration for more details.\n\n","properties":{"clusterId":{"type":"string","description":"Cluster ID. If not provided, the default cluster_id is used\n"},"createdAt":{"type":"string","description":"Token creation date\n"},"name":{"type":"string","description":"Name of the token\n"},"serviceName":{"type":"string","description":"The LDP service name\n"},"tokenId":{"type":"string","description":"ID of the token\n"},"updatedAt":{"type":"string","description":"Token last update date\n"},"value":{"type":"string","description":"Token value\n","secret":true}},"required":["clusterId","createdAt","name","serviceName","tokenId","updatedAt","value"],"inputProperties":{"clusterId":{"type":"string","description":"Cluster ID. If not provided, the default cluster_id is used\n"},"name":{"type":"string","description":"Name of the token\n"},"serviceName":{"type":"string","description":"The LDP service name\n"}},"requiredInputs":["serviceName"],"stateInputs":{"description":"Input properties used for looking up and filtering LogsToken resources.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID. If not provided, the default cluster_id is used\n"},"createdAt":{"type":"string","description":"Token creation date\n"},"name":{"type":"string","description":"Name of the token\n"},"serviceName":{"type":"string","description":"The LDP service name\n"},"tokenId":{"type":"string","description":"ID of the token\n"},"updatedAt":{"type":"string","description":"Token last update date\n"},"value":{"type":"string","description":"Token value\n","secret":true}},"type":"object"}},"ovh:Dedicated/cephAcl:CephAcl":{"description":"Add a new access ACL for the given network/mask.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst myCeph = ovh.Dedicated.getCeph({\n    serviceName: \"94d423da-0e55-45f2-9812-836460a19939\",\n});\nconst myAcl = new ovh.dedicated.CephAcl(\"my_acl\", {\n    serviceName: myCeph.then(myCeph =\u003e myCeph.id),\n    network: \"1.2.3.4\",\n    netmask: \"255.255.255.255\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_ceph = ovh.Dedicated.get_ceph(service_name=\"94d423da-0e55-45f2-9812-836460a19939\")\nmy_acl = ovh.dedicated.CephAcl(\"my_acl\",\n    service_name=my_ceph.id,\n    network=\"1.2.3.4\",\n    netmask=\"255.255.255.255\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myCeph = Ovh.Dedicated.GetCeph.Invoke(new()\n    {\n        ServiceName = \"94d423da-0e55-45f2-9812-836460a19939\",\n    });\n\n    var myAcl = new Ovh.Dedicated.CephAcl(\"my_acl\", new()\n    {\n        ServiceName = myCeph.Apply(getCephResult =\u003e getCephResult.Id),\n        Network = \"1.2.3.4\",\n        Netmask = \"255.255.255.255\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tmyCeph, err := dedicated.GetCeph(ctx, \u0026dedicated.GetCephArgs{\n\t\t\tServiceName: \"94d423da-0e55-45f2-9812-836460a19939\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dedicated.NewCephAcl(ctx, \"my_acl\", \u0026dedicated.CephAclArgs{\n\t\t\tServiceName: pulumi.String(myCeph.Id),\n\t\t\tNetwork:     pulumi.String(\"1.2.3.4\"),\n\t\t\tNetmask:     pulumi.String(\"255.255.255.255\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Dedicated.DedicatedFunctions;\nimport com.pulumi.ovh.Dedicated.inputs.GetCephArgs;\nimport com.ovhcloud.pulumi.ovh.Dedicated.CephAcl;\nimport com.ovhcloud.pulumi.ovh.Dedicated.CephAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myCeph = DedicatedFunctions.getCeph(GetCephArgs.builder()\n            .serviceName(\"94d423da-0e55-45f2-9812-836460a19939\")\n            .build());\n\n        var myAcl = new CephAcl(\"myAcl\", CephAclArgs.builder()\n            .serviceName(myCeph.id())\n            .network(\"1.2.3.4\")\n            .netmask(\"255.255.255.255\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myAcl:\n    type: ovh:Dedicated:CephAcl\n    name: my_acl\n    properties:\n      serviceName: ${myCeph.id}\n      network: 1.2.3.4\n      netmask: 255.255.255.255\nvariables:\n  myCeph:\n    fn::invoke:\n      function: ovh:Dedicated:getCeph\n      arguments:\n        serviceName: 94d423da-0e55-45f2-9812-836460a19939\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nA dedicated CEPH ACL can be imported using the `service_name` and `acl_id`, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Dedicated/cephAcl:CephAcl my_acl service_name/acl_id\n```\n\n","properties":{"family":{"type":"string","description":"IP family. `IPv4` or `IPv6`\n"},"netmask":{"type":"string","description":"The network mask to apply\n"},"network":{"type":"string","description":"The network IP to authorize\n"},"serviceName":{"type":"string","description":"The internal name of your dedicated CEPH\n"}},"required":["family","netmask","network","serviceName"],"inputProperties":{"netmask":{"type":"string","description":"The network mask to apply\n","willReplaceOnChanges":true},"network":{"type":"string","description":"The network IP to authorize\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The internal name of your dedicated CEPH\n","willReplaceOnChanges":true}},"requiredInputs":["netmask","network","serviceName"],"stateInputs":{"description":"Input properties used for looking up and filtering CephAcl resources.\n","properties":{"family":{"type":"string","description":"IP family. `IPv4` or `IPv6`\n"},"netmask":{"type":"string","description":"The network mask to apply\n","willReplaceOnChanges":true},"network":{"type":"string","description":"The network IP to authorize\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The internal name of your dedicated CEPH\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:Dedicated/nasHAPartition:NasHAPartition":{"description":"Provides a resource for managing partitions on HA-NAS services\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 myPartition = new ovh.dedicated.NasHAPartition(\"my_partition\", {\n    serviceName: \"zpool-12345\",\n    name: \"my-partition\",\n    size: 20,\n    protocol: \"NFS\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_partition = ovh.dedicated.NasHAPartition(\"my_partition\",\n    service_name=\"zpool-12345\",\n    name=\"my-partition\",\n    size=20,\n    protocol=\"NFS\")\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 myPartition = new Ovh.Dedicated.NasHAPartition(\"my_partition\", new()\n    {\n        ServiceName = \"zpool-12345\",\n        Name = \"my-partition\",\n        Size = 20,\n        Protocol = \"NFS\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewNasHAPartition(ctx, \"my_partition\", \u0026dedicated.NasHAPartitionArgs{\n\t\t\tServiceName: pulumi.String(\"zpool-12345\"),\n\t\t\tName:        pulumi.String(\"my-partition\"),\n\t\t\tSize:        pulumi.Int(20),\n\t\t\tProtocol:    pulumi.String(\"NFS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Dedicated.NasHAPartition;\nimport com.ovhcloud.pulumi.ovh.Dedicated.NasHAPartitionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myPartition = new NasHAPartition(\"myPartition\", NasHAPartitionArgs.builder()\n            .serviceName(\"zpool-12345\")\n            .name(\"my-partition\")\n            .size(20)\n            .protocol(\"NFS\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myPartition:\n    type: ovh:Dedicated:NasHAPartition\n    name: my_partition\n    properties:\n      serviceName: zpool-12345\n      name: my-partition\n      size: 20\n      protocol: NFS\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nHA-NAS can be imported using the `{service_name}/{name}`, e.g.\n\n```sh\n$ pulumi import ovh:Dedicated/nasHAPartition:NasHAPartition my-partition zpool-12345/my-partition`\n```\n\n","properties":{"capacity":{"type":"integer","description":"Percentage of partition space used in %\n"},"description":{"type":"string","description":"A brief description of the partition\n"},"name":{"type":"string","description":"name of the partition\n"},"protocol":{"type":"string","description":"one of \"NFS\", \"CIFS\" or \"NFS_CIFS\"\n"},"serviceName":{"type":"string","description":"The internal name of your HA-NAS (it has to be ordered via OVHcloud interface)\n"},"size":{"type":"integer","description":"size of the partition in GB\n"},"usedBySnapshots":{"type":"integer","description":"Percentage of partition space used by snapshots in %\n"}},"required":["capacity","name","protocol","serviceName","size","usedBySnapshots"],"inputProperties":{"description":{"type":"string","description":"A brief description of the partition\n"},"name":{"type":"string","description":"name of the partition\n","willReplaceOnChanges":true},"protocol":{"type":"string","description":"one of \"NFS\", \"CIFS\" or \"NFS_CIFS\"\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The internal name of your HA-NAS (it has to be ordered via OVHcloud interface)\n","willReplaceOnChanges":true},"size":{"type":"integer","description":"size of the partition in GB\n"}},"requiredInputs":["protocol","serviceName","size"],"stateInputs":{"description":"Input properties used for looking up and filtering NasHAPartition resources.\n","properties":{"capacity":{"type":"integer","description":"Percentage of partition space used in %\n"},"description":{"type":"string","description":"A brief description of the partition\n"},"name":{"type":"string","description":"name of the partition\n","willReplaceOnChanges":true},"protocol":{"type":"string","description":"one of \"NFS\", \"CIFS\" or \"NFS_CIFS\"\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The internal name of your HA-NAS (it has to be ordered via OVHcloud interface)\n","willReplaceOnChanges":true},"size":{"type":"integer","description":"size of the partition in GB\n"},"usedBySnapshots":{"type":"integer","description":"Percentage of partition space used by snapshots in %\n"}},"type":"object"}},"ovh:Dedicated/nasHAPartitionAccess:NasHAPartitionAccess":{"description":"Provides a resource for managing access rights to partitions on HA-NAS services\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 myPartition = new ovh.dedicated.NasHAPartitionAccess(\"my_partition\", {\n    serviceName: \"zpool-12345\",\n    partitionName: \"my-partition\",\n    ip: \"123.123.123.123/32\",\n    type: \"readwrite\",\n    aclDescription: \"Description of the ACL\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_partition = ovh.dedicated.NasHAPartitionAccess(\"my_partition\",\n    service_name=\"zpool-12345\",\n    partition_name=\"my-partition\",\n    ip=\"123.123.123.123/32\",\n    type=\"readwrite\",\n    acl_description=\"Description of the ACL\")\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 myPartition = new Ovh.Dedicated.NasHAPartitionAccess(\"my_partition\", new()\n    {\n        ServiceName = \"zpool-12345\",\n        PartitionName = \"my-partition\",\n        Ip = \"123.123.123.123/32\",\n        Type = \"readwrite\",\n        AclDescription = \"Description of the ACL\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewNasHAPartitionAccess(ctx, \"my_partition\", \u0026dedicated.NasHAPartitionAccessArgs{\n\t\t\tServiceName:    pulumi.String(\"zpool-12345\"),\n\t\t\tPartitionName:  pulumi.String(\"my-partition\"),\n\t\t\tIp:             pulumi.String(\"123.123.123.123/32\"),\n\t\t\tType:           pulumi.String(\"readwrite\"),\n\t\t\tAclDescription: pulumi.String(\"Description of the ACL\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Dedicated.NasHAPartitionAccess;\nimport com.ovhcloud.pulumi.ovh.Dedicated.NasHAPartitionAccessArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myPartition = new NasHAPartitionAccess(\"myPartition\", NasHAPartitionAccessArgs.builder()\n            .serviceName(\"zpool-12345\")\n            .partitionName(\"my-partition\")\n            .ip(\"123.123.123.123/32\")\n            .type(\"readwrite\")\n            .aclDescription(\"Description of the ACL\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myPartition:\n    type: ovh:Dedicated:NasHAPartitionAccess\n    name: my_partition\n    properties:\n      serviceName: zpool-12345\n      partitionName: my-partition\n      ip: 123.123.123.123/32\n      type: readwrite\n      aclDescription: Description of the ACL\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nHA-NAS partition access can be imported using the `{service_name}/{partition_name}/{ip}`, e.g.\n\n```sh\n$ pulumi import ovh:Dedicated/nasHAPartitionAccess:NasHAPartitionAccess my-partition zpool-12345/my-partition/123.123.123.123%2F32`\n```\n\n","properties":{"aclDescription":{"type":"string","description":"A brief description of the acl\n"},"ip":{"type":"string","description":"IP block in x.x.x.x/x format\n"},"partitionName":{"type":"string","description":"Name of the partition\n"},"serviceName":{"type":"string","description":"The internal name of your HA-NAS (it has to be ordered via OVHcloud interface)\n"},"type":{"type":"string","description":"One of \"readwrite\", \"readonly\"\n"}},"required":["ip","partitionName","serviceName"],"inputProperties":{"aclDescription":{"type":"string","description":"A brief description of the acl\n","willReplaceOnChanges":true},"ip":{"type":"string","description":"IP block in x.x.x.x/x format\n","willReplaceOnChanges":true},"partitionName":{"type":"string","description":"Name of the partition\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The internal name of your HA-NAS (it has to be ordered via OVHcloud interface)\n","willReplaceOnChanges":true},"type":{"type":"string","description":"One of \"readwrite\", \"readonly\"\n","willReplaceOnChanges":true}},"requiredInputs":["ip","partitionName","serviceName"],"stateInputs":{"description":"Input properties used for looking up and filtering NasHAPartitionAccess resources.\n","properties":{"aclDescription":{"type":"string","description":"A brief description of the acl\n","willReplaceOnChanges":true},"ip":{"type":"string","description":"IP block in x.x.x.x/x format\n","willReplaceOnChanges":true},"partitionName":{"type":"string","description":"Name of the partition\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The internal name of your HA-NAS (it has to be ordered via OVHcloud interface)\n","willReplaceOnChanges":true},"type":{"type":"string","description":"One of \"readwrite\", \"readonly\"\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:Dedicated/nasHAPartitionSnapshot:NasHAPartitionSnapshot":{"description":"Provides a resource for managing **snapshot** to partitions on HA-NAS services\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 myPartition = new ovh.dedicated.NasHAPartitionSnapshot(\"my_partition\", {\n    serviceName: \"zpool-12345\",\n    partitionName: \"my-partition\",\n    type: \"day-3\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_partition = ovh.dedicated.NasHAPartitionSnapshot(\"my_partition\",\n    service_name=\"zpool-12345\",\n    partition_name=\"my-partition\",\n    type=\"day-3\")\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 myPartition = new Ovh.Dedicated.NasHAPartitionSnapshot(\"my_partition\", new()\n    {\n        ServiceName = \"zpool-12345\",\n        PartitionName = \"my-partition\",\n        Type = \"day-3\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewNasHAPartitionSnapshot(ctx, \"my_partition\", \u0026dedicated.NasHAPartitionSnapshotArgs{\n\t\t\tServiceName:   pulumi.String(\"zpool-12345\"),\n\t\t\tPartitionName: pulumi.String(\"my-partition\"),\n\t\t\tType:          pulumi.String(\"day-3\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Dedicated.NasHAPartitionSnapshot;\nimport com.ovhcloud.pulumi.ovh.Dedicated.NasHAPartitionSnapshotArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myPartition = new NasHAPartitionSnapshot(\"myPartition\", NasHAPartitionSnapshotArgs.builder()\n            .serviceName(\"zpool-12345\")\n            .partitionName(\"my-partition\")\n            .type(\"day-3\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myPartition:\n    type: ovh:Dedicated:NasHAPartitionSnapshot\n    name: my_partition\n    properties:\n      serviceName: zpool-12345\n      partitionName: my-partition\n      type: day-3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nHA-NAS partition snapshot can be imported using the `{service_name}/{partition_name}/{type}`, e.g.\n\n```sh\n$ pulumi import ovh:Dedicated/nasHAPartitionSnapshot:NasHAPartitionSnapshot my-partition zpool-12345/my-partition/day-3`\n```\n\n","properties":{"partitionName":{"type":"string","description":"name of the partition\n"},"serviceName":{"type":"string","description":"The internal name of your HA-NAS (it has to be ordered via OVHcloud interface)\n"},"type":{"type":"string","description":"Snapshot interval, allowed : day-1, day-2, day-3, day-7, hour-1, hour-6\n"}},"required":["partitionName","serviceName","type"],"inputProperties":{"partitionName":{"type":"string","description":"name of the partition\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The internal name of your HA-NAS (it has to be ordered via OVHcloud interface)\n","willReplaceOnChanges":true},"type":{"type":"string","description":"Snapshot interval, allowed : day-1, day-2, day-3, day-7, hour-1, hour-6\n","willReplaceOnChanges":true}},"requiredInputs":["partitionName","serviceName","type"],"stateInputs":{"description":"Input properties used for looking up and filtering NasHAPartitionSnapshot resources.\n","properties":{"partitionName":{"type":"string","description":"name of the partition\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The internal name of your HA-NAS (it has to be ordered via OVHcloud interface)\n","willReplaceOnChanges":true},"type":{"type":"string","description":"Snapshot interval, allowed : day-1, day-2, day-3, day-7, hour-1, hour-6\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:Dedicated/server:Server":{"description":"\n\n## Import\n\nDedicated servers can be imported using the `service_name`. Using the following configuration:\n\nterraform\n\nimport {\n\n  to = ovh_dedicated_server.server\n\n  id = \"\u003cservice name\u003e\"\n\n}\n\nYou can then run:\n\nbash\n\npulumi preview -generate-config-out=dedicated.tf\n\npulumi up\n\nThe file `dedicated.tf` will then contain the imported resource's configuration, that can be copied next to the `import` block above. See https://developer.hashicorp.com/terraform/language/import/generating-configuration for more details.\n\n","properties":{"availabilityZone":{"type":"string","description":"Dedicated AZ localisation\n"},"bootId":{"type":"number","description":"Boot id of the server\n"},"bootScript":{"type":"string","description":"Boot script of the server\n"},"commercialRange":{"type":"string","description":"Dedicated server commercial range\n"},"customizations":{"$ref":"#/types/ovh:Dedicated/ServerCustomizations:ServerCustomizations","description":"OS reinstallation customizations\n"},"datacenter":{"type":"string","description":"Dedicated datacenter localisation (bhs1,bhs2,...)\n"},"displayName":{"type":"string","description":"Resource display name\n"},"efiBootloaderPath":{"type":"string","description":"Path of the EFI bootloader\n"},"iam":{"$ref":"#/types/ovh:Dedicated/ServerIam:ServerIam","description":"IAM resource information\n"},"ip":{"type":"string","description":"Dedicated server ip (IPv4)\n"},"keepServiceAfterDestroy":{"type":"boolean","description":"Whether we should avoid terminating the service when destroying the resource\n"},"linkSpeed":{"type":"number","description":"Link speed of the server\n"},"monitoring":{"type":"boolean","description":"Icmp monitoring state\n"},"name":{"type":"string","description":"Dedicated server name\n"},"newUpgradeSystem":{"type":"boolean"},"noIntervention":{"type":"boolean","description":"Prevent datacenter intervention\n"},"order":{"$ref":"#/types/ovh:Dedicated/ServerOrder:ServerOrder","description":"Details about an Order\n"},"os":{"type":"string","description":"Operating system\n"},"ovhSubsidiary":{"type":"string","description":"OVH subsidiaries\n"},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:Dedicated/ServerPlanOption:ServerPlanOption"}},"plans":{"type":"array","items":{"$ref":"#/types/ovh:Dedicated/ServerPlan:ServerPlan"}},"powerState":{"type":"string","description":"Power state of the server (poweron, poweroff)\n"},"preventInstallOnCreate":{"type":"boolean","description":"Defines whether the server should not be reinstalled after creating the resource\n"},"preventInstallOnImport":{"type":"boolean","description":"Defines whether the server should not be reinstalled when importing the resource\n"},"professionalUse":{"type":"boolean","description":"Does this server have professional use option\n"},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"Arbitrary properties to pass to cloud-init's config drive datasource\n","deprecationMessage":"Attribute 'properties' is deprecated and has no effect"},"rack":{"type":"string","description":"Rack id of the server\n"},"range":{"type":"string","description":"Range of the dedicated server to order. Can be `standard` or `eco`. Defaults to `standard`\n"},"region":{"type":"string","description":"Dedicated region localisation\n"},"rescueMail":{"type":"string","description":"Rescue mail of the server\n"},"rescueSshKey":{"type":"string","description":"Public SSH Key used in the rescue mode\n"},"reverse":{"type":"string","description":"Dedicated server reverse\n"},"rootDevice":{"type":"string","description":"Root device of the server\n"},"runActionsBeforeDestroys":{"type":"array","items":{"type":"string"},"description":"Actions to run before destroying the resource\n"},"serverId":{"type":"number","description":"Server id\n"},"serviceName":{"type":"string","description":"The service_name of your dedicated server\n"},"state":{"type":"string","description":"All states a Dedicated can be in (error, hacked, hackedBlocked, ok)\n"},"storages":{"type":"array","items":{"$ref":"#/types/ovh:Dedicated/ServerStorage:ServerStorage"},"description":"OS reinstallation storage configurations\n"},"supportLevel":{"type":"string","description":"Dedicated server support level (critical, fastpath, gs, pro)\n"}},"required":["availabilityZone","bootId","bootScript","commercialRange","datacenter","efiBootloaderPath","iam","ip","linkSpeed","monitoring","name","newUpgradeSystem","noIntervention","order","os","powerState","professionalUse","rack","region","reverse","rootDevice","serverId","serviceName","state","supportLevel"],"inputProperties":{"bootId":{"type":"number","description":"Boot id of the server\n"},"bootScript":{"type":"string","description":"Boot script of the server\n"},"customizations":{"$ref":"#/types/ovh:Dedicated/ServerCustomizations:ServerCustomizations","description":"OS reinstallation customizations\n"},"displayName":{"type":"string","description":"Resource display name\n"},"efiBootloaderPath":{"type":"string","description":"Path of the EFI bootloader\n"},"keepServiceAfterDestroy":{"type":"boolean","description":"Whether we should avoid terminating the service when destroying the resource\n"},"monitoring":{"type":"boolean","description":"Icmp monitoring state\n"},"noIntervention":{"type":"boolean","description":"Prevent datacenter intervention\n"},"os":{"type":"string","description":"Operating system\n"},"ovhSubsidiary":{"type":"string","description":"OVH subsidiaries\n"},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:Dedicated/ServerPlanOption:ServerPlanOption"}},"plans":{"type":"array","items":{"$ref":"#/types/ovh:Dedicated/ServerPlan:ServerPlan"}},"preventInstallOnCreate":{"type":"boolean","description":"Defines whether the server should not be reinstalled after creating the resource\n"},"preventInstallOnImport":{"type":"boolean","description":"Defines whether the server should not be reinstalled when importing the resource\n"},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"Arbitrary properties to pass to cloud-init's config drive datasource\n","deprecationMessage":"Attribute 'properties' is deprecated and has no effect"},"range":{"type":"string","description":"Range of the dedicated server to order. Can be `standard` or `eco`. Defaults to `standard`\n"},"rescueMail":{"type":"string","description":"Rescue mail of the server\n"},"rescueSshKey":{"type":"string","description":"Public SSH Key used in the rescue mode\n"},"rootDevice":{"type":"string","description":"Root device of the server\n"},"runActionsBeforeDestroys":{"type":"array","items":{"type":"string"},"description":"Actions to run before destroying the resource\n"},"serviceName":{"type":"string","description":"The service_name of your dedicated server\n"},"state":{"type":"string","description":"All states a Dedicated can be in (error, hacked, hackedBlocked, ok)\n"},"storages":{"type":"array","items":{"$ref":"#/types/ovh:Dedicated/ServerStorage:ServerStorage"},"description":"OS reinstallation storage configurations\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Server resources.\n","properties":{"availabilityZone":{"type":"string","description":"Dedicated AZ localisation\n"},"bootId":{"type":"number","description":"Boot id of the server\n"},"bootScript":{"type":"string","description":"Boot script of the server\n"},"commercialRange":{"type":"string","description":"Dedicated server commercial range\n"},"customizations":{"$ref":"#/types/ovh:Dedicated/ServerCustomizations:ServerCustomizations","description":"OS reinstallation customizations\n"},"datacenter":{"type":"string","description":"Dedicated datacenter localisation (bhs1,bhs2,...)\n"},"displayName":{"type":"string","description":"Resource display name\n"},"efiBootloaderPath":{"type":"string","description":"Path of the EFI bootloader\n"},"iam":{"$ref":"#/types/ovh:Dedicated/ServerIam:ServerIam","description":"IAM resource information\n"},"ip":{"type":"string","description":"Dedicated server ip (IPv4)\n"},"keepServiceAfterDestroy":{"type":"boolean","description":"Whether we should avoid terminating the service when destroying the resource\n"},"linkSpeed":{"type":"number","description":"Link speed of the server\n"},"monitoring":{"type":"boolean","description":"Icmp monitoring state\n"},"name":{"type":"string","description":"Dedicated server name\n"},"newUpgradeSystem":{"type":"boolean"},"noIntervention":{"type":"boolean","description":"Prevent datacenter intervention\n"},"order":{"$ref":"#/types/ovh:Dedicated/ServerOrder:ServerOrder","description":"Details about an Order\n"},"os":{"type":"string","description":"Operating system\n"},"ovhSubsidiary":{"type":"string","description":"OVH subsidiaries\n"},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:Dedicated/ServerPlanOption:ServerPlanOption"}},"plans":{"type":"array","items":{"$ref":"#/types/ovh:Dedicated/ServerPlan:ServerPlan"}},"powerState":{"type":"string","description":"Power state of the server (poweron, poweroff)\n"},"preventInstallOnCreate":{"type":"boolean","description":"Defines whether the server should not be reinstalled after creating the resource\n"},"preventInstallOnImport":{"type":"boolean","description":"Defines whether the server should not be reinstalled when importing the resource\n"},"professionalUse":{"type":"boolean","description":"Does this server have professional use option\n"},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"Arbitrary properties to pass to cloud-init's config drive datasource\n","deprecationMessage":"Attribute 'properties' is deprecated and has no effect"},"rack":{"type":"string","description":"Rack id of the server\n"},"range":{"type":"string","description":"Range of the dedicated server to order. Can be `standard` or `eco`. Defaults to `standard`\n"},"region":{"type":"string","description":"Dedicated region localisation\n"},"rescueMail":{"type":"string","description":"Rescue mail of the server\n"},"rescueSshKey":{"type":"string","description":"Public SSH Key used in the rescue mode\n"},"reverse":{"type":"string","description":"Dedicated server reverse\n"},"rootDevice":{"type":"string","description":"Root device of the server\n"},"runActionsBeforeDestroys":{"type":"array","items":{"type":"string"},"description":"Actions to run before destroying the resource\n"},"serverId":{"type":"number","description":"Server id\n"},"serviceName":{"type":"string","description":"The service_name of your dedicated server\n"},"state":{"type":"string","description":"All states a Dedicated can be in (error, hacked, hackedBlocked, ok)\n"},"storages":{"type":"array","items":{"$ref":"#/types/ovh:Dedicated/ServerStorage:ServerStorage"},"description":"OS reinstallation storage configurations\n"},"supportLevel":{"type":"string","description":"Dedicated server support level (critical, fastpath, gs, pro)\n"}},"type":"object"}},"ovh:Dedicated/serverNetworking:ServerNetworking":{"properties":{"description":{"type":"string","description":"Operation description\n"},"interfaces":{"type":"array","items":{"$ref":"#/types/ovh:Dedicated/ServerNetworkingInterface:ServerNetworkingInterface"},"description":"Interface or interfaces aggregation.\n"},"serviceName":{"type":"string","description":"The internal name of your dedicated server.\n"},"status":{"type":"string","description":"Operation status\n"}},"required":["description","interfaces","serviceName","status"],"inputProperties":{"interfaces":{"type":"array","items":{"$ref":"#/types/ovh:Dedicated/ServerNetworkingInterface:ServerNetworkingInterface"},"description":"Interface or interfaces aggregation.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The internal name of your dedicated server.\n","willReplaceOnChanges":true}},"requiredInputs":["interfaces","serviceName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServerNetworking resources.\n","properties":{"description":{"type":"string","description":"Operation description\n"},"interfaces":{"type":"array","items":{"$ref":"#/types/ovh:Dedicated/ServerNetworkingInterface:ServerNetworkingInterface"},"description":"Interface or interfaces aggregation.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The internal name of your dedicated server.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Operation status\n"}},"type":"object"}},"ovh:Dedicated/serverRebootTask:ServerRebootTask":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst rescue = ovh.Dedicated.getServerBoots({\n    serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n    bootType: \"rescue\",\n    kernel: \"rescue64-pro\",\n});\nconst serverOnRescue = new ovh.dedicated.ServerUpdate(\"server_on_rescue\", {\n    serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n    bootId: rescue.then(rescue =\u003e rescue.results?.[0]),\n    monitoring: true,\n    state: \"ok\",\n});\nconst serverReboot = new ovh.dedicated.ServerRebootTask(\"server_reboot\", {\n    serviceName: rescue.then(rescue =\u003e rescue.serviceName),\n    keepers: [serverOnRescue.bootId],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nrescue = ovh.Dedicated.get_server_boots(service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\",\n    boot_type=\"rescue\",\n    kernel=\"rescue64-pro\")\nserver_on_rescue = ovh.dedicated.ServerUpdate(\"server_on_rescue\",\n    service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\",\n    boot_id=rescue.results[0],\n    monitoring=True,\n    state=\"ok\")\nserver_reboot = ovh.dedicated.ServerRebootTask(\"server_reboot\",\n    service_name=rescue.service_name,\n    keepers=[server_on_rescue.boot_id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var rescue = Ovh.Dedicated.GetServerBoots.Invoke(new()\n    {\n        ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n        BootType = \"rescue\",\n        Kernel = \"rescue64-pro\",\n    });\n\n    var serverOnRescue = new Ovh.Dedicated.ServerUpdate(\"server_on_rescue\", new()\n    {\n        ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n        BootId = rescue.Apply(getServerBootsResult =\u003e getServerBootsResult.Results[0]),\n        Monitoring = true,\n        State = \"ok\",\n    });\n\n    var serverReboot = new Ovh.Dedicated.ServerRebootTask(\"server_reboot\", new()\n    {\n        ServiceName = rescue.Apply(getServerBootsResult =\u003e getServerBootsResult.ServiceName),\n        Keepers = new[]\n        {\n            serverOnRescue.BootId,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/dedicated\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trescue, err := dedicated.GetServerBoots(ctx, \u0026dedicated.GetServerBootsArgs{\n\t\t\tServiceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n\t\t\tBootType:    pulumi.StringRef(\"rescue\"),\n\t\t\tKernel:      pulumi.StringRef(\"rescue64-pro\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tserverOnRescue, err := dedicated.NewServerUpdate(ctx, \"server_on_rescue\", \u0026dedicated.ServerUpdateArgs{\n\t\t\tServiceName: pulumi.String(\"nsxxxxxxx.ip-xx-xx-xx.eu\"),\n\t\t\tBootId:      pulumi.Int(rescue.Results[0]),\n\t\t\tMonitoring:  pulumi.Bool(true),\n\t\t\tState:       pulumi.String(\"ok\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dedicated.NewServerRebootTask(ctx, \"server_reboot\", \u0026dedicated.ServerRebootTaskArgs{\n\t\t\tServiceName: pulumi.String(rescue.ServiceName),\n\t\t\tKeepers: pulumi.StringArray{\n\t\t\t\tserverOnRescue.BootId,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Dedicated.DedicatedFunctions;\nimport com.pulumi.ovh.Dedicated.inputs.GetServerBootsArgs;\nimport com.ovhcloud.pulumi.ovh.Dedicated.ServerUpdate;\nimport com.ovhcloud.pulumi.ovh.Dedicated.ServerUpdateArgs;\nimport com.ovhcloud.pulumi.ovh.Dedicated.ServerRebootTask;\nimport com.ovhcloud.pulumi.ovh.Dedicated.ServerRebootTaskArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var rescue = DedicatedFunctions.getServerBoots(GetServerBootsArgs.builder()\n            .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n            .bootType(\"rescue\")\n            .kernel(\"rescue64-pro\")\n            .build());\n\n        var serverOnRescue = new ServerUpdate(\"serverOnRescue\", ServerUpdateArgs.builder()\n            .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n            .bootId(rescue.results()[0])\n            .monitoring(true)\n            .state(\"ok\")\n            .build());\n\n        var serverReboot = new ServerRebootTask(\"serverReboot\", ServerRebootTaskArgs.builder()\n            .serviceName(rescue.serviceName())\n            .keepers(serverOnRescue.bootId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  serverOnRescue:\n    type: ovh:Dedicated:ServerUpdate\n    name: server_on_rescue\n    properties:\n      serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n      bootId: ${rescue.results[0]}\n      monitoring: true\n      state: ok\n  serverReboot:\n    type: ovh:Dedicated:ServerRebootTask\n    name: server_reboot\n    properties:\n      serviceName: ${rescue.serviceName}\n      keepers:\n        - ${serverOnRescue.bootId}\nvariables:\n  rescue:\n    fn::invoke:\n      function: ovh:Dedicated:getServerBoots\n      arguments:\n        serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n        bootType: rescue\n        kernel: rescue64-pro\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"comment":{"type":"string","description":"Details of this task. (should be `Reboot asked`)\n"},"doneDate":{"type":"string","description":"Completion date in RFC3339 format.\n"},"function":{"type":"string","description":"Function name (should be `hardReboot`).\n"},"keepers":{"type":"array","items":{"type":"string"},"description":"List of values tracked to trigger reboot, used also to form implicit dependencies.\n"},"lastUpdate":{"type":"string","description":"Last update in RFC3339 format.\n"},"serviceName":{"type":"string","description":"The service_name of your dedicated server.\n"},"startDate":{"type":"string","description":"Task creation date in RFC3339 format.\n"},"status":{"type":"string","description":"Task status (should be `done`)\n"}},"required":["comment","doneDate","function","keepers","lastUpdate","serviceName","startDate","status"],"inputProperties":{"keepers":{"type":"array","items":{"type":"string"},"description":"List of values tracked to trigger reboot, used also to form implicit dependencies.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The service_name of your dedicated server.\n","willReplaceOnChanges":true}},"requiredInputs":["keepers","serviceName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServerRebootTask resources.\n","properties":{"comment":{"type":"string","description":"Details of this task. (should be `Reboot asked`)\n"},"doneDate":{"type":"string","description":"Completion date in RFC3339 format.\n"},"function":{"type":"string","description":"Function name (should be `hardReboot`).\n"},"keepers":{"type":"array","items":{"type":"string"},"description":"List of values tracked to trigger reboot, used also to form implicit dependencies.\n","willReplaceOnChanges":true},"lastUpdate":{"type":"string","description":"Last update in RFC3339 format.\n"},"serviceName":{"type":"string","description":"The service_name of your dedicated server.\n","willReplaceOnChanges":true},"startDate":{"type":"string","description":"Task creation date in RFC3339 format.\n"},"status":{"type":"string","description":"Task status (should be `done`)\n"}},"type":"object"}},"ovh:Dedicated/serverReinstallTask:ServerReinstallTask":{"properties":{"bootidOnDestroy":{"type":"integer","description":"If set, reboot the server on the specified boot id during destroy phase.\n"},"comment":{"type":"string","description":"Details of this task. (should be `Install asked`)\n"},"customizations":{"$ref":"#/types/ovh:Dedicated/ServerReinstallTaskCustomizations:ServerReinstallTaskCustomizations","description":"Available attributes and their types are OS-dependent. Example: `hostname`.\n\n\u003e **WARNING** Some customizations may be required on some Operating Systems. [Check how to list the available and required customization(s) for your operating system](https://help.ovhcloud.com/csm/en-dedicated-servers-api-os-installation?id=kb_article_view\u0026sysparm_article=KB0061951#os-inputs) (do not forget to adapt camel case customization name to snake case parameter).\n"},"doneDate":{"type":"string","description":"Completion date in RFC3339 format.\n"},"function":{"type":"string","description":"Function name (should be `hardInstall`).\n"},"lastUpdate":{"type":"string","description":"Last update\n"},"os":{"type":"string","description":"Operating system to install.\n"},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"Attribute 'properties' is deprecated and has no effect.\n"},"serviceName":{"type":"string","description":"The service_name of your dedicated server.\n"},"startDate":{"type":"string","description":"Task creation date in RFC3339 format.\n"},"status":{"type":"string","description":"Task status (should be `done`)\n"},"storages":{"type":"array","items":{"$ref":"#/types/ovh:Dedicated/ServerReinstallTaskStorage:ServerReinstallTaskStorage"},"description":"OS reinstallation storage configurations. [More details about disks, hardware/software RAID and partitioning configuration](https://help.ovhcloud.com/csm/en-dedicated-servers-api-partitioning?id=kb_article_view\u0026sysparm_article=KB0043882) (do not forget to adapt camel case parameters to snake case parameters).\n"}},"required":["comment","doneDate","function","lastUpdate","os","serviceName","startDate","status"],"inputProperties":{"bootidOnDestroy":{"type":"integer","description":"If set, reboot the server on the specified boot id during destroy phase.\n"},"customizations":{"$ref":"#/types/ovh:Dedicated/ServerReinstallTaskCustomizations:ServerReinstallTaskCustomizations","description":"Available attributes and their types are OS-dependent. Example: `hostname`.\n\n\u003e **WARNING** Some customizations may be required on some Operating Systems. [Check how to list the available and required customization(s) for your operating system](https://help.ovhcloud.com/csm/en-dedicated-servers-api-os-installation?id=kb_article_view\u0026sysparm_article=KB0061951#os-inputs) (do not forget to adapt camel case customization name to snake case parameter).\n","willReplaceOnChanges":true},"os":{"type":"string","description":"Operating system to install.\n","willReplaceOnChanges":true},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"Attribute 'properties' is deprecated and has no effect.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The service_name of your dedicated server.\n","willReplaceOnChanges":true},"storages":{"type":"array","items":{"$ref":"#/types/ovh:Dedicated/ServerReinstallTaskStorage:ServerReinstallTaskStorage"},"description":"OS reinstallation storage configurations. [More details about disks, hardware/software RAID and partitioning configuration](https://help.ovhcloud.com/csm/en-dedicated-servers-api-partitioning?id=kb_article_view\u0026sysparm_article=KB0043882) (do not forget to adapt camel case parameters to snake case parameters).\n","willReplaceOnChanges":true}},"requiredInputs":["os","serviceName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServerReinstallTask resources.\n","properties":{"bootidOnDestroy":{"type":"integer","description":"If set, reboot the server on the specified boot id during destroy phase.\n"},"comment":{"type":"string","description":"Details of this task. (should be `Install asked`)\n"},"customizations":{"$ref":"#/types/ovh:Dedicated/ServerReinstallTaskCustomizations:ServerReinstallTaskCustomizations","description":"Available attributes and their types are OS-dependent. Example: `hostname`.\n\n\u003e **WARNING** Some customizations may be required on some Operating Systems. [Check how to list the available and required customization(s) for your operating system](https://help.ovhcloud.com/csm/en-dedicated-servers-api-os-installation?id=kb_article_view\u0026sysparm_article=KB0061951#os-inputs) (do not forget to adapt camel case customization name to snake case parameter).\n","willReplaceOnChanges":true},"doneDate":{"type":"string","description":"Completion date in RFC3339 format.\n"},"function":{"type":"string","description":"Function name (should be `hardInstall`).\n"},"lastUpdate":{"type":"string","description":"Last update\n"},"os":{"type":"string","description":"Operating system to install.\n","willReplaceOnChanges":true},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"Attribute 'properties' is deprecated and has no effect.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The service_name of your dedicated server.\n","willReplaceOnChanges":true},"startDate":{"type":"string","description":"Task creation date in RFC3339 format.\n"},"status":{"type":"string","description":"Task status (should be `done`)\n"},"storages":{"type":"array","items":{"$ref":"#/types/ovh:Dedicated/ServerReinstallTaskStorage:ServerReinstallTaskStorage"},"description":"OS reinstallation storage configurations. [More details about disks, hardware/software RAID and partitioning configuration](https://help.ovhcloud.com/csm/en-dedicated-servers-api-partitioning?id=kb_article_view\u0026sysparm_article=KB0043882) (do not forget to adapt camel case parameters to snake case parameters).\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:Dedicated/serverUpdate:ServerUpdate":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst rescue = ovh.Dedicated.getServerBoots({\n    serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n    bootType: \"rescue\",\n    kernel: \"rescue64-pro\",\n});\nconst server = new ovh.dedicated.ServerUpdate(\"server\", {\n    serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n    bootId: rescue.then(rescue =\u003e rescue.results?.[0]),\n    monitoring: true,\n    state: \"ok\",\n    displayName: \"Some human-readable name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nrescue = ovh.Dedicated.get_server_boots(service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\",\n    boot_type=\"rescue\",\n    kernel=\"rescue64-pro\")\nserver = ovh.dedicated.ServerUpdate(\"server\",\n    service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\",\n    boot_id=rescue.results[0],\n    monitoring=True,\n    state=\"ok\",\n    display_name=\"Some human-readable name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var rescue = Ovh.Dedicated.GetServerBoots.Invoke(new()\n    {\n        ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n        BootType = \"rescue\",\n        Kernel = \"rescue64-pro\",\n    });\n\n    var server = new Ovh.Dedicated.ServerUpdate(\"server\", new()\n    {\n        ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n        BootId = rescue.Apply(getServerBootsResult =\u003e getServerBootsResult.Results[0]),\n        Monitoring = true,\n        State = \"ok\",\n        DisplayName = \"Some human-readable name\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/dedicated\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trescue, err := dedicated.GetServerBoots(ctx, \u0026dedicated.GetServerBootsArgs{\n\t\t\tServiceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n\t\t\tBootType:    pulumi.StringRef(\"rescue\"),\n\t\t\tKernel:      pulumi.StringRef(\"rescue64-pro\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dedicated.NewServerUpdate(ctx, \"server\", \u0026dedicated.ServerUpdateArgs{\n\t\t\tServiceName: pulumi.String(\"nsxxxxxxx.ip-xx-xx-xx.eu\"),\n\t\t\tBootId:      pulumi.Int(rescue.Results[0]),\n\t\t\tMonitoring:  pulumi.Bool(true),\n\t\t\tState:       pulumi.String(\"ok\"),\n\t\t\tDisplayName: pulumi.String(\"Some human-readable name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Dedicated.DedicatedFunctions;\nimport com.pulumi.ovh.Dedicated.inputs.GetServerBootsArgs;\nimport com.ovhcloud.pulumi.ovh.Dedicated.ServerUpdate;\nimport com.ovhcloud.pulumi.ovh.Dedicated.ServerUpdateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var rescue = DedicatedFunctions.getServerBoots(GetServerBootsArgs.builder()\n            .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n            .bootType(\"rescue\")\n            .kernel(\"rescue64-pro\")\n            .build());\n\n        var server = new ServerUpdate(\"server\", ServerUpdateArgs.builder()\n            .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n            .bootId(rescue.results()[0])\n            .monitoring(true)\n            .state(\"ok\")\n            .displayName(\"Some human-readable name\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  server:\n    type: ovh:Dedicated:ServerUpdate\n    properties:\n      serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n      bootId: ${rescue.results[0]}\n      monitoring: true\n      state: ok\n      displayName: Some human-readable name\nvariables:\n  rescue:\n    fn::invoke:\n      function: ovh:Dedicated:getServerBoots\n      arguments:\n        serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n        bootType: rescue\n        kernel: rescue64-pro\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"bootId":{"type":"integer","description":"boot id of the server\n"},"bootScript":{"type":"string","description":"boot script of the server\n"},"displayName":{"type":"string","description":"display name of the dedicated server\n"},"efiBootloaderPath":{"type":"string","description":"path of the EFI bootloader\n"},"monitoring":{"type":"boolean","description":"Icmp monitoring state\n"},"serviceName":{"type":"string","description":"The service_name of your dedicated server.\n"},"state":{"type":"string","description":"error, hacked, hackedBlocked, ok\n"}},"required":["bootId","displayName","efiBootloaderPath","monitoring","serviceName","state"],"inputProperties":{"bootId":{"type":"integer","description":"boot id of the server\n"},"bootScript":{"type":"string","description":"boot script of the server\n"},"displayName":{"type":"string","description":"display name of the dedicated server\n"},"efiBootloaderPath":{"type":"string","description":"path of the EFI bootloader\n"},"monitoring":{"type":"boolean","description":"Icmp monitoring state\n"},"serviceName":{"type":"string","description":"The service_name of your dedicated server.\n","willReplaceOnChanges":true},"state":{"type":"string","description":"error, hacked, hackedBlocked, ok\n"}},"requiredInputs":["serviceName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServerUpdate resources.\n","properties":{"bootId":{"type":"integer","description":"boot id of the server\n"},"bootScript":{"type":"string","description":"boot script of the server\n"},"displayName":{"type":"string","description":"display name of the dedicated server\n"},"efiBootloaderPath":{"type":"string","description":"path of the EFI bootloader\n"},"monitoring":{"type":"boolean","description":"Icmp monitoring state\n"},"serviceName":{"type":"string","description":"The service_name of your dedicated server.\n","willReplaceOnChanges":true},"state":{"type":"string","description":"error, hacked, hackedBlocked, ok\n"}},"type":"object"}},"ovh:Domain/dSRecords:DSRecords":{"description":"Use this resource to manage a domain's DS records.\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 dsRecords = new ovh.domain.DSRecords(\"ds_records\", {\n    domain: \"mydomain.ovh\",\n    dsRecords: [{\n        algorithm: \"RSASHA1_NSEC3_SHA1\",\n        flags: \"KEY_SIGNING_KEY\",\n        publicKey: \"my_base64_encoded_public_key\",\n        tag: 12345,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nds_records = ovh.domain.DSRecords(\"ds_records\",\n    domain=\"mydomain.ovh\",\n    ds_records=[{\n        \"algorithm\": \"RSASHA1_NSEC3_SHA1\",\n        \"flags\": \"KEY_SIGNING_KEY\",\n        \"public_key\": \"my_base64_encoded_public_key\",\n        \"tag\": 12345,\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 dsRecords = new Ovh.Domain.DSRecords(\"ds_records\", new()\n    {\n        Domain = \"mydomain.ovh\",\n        DsRecords = new[]\n        {\n            new Ovh.Domain.Inputs.DSRecordsDsRecordArgs\n            {\n                Algorithm = \"RSASHA1_NSEC3_SHA1\",\n                Flags = \"KEY_SIGNING_KEY\",\n                PublicKey = \"my_base64_encoded_public_key\",\n                Tag = 12345,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewDSRecords(ctx, \"ds_records\", \u0026domain.DSRecordsArgs{\n\t\t\tDomain: pulumi.String(\"mydomain.ovh\"),\n\t\t\tDsRecords: domain.DSRecordsDsRecordArray{\n\t\t\t\t\u0026domain.DSRecordsDsRecordArgs{\n\t\t\t\t\tAlgorithm: pulumi.String(\"RSASHA1_NSEC3_SHA1\"),\n\t\t\t\t\tFlags:     pulumi.String(\"KEY_SIGNING_KEY\"),\n\t\t\t\t\tPublicKey: pulumi.String(\"my_base64_encoded_public_key\"),\n\t\t\t\t\tTag:       pulumi.Int(12345),\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.ovhcloud.pulumi.ovh.Domain.DSRecords;\nimport com.ovhcloud.pulumi.ovh.Domain.DSRecordsArgs;\nimport com.pulumi.ovh.Domain.inputs.DSRecordsDsRecordArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var dsRecords = new DSRecords(\"dsRecords\", DSRecordsArgs.builder()\n            .domain(\"mydomain.ovh\")\n            .dsRecords(DSRecordsDsRecordArgs.builder()\n                .algorithm(\"RSASHA1_NSEC3_SHA1\")\n                .flags(\"KEY_SIGNING_KEY\")\n                .publicKey(\"my_base64_encoded_public_key\")\n                .tag(12345)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  dsRecords:\n    type: ovh:Domain:DSRecords\n    name: ds_records\n    properties:\n      domain: mydomain.ovh\n      dsRecords:\n        - algorithm: RSASHA1_NSEC3_SHA1\n          flags: KEY_SIGNING_KEY\n          publicKey: my_base64_encoded_public_key\n          tag: 12345\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nDS records can be imported using their `domain`.\n\nUsing the following configuration:\n\nterraform\n\nimport {\n\n  to = ovh_domain_ds_records.ds_records\n\n  id = \"\u003cdomain name\u003e\"\n\n}\n\nYou can then run:\n\nbash\n\n$ pulumi preview -generate-config-out=ds_records.tf\n\n$ pulumi up\n\nThe file `ds_records.tf` will then contain the imported resource's configuration, that can be copied next to the `import` block above. See https://developer.hashicorp.com/terraform/language/import/generating-configuration for more details.\n\n","properties":{"domain":{"type":"string","description":"Domain name for which to manage DS records\n"},"dsRecords":{"type":"array","items":{"$ref":"#/types/ovh:Domain/DSRecordsDsRecord:DSRecordsDsRecord"},"description":"Details about a DS record\n"}},"required":["domain","dsRecords"],"inputProperties":{"domain":{"type":"string","description":"Domain name for which to manage DS records\n","willReplaceOnChanges":true},"dsRecords":{"type":"array","items":{"$ref":"#/types/ovh:Domain/DSRecordsDsRecord:DSRecordsDsRecord"},"description":"Details about a DS record\n"}},"requiredInputs":["domain","dsRecords"],"stateInputs":{"description":"Input properties used for looking up and filtering DSRecords resources.\n","properties":{"domain":{"type":"string","description":"Domain name for which to manage DS records\n","willReplaceOnChanges":true},"dsRecords":{"type":"array","items":{"$ref":"#/types/ovh:Domain/DSRecordsDsRecord:DSRecordsDsRecord"},"description":"Details about a DS record\n"}},"type":"object"}},"ovh:Domain/dynhostLogin:DynhostLogin":{"description":"Create a dynhost login for a given domain zone.\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 dynhostUser = new ovh.domain.DynhostLogin(\"dynhost_user\", {\n    zoneName: \"mydomain.ovh\",\n    subDomain: \"dynhost\",\n    loginSuffix: \"dynhostUser\",\n    password: \"thisIsMyPassword\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ndynhost_user = ovh.domain.DynhostLogin(\"dynhost_user\",\n    zone_name=\"mydomain.ovh\",\n    sub_domain=\"dynhost\",\n    login_suffix=\"dynhostUser\",\n    password=\"thisIsMyPassword\")\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 dynhostUser = new Ovh.Domain.DynhostLogin(\"dynhost_user\", new()\n    {\n        ZoneName = \"mydomain.ovh\",\n        SubDomain = \"dynhost\",\n        LoginSuffix = \"dynhostUser\",\n        Password = \"thisIsMyPassword\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewDynhostLogin(ctx, \"dynhost_user\", \u0026domain.DynhostLoginArgs{\n\t\t\tZoneName:    pulumi.String(\"mydomain.ovh\"),\n\t\t\tSubDomain:   pulumi.String(\"dynhost\"),\n\t\t\tLoginSuffix: pulumi.String(\"dynhostUser\"),\n\t\t\tPassword:    pulumi.String(\"thisIsMyPassword\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Domain.DynhostLogin;\nimport com.ovhcloud.pulumi.ovh.Domain.DynhostLoginArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var dynhostUser = new DynhostLogin(\"dynhostUser\", DynhostLoginArgs.builder()\n            .zoneName(\"mydomain.ovh\")\n            .subDomain(\"dynhost\")\n            .loginSuffix(\"dynhostUser\")\n            .password(\"thisIsMyPassword\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  dynhostUser:\n    type: ovh:Domain:DynhostLogin\n    name: dynhost_user\n    properties:\n      zoneName: mydomain.ovh\n      subDomain: dynhost\n      loginSuffix: dynhostUser\n      password: thisIsMyPassword\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"login":{"type":"string","description":"Login name\n"},"loginSuffix":{"type":"string","description":"Suffix that will be concatenated to the zoneName to create the login\n"},"password":{"type":"string","description":"Password of the login\n","secret":true},"subDomain":{"type":"string","description":"Subdomain that the login will be allowed to update (use * to allow all)\n"},"zone":{"type":"string","description":"Login zone\n"},"zoneName":{"type":"string","description":"Zone name\n"}},"required":["login","loginSuffix","password","subDomain","zone","zoneName"],"inputProperties":{"loginSuffix":{"type":"string","description":"Suffix that will be concatenated to the zoneName to create the login\n"},"password":{"type":"string","description":"Password of the login\n","secret":true},"subDomain":{"type":"string","description":"Subdomain that the login will be allowed to update (use * to allow all)\n"},"zoneName":{"type":"string","description":"Zone name\n"}},"requiredInputs":["loginSuffix","password","subDomain","zoneName"],"stateInputs":{"description":"Input properties used for looking up and filtering DynhostLogin resources.\n","properties":{"login":{"type":"string","description":"Login name\n"},"loginSuffix":{"type":"string","description":"Suffix that will be concatenated to the zoneName to create the login\n"},"password":{"type":"string","description":"Password of the login\n","secret":true},"subDomain":{"type":"string","description":"Subdomain that the login will be allowed to update (use * to allow all)\n"},"zone":{"type":"string","description":"Login zone\n"},"zoneName":{"type":"string","description":"Zone name\n"}},"type":"object"}},"ovh:Domain/name:Name":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  domain:\n    type: ovh:Domain:Name\n    properties:\n      domainName: example.com\n      targetSpec:\n        dns_configuration:\n          nameServers:\n            - nameServer: dns101.ovh.net\n            - nameServer: ns101.ovh.net\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nA domain name can be imported using its `domain_name`.\n\nUsing the following configuration:\n\nterraform\n\nimport {\n\n  to = ovh_domain_name.domain\n\n  id = \"\u003cdomain name\u003e\"\n\n}\n\nYou can then run:\n\nbash\n\n$ pulumi preview -generate-config-out=domain.tf\n\n$ pulumi up\n\nThe file `domain.tf` will then contain the imported resource's configuration, that can be copied next to the `import` block above. See https://developer.hashicorp.com/terraform/language/import/generating-configuration for more details.\n\n","properties":{"checksum":{"type":"string","description":"Computed hash used to control concurrent modification requests. Here, it represents the current target specification value\n"},"currentState":{"$ref":"#/types/ovh:Domain/NameCurrentState:NameCurrentState","description":"Current state of the domain name\n"},"currentTasks":{"type":"array","items":{"$ref":"#/types/ovh:Domain/NameCurrentTask:NameCurrentTask"},"description":"Ongoing asynchronous tasks related to the domain name resource\n"},"domainName":{"type":"string","description":"Domain name\n"},"iam":{"$ref":"#/types/ovh:Domain/NameIam:NameIam","description":"IAM resource metadata\n"},"order":{"$ref":"#/types/ovh:Domain/NameOrder:NameOrder","description":"Details about an Order\n"},"ovhSubsidiary":{"type":"string","description":"OVH subsidiaries\n"},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:Domain/NamePlanOption:NamePlanOption"}},"plans":{"type":"array","items":{"$ref":"#/types/ovh:Domain/NamePlan:NamePlan"}},"resourceStatus":{"type":"string","description":"Reflects the readiness of the domain name resource. A new target specification request will be accepted only in `READY`, `UPDATING` or `ERROR` status\n"},"targetSpec":{"$ref":"#/types/ovh:Domain/NameTargetSpec:NameTargetSpec","description":"Latest target specification of the domain name resource.\n"}},"required":["checksum","currentState","currentTasks","domainName","iam","order","resourceStatus","targetSpec"],"inputProperties":{"checksum":{"type":"string","description":"Computed hash used to control concurrent modification requests. Here, it represents the current target specification value\n"},"domainName":{"type":"string","description":"Domain name\n"},"ovhSubsidiary":{"type":"string","description":"OVH subsidiaries\n"},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:Domain/NamePlanOption:NamePlanOption"}},"plans":{"type":"array","items":{"$ref":"#/types/ovh:Domain/NamePlan:NamePlan"}},"targetSpec":{"$ref":"#/types/ovh:Domain/NameTargetSpec:NameTargetSpec","description":"Latest target specification of the domain name resource.\n"}},"requiredInputs":["domainName"],"stateInputs":{"description":"Input properties used for looking up and filtering Name resources.\n","properties":{"checksum":{"type":"string","description":"Computed hash used to control concurrent modification requests. Here, it represents the current target specification value\n"},"currentState":{"$ref":"#/types/ovh:Domain/NameCurrentState:NameCurrentState","description":"Current state of the domain name\n"},"currentTasks":{"type":"array","items":{"$ref":"#/types/ovh:Domain/NameCurrentTask:NameCurrentTask"},"description":"Ongoing asynchronous tasks related to the domain name resource\n"},"domainName":{"type":"string","description":"Domain name\n"},"iam":{"$ref":"#/types/ovh:Domain/NameIam:NameIam","description":"IAM resource metadata\n"},"order":{"$ref":"#/types/ovh:Domain/NameOrder:NameOrder","description":"Details about an Order\n"},"ovhSubsidiary":{"type":"string","description":"OVH subsidiaries\n"},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:Domain/NamePlanOption:NamePlanOption"}},"plans":{"type":"array","items":{"$ref":"#/types/ovh:Domain/NamePlan:NamePlan"}},"resourceStatus":{"type":"string","description":"Reflects the readiness of the domain name resource. A new target specification request will be accepted only in `READY`, `UPDATING` or `ERROR` status\n"},"targetSpec":{"$ref":"#/types/ovh:Domain/NameTargetSpec:NameTargetSpec","description":"Latest target specification of the domain name resource.\n"}},"type":"object"}},"ovh:Domain/nameServers:NameServers":{"description":"Use this resource to manage a domain's name 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 nameServers = new ovh.domain.NameServers(\"name_servers\", {\n    domain: \"mydomain.ovh\",\n    servers: [\n        {\n            host: \"dns105.ovh.net\",\n            ip: \"213.251.188.144\",\n        },\n        {\n            host: \"ns105.ovh.net\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nname_servers = ovh.domain.NameServers(\"name_servers\",\n    domain=\"mydomain.ovh\",\n    servers=[\n        {\n            \"host\": \"dns105.ovh.net\",\n            \"ip\": \"213.251.188.144\",\n        },\n        {\n            \"host\": \"ns105.ovh.net\",\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 nameServers = new Ovh.Domain.NameServers(\"name_servers\", new()\n    {\n        Domain = \"mydomain.ovh\",\n        Servers = new[]\n        {\n            new Ovh.Domain.Inputs.NameServersServerArgs\n            {\n                Host = \"dns105.ovh.net\",\n                Ip = \"213.251.188.144\",\n            },\n            new Ovh.Domain.Inputs.NameServersServerArgs\n            {\n                Host = \"ns105.ovh.net\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewNameServers(ctx, \"name_servers\", \u0026domain.NameServersArgs{\n\t\t\tDomain: pulumi.String(\"mydomain.ovh\"),\n\t\t\tServers: domain.NameServersServerArray{\n\t\t\t\t\u0026domain.NameServersServerArgs{\n\t\t\t\t\tHost: pulumi.String(\"dns105.ovh.net\"),\n\t\t\t\t\tIp:   pulumi.String(\"213.251.188.144\"),\n\t\t\t\t},\n\t\t\t\t\u0026domain.NameServersServerArgs{\n\t\t\t\t\tHost: pulumi.String(\"ns105.ovh.net\"),\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.ovhcloud.pulumi.ovh.Domain.NameServers;\nimport com.ovhcloud.pulumi.ovh.Domain.NameServersArgs;\nimport com.pulumi.ovh.Domain.inputs.NameServersServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var nameServers = new NameServers(\"nameServers\", NameServersArgs.builder()\n            .domain(\"mydomain.ovh\")\n            .servers(            \n                NameServersServerArgs.builder()\n                    .host(\"dns105.ovh.net\")\n                    .ip(\"213.251.188.144\")\n                    .build(),\n                NameServersServerArgs.builder()\n                    .host(\"ns105.ovh.net\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  nameServers:\n    type: ovh:Domain:NameServers\n    name: name_servers\n    properties:\n      domain: mydomain.ovh\n      servers:\n        - host: dns105.ovh.net\n          ip: 213.251.188.144\n        - host: ns105.ovh.net\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nName servers can be imported using their `domain`.\n\nUsing the following configuration:\n\nterraform\n\nimport {\n\n  to = ovh_domain_name_servers.name_servers\n\n  id = \"\u003cdomain name\u003e\"\n\n}\n\nYou can then run:\n\nbash\n\n$ pulumi preview -generate-config-out=name_servers.tf\n\n$ pulumi up\n\nThe file `name_servers.tf` will then contain the imported resource's configuration, that can be copied next to the `import` block above. See https://developer.hashicorp.com/terraform/language/import/generating-configuration for more details.\n\n","properties":{"domain":{"type":"string","description":"Domain name for which to manage name servers\n"},"servers":{"type":"array","items":{"$ref":"#/types/ovh:Domain/NameServersServer:NameServersServer"},"description":"Details about a name server\n"}},"required":["domain","servers"],"inputProperties":{"domain":{"type":"string","description":"Domain name for which to manage name servers\n","willReplaceOnChanges":true},"servers":{"type":"array","items":{"$ref":"#/types/ovh:Domain/NameServersServer:NameServersServer"},"description":"Details about a name server\n"}},"requiredInputs":["domain","servers"],"stateInputs":{"description":"Input properties used for looking up and filtering NameServers resources.\n","properties":{"domain":{"type":"string","description":"Domain name for which to manage name servers\n","willReplaceOnChanges":true},"servers":{"type":"array","items":{"$ref":"#/types/ovh:Domain/NameServersServer:NameServersServer"},"description":"Details about a name server\n"}},"type":"object"}},"ovh:Domain/zone:Zone":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst myaccount = ovh.Me.getMe({});\nconst mycart = myaccount.then(myaccount =\u003e ovh.Order.getCart({\n    ovhSubsidiary: myaccount.ovhSubsidiary,\n}));\nconst zone = mycart.then(mycart =\u003e ovh.Order.getCartProductPlan({\n    cartId: mycart.id,\n    priceCapacity: \"renew\",\n    product: \"dns\",\n    planCode: \"zone\",\n}));\nconst zoneZone = new ovh.domain.Zone(\"zone\", {\n    ovhSubsidiary: mycart.then(mycart =\u003e mycart.ovhSubsidiary),\n    plan: {\n        duration: zone.then(zone =\u003e zone.selectedPrices?.[0]?.duration),\n        planCode: zone.then(zone =\u003e zone.planCode),\n        pricingMode: zone.then(zone =\u003e zone.selectedPrices?.[0]?.pricingMode),\n        configurations: [\n            {\n                label: \"zone\",\n                value: \"myzone.mydomain.com\",\n            },\n            {\n                label: \"template\",\n                value: \"minimized\",\n            },\n        ],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmyaccount = ovh.Me.get_me()\nmycart = ovh.Order.get_cart(ovh_subsidiary=myaccount.ovh_subsidiary)\nzone = ovh.Order.get_cart_product_plan(cart_id=mycart.id,\n    price_capacity=\"renew\",\n    product=\"dns\",\n    plan_code=\"zone\")\nzone_zone = ovh.domain.Zone(\"zone\",\n    ovh_subsidiary=mycart.ovh_subsidiary,\n    plan={\n        \"duration\": zone.selected_prices[0].duration,\n        \"plan_code\": zone.plan_code,\n        \"pricing_mode\": zone.selected_prices[0].pricing_mode,\n        \"configurations\": [\n            {\n                \"label\": \"zone\",\n                \"value\": \"myzone.mydomain.com\",\n            },\n            {\n                \"label\": \"template\",\n                \"value\": \"minimized\",\n            },\n        ],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myaccount = Ovh.Me.GetMe.Invoke();\n\n    var mycart = Ovh.Order.GetCart.Invoke(new()\n    {\n        OvhSubsidiary = myaccount.Apply(getMeResult =\u003e getMeResult.OvhSubsidiary),\n    });\n\n    var zone = Ovh.Order.GetCartProductPlan.Invoke(new()\n    {\n        CartId = mycart.Apply(getCartResult =\u003e getCartResult.Id),\n        PriceCapacity = \"renew\",\n        Product = \"dns\",\n        PlanCode = \"zone\",\n    });\n\n    var zoneZone = new Ovh.Domain.Zone(\"zone\", new()\n    {\n        OvhSubsidiary = mycart.Apply(getCartResult =\u003e getCartResult.OvhSubsidiary),\n        Plan = new Ovh.Domain.Inputs.ZonePlanArgs\n        {\n            Duration = zone.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.Duration),\n            PlanCode = zone.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PlanCode),\n            PricingMode = zone.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.PricingMode),\n            Configurations = new[]\n            {\n                new Ovh.Domain.Inputs.ZonePlanConfigurationArgs\n                {\n                    Label = \"zone\",\n                    Value = \"myzone.mydomain.com\",\n                },\n                new Ovh.Domain.Inputs.ZonePlanConfigurationArgs\n                {\n                    Label = \"template\",\n                    Value = \"minimized\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/domain\"\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/me\"\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/order\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyaccount, err := me.GetMe(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmycart, err := order.GetCart(ctx, \u0026order.GetCartArgs{\n\t\t\tOvhSubsidiary: myaccount.OvhSubsidiary,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tzone, err := order.GetCartProductPlan(ctx, \u0026order.GetCartProductPlanArgs{\n\t\t\tCartId:        mycart.Id,\n\t\t\tPriceCapacity: \"renew\",\n\t\t\tProduct:       \"dns\",\n\t\t\tPlanCode:      \"zone\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewZone(ctx, \"zone\", \u0026domain.ZoneArgs{\n\t\t\tOvhSubsidiary: pulumi.String(mycart.OvhSubsidiary),\n\t\t\tPlan: \u0026domain.ZonePlanArgs{\n\t\t\t\tDuration:    pulumi.String(zone.SelectedPrices[0].Duration),\n\t\t\t\tPlanCode:    pulumi.String(zone.PlanCode),\n\t\t\t\tPricingMode: pulumi.String(zone.SelectedPrices[0].PricingMode),\n\t\t\t\tConfigurations: domain.ZonePlanConfigurationArray{\n\t\t\t\t\t\u0026domain.ZonePlanConfigurationArgs{\n\t\t\t\t\t\tLabel: pulumi.String(\"zone\"),\n\t\t\t\t\t\tValue: pulumi.String(\"myzone.mydomain.com\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026domain.ZonePlanConfigurationArgs{\n\t\t\t\t\t\tLabel: pulumi.String(\"template\"),\n\t\t\t\t\t\tValue: pulumi.String(\"minimized\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.MeFunctions;\nimport com.pulumi.ovh.Order.OrderFunctions;\nimport com.pulumi.ovh.Order.inputs.GetCartArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductPlanArgs;\nimport com.ovhcloud.pulumi.ovh.Domain.Zone;\nimport com.ovhcloud.pulumi.ovh.Domain.ZoneArgs;\nimport com.pulumi.ovh.Domain.inputs.ZonePlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myaccount = MeFunctions.getMe(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var mycart = OrderFunctions.getCart(GetCartArgs.builder()\n            .ovhSubsidiary(myaccount.ovhSubsidiary())\n            .build());\n\n        final var zone = OrderFunctions.getCartProductPlan(GetCartProductPlanArgs.builder()\n            .cartId(mycart.id())\n            .priceCapacity(\"renew\")\n            .product(\"dns\")\n            .planCode(\"zone\")\n            .build());\n\n        var zoneZone = new Zone(\"zoneZone\", ZoneArgs.builder()\n            .ovhSubsidiary(mycart.ovhSubsidiary())\n            .plan(ZonePlanArgs.builder()\n                .duration(zone.selectedPrices()[0].duration())\n                .planCode(zone.planCode())\n                .pricingMode(zone.selectedPrices()[0].pricingMode())\n                .configurations(                \n                    ZonePlanConfigurationArgs.builder()\n                        .label(\"zone\")\n                        .value(\"myzone.mydomain.com\")\n                        .build(),\n                    ZonePlanConfigurationArgs.builder()\n                        .label(\"template\")\n                        .value(\"minimized\")\n                        .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  zoneZone:\n    type: ovh:Domain:Zone\n    name: zone\n    properties:\n      ovhSubsidiary: ${mycart.ovhSubsidiary}\n      plan:\n        duration: ${zone.selectedPrices[0].duration}\n        planCode: ${zone.planCode}\n        pricingMode: ${zone.selectedPrices[0].pricingMode}\n        configurations:\n          - label: zone\n            value: myzone.mydomain.com\n          - label: template\n            value: minimized\nvariables:\n  myaccount:\n    fn::invoke:\n      function: ovh:Me:getMe\n      arguments: {}\n  mycart:\n    fn::invoke:\n      function: ovh:Order:getCart\n      arguments:\n        ovhSubsidiary: ${myaccount.ovhSubsidiary}\n  zone:\n    fn::invoke:\n      function: ovh:Order:getCartProductPlan\n      arguments:\n        cartId: ${mycart.id}\n        priceCapacity: renew\n        product: dns\n        planCode: zone\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nZone can be imported using its `name`.\n\nUsing the following configuration:\n\nterraform\n\nimport {\n\n  to = ovh_domain_zone.zone\n\n  id = \"\u003czone name\u003e\"\n\n}\n\nYou can then run:\n\nbash\n\n$ pulumi preview -generate-config-out=zone.tf\n\n$ pulumi up\n\nThe file `zone.tf` will then contain the imported resource's configuration, that can be copied next to the `import` block above. See https://developer.hashicorp.com/terraform/language/import/generating-configuration for more details.\n\n","properties":{"ZoneURN":{"type":"string","description":"URN of the DNS Zone to be used inside an IAM policy\n"},"dnssecSupported":{"type":"boolean","description":"Is DNSSEC supported by this zone\n"},"hasDnsAnycast":{"type":"boolean","description":"hasDnsAnycast flag of the DNS zone\n"},"lastUpdate":{"type":"string","description":"Last update date of the DNS zone\n"},"name":{"type":"string","description":"Zone name\n"},"nameServers":{"type":"array","items":{"type":"string"},"description":"Name servers that host the DNS zone\n"},"orders":{"type":"array","items":{"$ref":"#/types/ovh:Domain/ZoneOrder:ZoneOrder"},"description":"Details about an Order\n"},"ovhSubsidiary":{"type":"string","description":"OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json)\n"},"paymentMean":{"type":"string","description":"Ovh payment mode\n","deprecationMessage":"This field is not anymore used since the API has been deprecated in favor of /payment/mean. Now, the default payment mean is used."},"plan":{"$ref":"#/types/ovh:Domain/ZonePlan:ZonePlan","description":"Product Plan to order\n"},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:Domain/ZonePlanOption:ZonePlanOption"},"description":"Product Plan to order\n"}},"required":["dnssecSupported","hasDnsAnycast","lastUpdate","name","nameServers","orders","ovhSubsidiary","plan","ZoneURN"],"inputProperties":{"orders":{"type":"array","items":{"$ref":"#/types/ovh:Domain/ZoneOrder:ZoneOrder"},"description":"Details about an Order\n"},"ovhSubsidiary":{"type":"string","description":"OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json)\n","willReplaceOnChanges":true},"paymentMean":{"type":"string","description":"Ovh payment mode\n","deprecationMessage":"This field is not anymore used since the API has been deprecated in favor of /payment/mean. Now, the default payment mean is used.","willReplaceOnChanges":true},"plan":{"$ref":"#/types/ovh:Domain/ZonePlan:ZonePlan","description":"Product Plan to order\n","willReplaceOnChanges":true},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:Domain/ZonePlanOption:ZonePlanOption"},"description":"Product Plan to order\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Zone resources.\n","properties":{"ZoneURN":{"type":"string","description":"URN of the DNS Zone to be used inside an IAM policy\n"},"dnssecSupported":{"type":"boolean","description":"Is DNSSEC supported by this zone\n"},"hasDnsAnycast":{"type":"boolean","description":"hasDnsAnycast flag of the DNS zone\n"},"lastUpdate":{"type":"string","description":"Last update date of the DNS zone\n"},"name":{"type":"string","description":"Zone name\n"},"nameServers":{"type":"array","items":{"type":"string"},"description":"Name servers that host the DNS zone\n"},"orders":{"type":"array","items":{"$ref":"#/types/ovh:Domain/ZoneOrder:ZoneOrder"},"description":"Details about an Order\n"},"ovhSubsidiary":{"type":"string","description":"OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json)\n","willReplaceOnChanges":true},"paymentMean":{"type":"string","description":"Ovh payment mode\n","deprecationMessage":"This field is not anymore used since the API has been deprecated in favor of /payment/mean. Now, the default payment mean is used.","willReplaceOnChanges":true},"plan":{"$ref":"#/types/ovh:Domain/ZonePlan:ZonePlan","description":"Product Plan to order\n","willReplaceOnChanges":true},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:Domain/ZonePlanOption:ZonePlanOption"},"description":"Product Plan to order\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:Domain/zoneDNSSec:ZoneDNSSec":{"description":"Enable / disable DNSSEC on 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 \"@ovhcloud/pulumi-ovh\";\n\nconst dnssec = new ovh.domain.ZoneDNSSec(\"dnssec\", {zoneName: \"mysite.ovh\"});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ndnssec = ovh.domain.ZoneDNSSec(\"dnssec\", 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 dnssec = new Ovh.Domain.ZoneDNSSec(\"dnssec\", new()\n    {\n        ZoneName = \"mysite.ovh\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewZoneDNSSec(ctx, \"dnssec\", \u0026domain.ZoneDNSSecArgs{\n\t\t\tZoneName: pulumi.String(\"mysite.ovh\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Domain.ZoneDNSSec;\nimport com.ovhcloud.pulumi.ovh.Domain.ZoneDNSSecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var dnssec = new ZoneDNSSec(\"dnssec\", ZoneDNSSecArgs.builder()\n            .zoneName(\"mysite.ovh\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  dnssec:\n    type: ovh:Domain:ZoneDNSSec\n    properties:\n      zoneName: mysite.ovh\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"status":{"type":"string","description":"DNSSEC status (`disableInProgress`, `disabled`, `enableInProgress` or `enabled`)\n"},"zoneName":{"type":"string","description":"The name of the domain zone\n"}},"required":["status","zoneName"],"inputProperties":{"zoneName":{"type":"string","description":"The name of the domain zone\n"}},"requiredInputs":["zoneName"],"stateInputs":{"description":"Input properties used for looking up and filtering ZoneDNSSec resources.\n","properties":{"status":{"type":"string","description":"DNSSEC status (`disableInProgress`, `disabled`, `enableInProgress` or `enabled`)\n"},"zoneName":{"type":"string","description":"The name of the domain zone\n"}},"type":"object"}},"ovh:Domain/zoneImport:ZoneImport":{"description":"Handle a whole DNS zone using a zone file.\n\n\u003e **WARNING** This resource and resource `ovh.Domain.ZoneRecord` should not be used together as `ovh.Domain.ZoneImport` controls the whole DNS zone at once.\n\n","properties":{"exportedContent":{"type":"string","description":"Zone file exported from the API\n"},"zoneFile":{"type":"string","description":"Content of the zone file to import\n"},"zoneName":{"type":"string","description":"The name of the domain zone\n"}},"required":["exportedContent","zoneFile","zoneName"],"inputProperties":{"zoneFile":{"type":"string","description":"Content of the zone file to import\n"},"zoneName":{"type":"string","description":"The name of the domain zone\n"}},"requiredInputs":["zoneFile","zoneName"],"stateInputs":{"description":"Input properties used for looking up and filtering ZoneImport resources.\n","properties":{"exportedContent":{"type":"string","description":"Zone file exported from the API\n"},"zoneFile":{"type":"string","description":"Content of the zone file to import\n"},"zoneName":{"type":"string","description":"The name of the domain zone\n"}},"type":"object"}},"ovh:Domain/zoneRecord:ZoneRecord":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\n// Add a record to a sub-domain\nconst test = new ovh.domain.ZoneRecord(\"test\", {\n    zone: \"testdemo.ovh\",\n    subdomain: \"test\",\n    fieldtype: \"A\",\n    ttl: 3600,\n    target: \"0.0.0.0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\n# Add a record to a sub-domain\ntest = ovh.domain.ZoneRecord(\"test\",\n    zone=\"testdemo.ovh\",\n    subdomain=\"test\",\n    fieldtype=\"A\",\n    ttl=3600,\n    target=\"0.0.0.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    // Add a record to a sub-domain\n    var test = new Ovh.Domain.ZoneRecord(\"test\", new()\n    {\n        Zone = \"testdemo.ovh\",\n        Subdomain = \"test\",\n        Fieldtype = \"A\",\n        Ttl = 3600,\n        Target = \"0.0.0.0\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/domain\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Add a record to a sub-domain\n\t\t_, err := domain.NewZoneRecord(ctx, \"test\", \u0026domain.ZoneRecordArgs{\n\t\t\tZone:      pulumi.String(\"testdemo.ovh\"),\n\t\t\tSubdomain: pulumi.String(\"test\"),\n\t\t\tFieldtype: pulumi.String(\"A\"),\n\t\t\tTtl:       pulumi.Int(3600),\n\t\t\tTarget:    pulumi.String(\"0.0.0.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.ovhcloud.pulumi.ovh.Domain.ZoneRecord;\nimport com.ovhcloud.pulumi.ovh.Domain.ZoneRecordArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Add a record to a sub-domain\n        var test = new ZoneRecord(\"test\", ZoneRecordArgs.builder()\n            .zone(\"testdemo.ovh\")\n            .subdomain(\"test\")\n            .fieldtype(\"A\")\n            .ttl(3600)\n            .target(\"0.0.0.0\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Add a record to a sub-domain\n  test:\n    type: ovh:Domain:ZoneRecord\n    properties:\n      zone: testdemo.ovh\n      subdomain: test\n      fieldtype: A\n      ttl: 3600\n      target: 0.0.0.0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud domain zone record can be imported using the `id`, which can be retrieved by using [OVH API portal](https://api.ovh.com/console/#/domain/zone/%7BzoneName%7D/record~GET), and the `zone`, separated by \".\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Domain/zoneRecord:ZoneRecord test id.zone\n```\n\n","properties":{"fieldtype":{"type":"string","description":"The type of the record\n"},"subdomain":{"type":"string","description":"The name of the record. It can be an empty string.\n"},"target":{"type":"string","description":"The value of the record\n"},"ttl":{"type":"integer","description":"The TTL of the record, it shall be \u003e= to 60.\n"},"zone":{"type":"string","description":"The domain to add the record to\n"}},"required":["fieldtype","target","zone"],"inputProperties":{"fieldtype":{"type":"string","description":"The type of the record\n","willReplaceOnChanges":true},"subdomain":{"type":"string","description":"The name of the record. It can be an empty string.\n"},"target":{"type":"string","description":"The value of the record\n"},"ttl":{"type":"integer","description":"The TTL of the record, it shall be \u003e= to 60.\n"},"zone":{"type":"string","description":"The domain to add the record to\n","willReplaceOnChanges":true}},"requiredInputs":["fieldtype","target","zone"],"stateInputs":{"description":"Input properties used for looking up and filtering ZoneRecord resources.\n","properties":{"fieldtype":{"type":"string","description":"The type of the record\n","willReplaceOnChanges":true},"subdomain":{"type":"string","description":"The name of the record. It can be an empty string.\n"},"target":{"type":"string","description":"The value of the record\n"},"ttl":{"type":"integer","description":"The TTL of the record, it shall be \u003e= to 60.\n"},"zone":{"type":"string","description":"The domain to add the record to\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:Domain/zoneRedirection:ZoneRedirection":{"description":"Provides a OVHcloud domain zone redirection.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\n// Add a redirection to a sub-domain\nconst test = new ovh.domain.ZoneRedirection(\"test\", {\n    zone: \"testdemo.ovh\",\n    subdomain: \"test\",\n    type: \"visiblePermanent\",\n    target: \"http://www.ovh\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\n# Add a redirection to a sub-domain\ntest = ovh.domain.ZoneRedirection(\"test\",\n    zone=\"testdemo.ovh\",\n    subdomain=\"test\",\n    type=\"visiblePermanent\",\n    target=\"http://www.ovh\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Add a redirection to a sub-domain\n    var test = new Ovh.Domain.ZoneRedirection(\"test\", new()\n    {\n        Zone = \"testdemo.ovh\",\n        Subdomain = \"test\",\n        Type = \"visiblePermanent\",\n        Target = \"http://www.ovh\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/domain\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Add a redirection to a sub-domain\n\t\t_, err := domain.NewZoneRedirection(ctx, \"test\", \u0026domain.ZoneRedirectionArgs{\n\t\t\tZone:      pulumi.String(\"testdemo.ovh\"),\n\t\t\tSubdomain: pulumi.String(\"test\"),\n\t\t\tType:      pulumi.String(\"visiblePermanent\"),\n\t\t\tTarget:    pulumi.String(\"http://www.ovh\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Domain.ZoneRedirection;\nimport com.ovhcloud.pulumi.ovh.Domain.ZoneRedirectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Add a redirection to a sub-domain\n        var test = new ZoneRedirection(\"test\", ZoneRedirectionArgs.builder()\n            .zone(\"testdemo.ovh\")\n            .subdomain(\"test\")\n            .type(\"visiblePermanent\")\n            .target(\"http://www.ovh\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Add a redirection to a sub-domain\n  test:\n    type: ovh:Domain:ZoneRedirection\n    properties:\n      zone: testdemo.ovh\n      subdomain: test\n      type: visiblePermanent\n      target: http://www.ovh\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"description":{"type":"string","description":"A description of this redirection\n"},"keywords":{"type":"string","description":"Keywords to describe this redirection\n"},"subdomain":{"type":"string","description":"The name of the redirection\n"},"target":{"type":"string","description":"The value of the redirection\n"},"title":{"type":"string","description":"Title of this redirection\n"},"type":{"type":"string","description":"The type of the redirection, with values:\n"},"zone":{"type":"string","description":"The domain to add the redirection to\n"}},"required":["target","type","zone"],"inputProperties":{"description":{"type":"string","description":"A description of this redirection\n"},"keywords":{"type":"string","description":"Keywords to describe this redirection\n"},"subdomain":{"type":"string","description":"The name of the redirection\n","willReplaceOnChanges":true},"target":{"type":"string","description":"The value of the redirection\n"},"title":{"type":"string","description":"Title of this redirection\n"},"type":{"type":"string","description":"The type of the redirection, with values:\n"},"zone":{"type":"string","description":"The domain to add the redirection to\n"}},"requiredInputs":["target","type","zone"],"stateInputs":{"description":"Input properties used for looking up and filtering ZoneRedirection resources.\n","properties":{"description":{"type":"string","description":"A description of this redirection\n"},"keywords":{"type":"string","description":"Keywords to describe this redirection\n"},"subdomain":{"type":"string","description":"The name of the redirection\n","willReplaceOnChanges":true},"target":{"type":"string","description":"The value of the redirection\n"},"title":{"type":"string","description":"Title of this redirection\n"},"type":{"type":"string","description":"The type of the redirection, with values:\n"},"zone":{"type":"string","description":"The domain to add the redirection to\n"}},"type":"object"}},"ovh:Hosting/privateDatabase:PrivateDatabase":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst myaccount = ovh.Me.getMe({});\nconst mycart = myaccount.then(myaccount =\u003e ovh.Order.getCart({\n    ovhSubsidiary: myaccount.ovhSubsidiary,\n}));\nconst database = mycart.then(mycart =\u003e ovh.Order.getCartProductPlan({\n    cartId: mycart.id,\n    priceCapacity: \"renew\",\n    product: \"privateSQL\",\n    planCode: \"private-sql-512-instance\",\n}));\nconst databasePrivateDatabase = new ovh.hosting.PrivateDatabase(\"database\", {\n    ovhSubsidiary: mycart.then(mycart =\u003e mycart.ovhSubsidiary),\n    displayName: \"Postgresql-12\",\n    plan: {\n        duration: database.then(database =\u003e database.prices?.[3]?.duration),\n        planCode: database.then(database =\u003e database.planCode),\n        pricingMode: database.then(database =\u003e database.selectedPrices?.[0]?.pricingMode),\n        configurations: [\n            {\n                label: \"dc\",\n                value: \"gra3\",\n            },\n            {\n                label: \"engine\",\n                value: \"postgresql_12\",\n            },\n        ],\n    },\n});\nexport const privatedatabaseServiceName = databasePrivateDatabase.serviceName;\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmyaccount = ovh.Me.get_me()\nmycart = ovh.Order.get_cart(ovh_subsidiary=myaccount.ovh_subsidiary)\ndatabase = ovh.Order.get_cart_product_plan(cart_id=mycart.id,\n    price_capacity=\"renew\",\n    product=\"privateSQL\",\n    plan_code=\"private-sql-512-instance\")\ndatabase_private_database = ovh.hosting.PrivateDatabase(\"database\",\n    ovh_subsidiary=mycart.ovh_subsidiary,\n    display_name=\"Postgresql-12\",\n    plan={\n        \"duration\": database.prices[3].duration,\n        \"plan_code\": database.plan_code,\n        \"pricing_mode\": database.selected_prices[0].pricing_mode,\n        \"configurations\": [\n            {\n                \"label\": \"dc\",\n                \"value\": \"gra3\",\n            },\n            {\n                \"label\": \"engine\",\n                \"value\": \"postgresql_12\",\n            },\n        ],\n    })\npulumi.export(\"privatedatabaseServiceName\", database_private_database.service_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myaccount = Ovh.Me.GetMe.Invoke();\n\n    var mycart = Ovh.Order.GetCart.Invoke(new()\n    {\n        OvhSubsidiary = myaccount.Apply(getMeResult =\u003e getMeResult.OvhSubsidiary),\n    });\n\n    var database = Ovh.Order.GetCartProductPlan.Invoke(new()\n    {\n        CartId = mycart.Apply(getCartResult =\u003e getCartResult.Id),\n        PriceCapacity = \"renew\",\n        Product = \"privateSQL\",\n        PlanCode = \"private-sql-512-instance\",\n    });\n\n    var databasePrivateDatabase = new Ovh.Hosting.PrivateDatabase(\"database\", new()\n    {\n        OvhSubsidiary = mycart.Apply(getCartResult =\u003e getCartResult.OvhSubsidiary),\n        DisplayName = \"Postgresql-12\",\n        Plan = new Ovh.Hosting.Inputs.PrivateDatabasePlanArgs\n        {\n            Duration = database.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.Prices[3]?.Duration),\n            PlanCode = database.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PlanCode),\n            PricingMode = database.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.PricingMode),\n            Configurations = new[]\n            {\n                new Ovh.Hosting.Inputs.PrivateDatabasePlanConfigurationArgs\n                {\n                    Label = \"dc\",\n                    Value = \"gra3\",\n                },\n                new Ovh.Hosting.Inputs.PrivateDatabasePlanConfigurationArgs\n                {\n                    Label = \"engine\",\n                    Value = \"postgresql_12\",\n                },\n            },\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"privatedatabaseServiceName\"] = databasePrivateDatabase.ServiceName,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/hosting\"\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/me\"\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/order\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyaccount, err := me.GetMe(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmycart, err := order.GetCart(ctx, \u0026order.GetCartArgs{\n\t\t\tOvhSubsidiary: myaccount.OvhSubsidiary,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdatabase, err := order.GetCartProductPlan(ctx, \u0026order.GetCartProductPlanArgs{\n\t\t\tCartId:        mycart.Id,\n\t\t\tPriceCapacity: \"renew\",\n\t\t\tProduct:       \"privateSQL\",\n\t\t\tPlanCode:      \"private-sql-512-instance\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdatabasePrivateDatabase, err := hosting.NewPrivateDatabase(ctx, \"database\", \u0026hosting.PrivateDatabaseArgs{\n\t\t\tOvhSubsidiary: pulumi.String(mycart.OvhSubsidiary),\n\t\t\tDisplayName:   pulumi.String(\"Postgresql-12\"),\n\t\t\tPlan: \u0026hosting.PrivateDatabasePlanArgs{\n\t\t\t\tDuration:    pulumi.String(database.Prices[3].Duration),\n\t\t\t\tPlanCode:    pulumi.String(database.PlanCode),\n\t\t\t\tPricingMode: pulumi.String(database.SelectedPrices[0].PricingMode),\n\t\t\t\tConfigurations: hosting.PrivateDatabasePlanConfigurationArray{\n\t\t\t\t\t\u0026hosting.PrivateDatabasePlanConfigurationArgs{\n\t\t\t\t\t\tLabel: pulumi.String(\"dc\"),\n\t\t\t\t\t\tValue: pulumi.String(\"gra3\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026hosting.PrivateDatabasePlanConfigurationArgs{\n\t\t\t\t\t\tLabel: pulumi.String(\"engine\"),\n\t\t\t\t\t\tValue: pulumi.String(\"postgresql_12\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"privatedatabaseServiceName\", databasePrivateDatabase.ServiceName)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.MeFunctions;\nimport com.pulumi.ovh.Order.OrderFunctions;\nimport com.pulumi.ovh.Order.inputs.GetCartArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductPlanArgs;\nimport com.ovhcloud.pulumi.ovh.Hosting.PrivateDatabase;\nimport com.ovhcloud.pulumi.ovh.Hosting.PrivateDatabaseArgs;\nimport com.pulumi.ovh.Hosting.inputs.PrivateDatabasePlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myaccount = MeFunctions.getMe(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var mycart = OrderFunctions.getCart(GetCartArgs.builder()\n            .ovhSubsidiary(myaccount.ovhSubsidiary())\n            .build());\n\n        final var database = OrderFunctions.getCartProductPlan(GetCartProductPlanArgs.builder()\n            .cartId(mycart.id())\n            .priceCapacity(\"renew\")\n            .product(\"privateSQL\")\n            .planCode(\"private-sql-512-instance\")\n            .build());\n\n        var databasePrivateDatabase = new PrivateDatabase(\"databasePrivateDatabase\", PrivateDatabaseArgs.builder()\n            .ovhSubsidiary(mycart.ovhSubsidiary())\n            .displayName(\"Postgresql-12\")\n            .plan(PrivateDatabasePlanArgs.builder()\n                .duration(database.prices()[3].duration())\n                .planCode(database.planCode())\n                .pricingMode(database.selectedPrices()[0].pricingMode())\n                .configurations(                \n                    PrivateDatabasePlanConfigurationArgs.builder()\n                        .label(\"dc\")\n                        .value(\"gra3\")\n                        .build(),\n                    PrivateDatabasePlanConfigurationArgs.builder()\n                        .label(\"engine\")\n                        .value(\"postgresql_12\")\n                        .build())\n                .build())\n            .build());\n\n        ctx.export(\"privatedatabaseServiceName\", databasePrivateDatabase.serviceName());\n    }\n}\n```\n```yaml\nresources:\n  databasePrivateDatabase:\n    type: ovh:Hosting:PrivateDatabase\n    name: database\n    properties:\n      ovhSubsidiary: ${mycart.ovhSubsidiary}\n      displayName: Postgresql-12\n      plan:\n        duration: ${database.prices[3].duration}\n        planCode: ${database.planCode}\n        pricingMode: ${database.selectedPrices[0].pricingMode}\n        configurations:\n          - label: dc\n            value: gra3\n          - label: engine\n            value: postgresql_12\nvariables:\n  myaccount:\n    fn::invoke:\n      function: ovh:Me:getMe\n      arguments: {}\n  mycart:\n    fn::invoke:\n      function: ovh:Order:getCart\n      arguments:\n        ovhSubsidiary: ${myaccount.ovhSubsidiary}\n  database:\n    fn::invoke:\n      function: ovh:Order:getCartProductPlan\n      arguments:\n        cartId: ${mycart.id}\n        priceCapacity: renew\n        product: privateSQL\n        planCode: private-sql-512-instance\noutputs:\n  privatedatabaseServiceName: ${databasePrivateDatabase.serviceName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Webhosting database can be imported using the `service_name`. Using the following configuration:\n\nterraform\n\nimport {\n\n  to = ovh_hosting_privatedatabase.database\n\n  id = \"\u003cservice name\u003e\"\n\n}\n\nYou can then run:\n\nbash\n\n$ pulumi preview -generate-config-out=database.tf\n\n$ pulumi up\n\nThe file `database.tf` will then contain the imported resource's configuration, that can be copied next to the `import` block above. See https://developer.hashicorp.com/terraform/language/import/generating-configuration for more details.\n\n","properties":{"DatabaseURN":{"type":"string","description":"URN of the private database, used when writing IAM policies\n"},"cpu":{"type":"integer","description":"Number of CPU on your private database\n"},"datacenter":{"type":"string","description":"Datacenter where this private database is located\n"},"displayName":{"type":"string","description":"Name displayed in customer panel for your private database\n"},"hostname":{"type":"string","description":"Private database hostname\n"},"hostnameFtp":{"type":"string","description":"Private database FTP hostname\n"},"infrastructure":{"type":"string","description":"Infrastructure where service was stored\n"},"offer":{"type":"string","description":"Type of the private database offer\n"},"orders":{"type":"array","items":{"$ref":"#/types/ovh:Hosting/PrivateDatabaseOrder:PrivateDatabaseOrder"},"description":"Details about your Order\n"},"ovhSubsidiary":{"type":"string","description":"OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json)\n"},"paymentMean":{"type":"string","description":"Ovh payment mode\n","deprecationMessage":"This field is not anymore used since the API has been deprecated in favor of /payment/mean. Now, the default payment mean is used."},"plan":{"$ref":"#/types/ovh:Hosting/PrivateDatabasePlan:PrivateDatabasePlan","description":"Product Plan to order\n"},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:Hosting/PrivateDatabasePlanOption:PrivateDatabasePlanOption"},"description":"Product Plan to order\n"},"port":{"type":"integer","description":"Private database service port\n"},"portFtp":{"type":"integer","description":"Private database FTP port\n"},"quotaSize":{"type":"integer","description":"Space allowed (in MB) on your private database\n"},"quotaUsed":{"type":"integer","description":"Sapce used (in MB) on your private database\n"},"ram":{"type":"integer","description":"Amount of ram (in MB) on your private database\n"},"server":{"type":"string","description":"Private database server name\n"},"serviceName":{"type":"string","description":"Service name\n"},"state":{"type":"string","description":"Private database state\n"},"type":{"type":"string","description":"Private database type\n"},"version":{"type":"string","description":"Private database available versions\n"},"versionLabel":{"type":"string","description":"Private database version label\n"},"versionNumber":{"type":"number","description":"Private database version number\n"}},"required":["cpu","datacenter","displayName","hostname","hostnameFtp","infrastructure","offer","orders","ovhSubsidiary","plan","port","portFtp","quotaSize","quotaUsed","ram","server","serviceName","state","type","DatabaseURN","version","versionLabel","versionNumber"],"inputProperties":{"displayName":{"type":"string","description":"Name displayed in customer panel for your private database\n"},"orders":{"type":"array","items":{"$ref":"#/types/ovh:Hosting/PrivateDatabaseOrder:PrivateDatabaseOrder"},"description":"Details about your Order\n"},"ovhSubsidiary":{"type":"string","description":"OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json)\n","willReplaceOnChanges":true},"paymentMean":{"type":"string","description":"Ovh payment mode\n","deprecationMessage":"This field is not anymore used since the API has been deprecated in favor of /payment/mean. Now, the default payment mean is used.","willReplaceOnChanges":true},"plan":{"$ref":"#/types/ovh:Hosting/PrivateDatabasePlan:PrivateDatabasePlan","description":"Product Plan to order\n","willReplaceOnChanges":true},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:Hosting/PrivateDatabasePlanOption:PrivateDatabasePlanOption"},"description":"Product Plan to order\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"Service name\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering PrivateDatabase resources.\n","properties":{"DatabaseURN":{"type":"string","description":"URN of the private database, used when writing IAM policies\n"},"cpu":{"type":"integer","description":"Number of CPU on your private database\n"},"datacenter":{"type":"string","description":"Datacenter where this private database is located\n"},"displayName":{"type":"string","description":"Name displayed in customer panel for your private database\n"},"hostname":{"type":"string","description":"Private database hostname\n"},"hostnameFtp":{"type":"string","description":"Private database FTP hostname\n"},"infrastructure":{"type":"string","description":"Infrastructure where service was stored\n"},"offer":{"type":"string","description":"Type of the private database offer\n"},"orders":{"type":"array","items":{"$ref":"#/types/ovh:Hosting/PrivateDatabaseOrder:PrivateDatabaseOrder"},"description":"Details about your Order\n"},"ovhSubsidiary":{"type":"string","description":"OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json)\n","willReplaceOnChanges":true},"paymentMean":{"type":"string","description":"Ovh payment mode\n","deprecationMessage":"This field is not anymore used since the API has been deprecated in favor of /payment/mean. Now, the default payment mean is used.","willReplaceOnChanges":true},"plan":{"$ref":"#/types/ovh:Hosting/PrivateDatabasePlan:PrivateDatabasePlan","description":"Product Plan to order\n","willReplaceOnChanges":true},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:Hosting/PrivateDatabasePlanOption:PrivateDatabasePlanOption"},"description":"Product Plan to order\n","willReplaceOnChanges":true},"port":{"type":"integer","description":"Private database service port\n"},"portFtp":{"type":"integer","description":"Private database FTP port\n"},"quotaSize":{"type":"integer","description":"Space allowed (in MB) on your private database\n"},"quotaUsed":{"type":"integer","description":"Sapce used (in MB) on your private database\n"},"ram":{"type":"integer","description":"Amount of ram (in MB) on your private database\n"},"server":{"type":"string","description":"Private database server name\n"},"serviceName":{"type":"string","description":"Service name\n"},"state":{"type":"string","description":"Private database state\n"},"type":{"type":"string","description":"Private database type\n"},"version":{"type":"string","description":"Private database available versions\n"},"versionLabel":{"type":"string","description":"Private database version label\n"},"versionNumber":{"type":"number","description":"Private database version number\n"}},"type":"object"}},"ovh:Hosting/privateDatabaseAllowlist:PrivateDatabaseAllowlist":{"description":"Create a new IP whitelist on your private cloud database instance.\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 ip = new ovh.hosting.PrivateDatabaseAllowlist(\"ip\", {\n    serviceName: \"XXXXXX\",\n    ip: \"1.2.3.4\",\n    name: \"A name for your IP address\",\n    service: true,\n    sftp: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nip = ovh.hosting.PrivateDatabaseAllowlist(\"ip\",\n    service_name=\"XXXXXX\",\n    ip=\"1.2.3.4\",\n    name=\"A name for your IP address\",\n    service=True,\n    sftp=True)\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 ip = new Ovh.Hosting.PrivateDatabaseAllowlist(\"ip\", new()\n    {\n        ServiceName = \"XXXXXX\",\n        Ip = \"1.2.3.4\",\n        Name = \"A name for your IP address\",\n        Service = true,\n        Sftp = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/hosting\"\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 := hosting.NewPrivateDatabaseAllowlist(ctx, \"ip\", \u0026hosting.PrivateDatabaseAllowlistArgs{\n\t\t\tServiceName: pulumi.String(\"XXXXXX\"),\n\t\t\tIp:          pulumi.String(\"1.2.3.4\"),\n\t\t\tName:        pulumi.String(\"A name for your IP address\"),\n\t\t\tService:     pulumi.Bool(true),\n\t\t\tSftp:        pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Hosting.PrivateDatabaseAllowlist;\nimport com.ovhcloud.pulumi.ovh.Hosting.PrivateDatabaseAllowlistArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var ip = new PrivateDatabaseAllowlist(\"ip\", PrivateDatabaseAllowlistArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .ip(\"1.2.3.4\")\n            .name(\"A name for your IP address\")\n            .service(true)\n            .sftp(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ip:\n    type: ovh:Hosting:PrivateDatabaseAllowlist\n    properties:\n      serviceName: XXXXXX\n      ip: 1.2.3.4\n      name: A name for your IP address\n      service: true\n      sftp: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud database whitelist can be imported using the `service_name` and the `ip`, separated by \"/\" E.g.,\n\n```sh\n$ pulumi import ovh:Hosting/privateDatabaseAllowlist:PrivateDatabaseAllowlist ip service_name/ip\n```\n","properties":{"ip":{"type":"string","description":"The whitelisted IP in your instance.\n"},"name":{"type":"string","description":"Custom name for your Whitelisted IP.\n"},"service":{"type":"boolean","description":"Authorize this IP to access service port. Values can be `true` or `false`\n"},"serviceName":{"type":"string","description":"The internal name of your private database.\n"},"sftp":{"type":"boolean","description":"Authorize this IP to access SFTP port. Values can be `true` or `false`\n"}},"required":["ip","name","service","serviceName","sftp"],"inputProperties":{"ip":{"type":"string","description":"The whitelisted IP in your instance.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Custom name for your Whitelisted IP.\n"},"service":{"type":"boolean","description":"Authorize this IP to access service port. Values can be `true` or `false`\n"},"serviceName":{"type":"string","description":"The internal name of your private database.\n"},"sftp":{"type":"boolean","description":"Authorize this IP to access SFTP port. Values can be `true` or `false`\n"}},"requiredInputs":["ip","service","serviceName","sftp"],"stateInputs":{"description":"Input properties used for looking up and filtering PrivateDatabaseAllowlist resources.\n","properties":{"ip":{"type":"string","description":"The whitelisted IP in your instance.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Custom name for your Whitelisted IP.\n"},"service":{"type":"boolean","description":"Authorize this IP to access service port. Values can be `true` or `false`\n"},"serviceName":{"type":"string","description":"The internal name of your private database.\n"},"sftp":{"type":"boolean","description":"Authorize this IP to access SFTP port. Values can be `true` or `false`\n"}},"type":"object"}},"ovh:Hosting/privateDatabaseDb:PrivateDatabaseDb":{"description":"Create a new database on your private cloud database service.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst database = new ovh.hosting.PrivateDatabaseDb(\"database\", {\n    serviceName: \"XXXXXX\",\n    databaseName: \"XXXXXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ndatabase = ovh.hosting.PrivateDatabaseDb(\"database\",\n    service_name=\"XXXXXX\",\n    database_name=\"XXXXXX\")\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 database = new Ovh.Hosting.PrivateDatabaseDb(\"database\", new()\n    {\n        ServiceName = \"XXXXXX\",\n        DatabaseName = \"XXXXXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/hosting\"\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 := hosting.NewPrivateDatabaseDb(ctx, \"database\", \u0026hosting.PrivateDatabaseDbArgs{\n\t\t\tServiceName:  pulumi.String(\"XXXXXX\"),\n\t\t\tDatabaseName: pulumi.String(\"XXXXXX\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Hosting.PrivateDatabaseDb;\nimport com.ovhcloud.pulumi.ovh.Hosting.PrivateDatabaseDbArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var database = new PrivateDatabaseDb(\"database\", PrivateDatabaseDbArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .databaseName(\"XXXXXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  database:\n    type: ovh:Hosting:PrivateDatabaseDb\n    properties:\n      serviceName: XXXXXX\n      databaseName: XXXXXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Webhosting database can be imported using the `service_name` and the `database_name`, separated by \"/\" E.g.,\n\n```sh\n$ pulumi import ovh:Hosting/privateDatabaseDb:PrivateDatabaseDb database service_name/database_name\n```\n","properties":{"databaseName":{"type":"string","description":"Name of your new database\n"},"serviceName":{"type":"string","description":"The internal name of your private database.\n"}},"required":["databaseName","serviceName"],"inputProperties":{"databaseName":{"type":"string","description":"Name of your new database\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The internal name of your private database.\n","willReplaceOnChanges":true}},"requiredInputs":["databaseName","serviceName"],"stateInputs":{"description":"Input properties used for looking up and filtering PrivateDatabaseDb resources.\n","properties":{"databaseName":{"type":"string","description":"Name of your new database\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The internal name of your private database.\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:Hosting/privateDatabaseUser:PrivateDatabaseUser":{"description":"Create a new user on your private cloud database instance.\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 user = new ovh.hosting.PrivateDatabaseUser(\"user\", {\n    serviceName: \"XXXXXX\",\n    password: \"XXXXXX\",\n    userName: \"XXXXXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nuser = ovh.hosting.PrivateDatabaseUser(\"user\",\n    service_name=\"XXXXXX\",\n    password=\"XXXXXX\",\n    user_name=\"XXXXXX\")\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 user = new Ovh.Hosting.PrivateDatabaseUser(\"user\", new()\n    {\n        ServiceName = \"XXXXXX\",\n        Password = \"XXXXXX\",\n        UserName = \"XXXXXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/hosting\"\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 := hosting.NewPrivateDatabaseUser(ctx, \"user\", \u0026hosting.PrivateDatabaseUserArgs{\n\t\t\tServiceName: pulumi.String(\"XXXXXX\"),\n\t\t\tPassword:    pulumi.String(\"XXXXXX\"),\n\t\t\tUserName:    pulumi.String(\"XXXXXX\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Hosting.PrivateDatabaseUser;\nimport com.ovhcloud.pulumi.ovh.Hosting.PrivateDatabaseUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var user = new PrivateDatabaseUser(\"user\", PrivateDatabaseUserArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .password(\"XXXXXX\")\n            .userName(\"XXXXXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  user:\n    type: ovh:Hosting:PrivateDatabaseUser\n    properties:\n      serviceName: XXXXXX\n      password: XXXXXX\n      userName: XXXXXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud database user can be imported using the `service_name` and the `user_name`, separated by \"/\" E.g.,\n\n```sh\n$ pulumi import ovh:Hosting/privateDatabaseUser:PrivateDatabaseUser user service_name/user_name\n```\n","properties":{"password":{"type":"string","description":"Password for the new user (alphanumeric, minimum one number and 8 characters minimum)\n","secret":true},"serviceName":{"type":"string","description":"The internal name of your private database.\n"},"userName":{"type":"string","description":"User name used to connect on your databases\n"}},"required":["password","serviceName","userName"],"inputProperties":{"password":{"type":"string","description":"Password for the new user (alphanumeric, minimum one number and 8 characters minimum)\n","secret":true,"willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The internal name of your private database.\n","willReplaceOnChanges":true},"userName":{"type":"string","description":"User name used to connect on your databases\n","willReplaceOnChanges":true}},"requiredInputs":["password","serviceName","userName"],"stateInputs":{"description":"Input properties used for looking up and filtering PrivateDatabaseUser resources.\n","properties":{"password":{"type":"string","description":"Password for the new user (alphanumeric, minimum one number and 8 characters minimum)\n","secret":true,"willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The internal name of your private database.\n","willReplaceOnChanges":true},"userName":{"type":"string","description":"User name used to connect on your databases\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:Hosting/privateDatabaseUserGrant:PrivateDatabaseUserGrant":{"description":"Add grant on a database in your private cloud database instance.\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 userGrant = new ovh.hosting.PrivateDatabaseUserGrant(\"user_grant\", {\n    serviceName: \"XXXXXX\",\n    userName: \"terraform\",\n    databaseName: \"ovhcloud\",\n    grant: \"admin\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nuser_grant = ovh.hosting.PrivateDatabaseUserGrant(\"user_grant\",\n    service_name=\"XXXXXX\",\n    user_name=\"terraform\",\n    database_name=\"ovhcloud\",\n    grant=\"admin\")\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 userGrant = new Ovh.Hosting.PrivateDatabaseUserGrant(\"user_grant\", new()\n    {\n        ServiceName = \"XXXXXX\",\n        UserName = \"terraform\",\n        DatabaseName = \"ovhcloud\",\n        Grant = \"admin\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/hosting\"\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 := hosting.NewPrivateDatabaseUserGrant(ctx, \"user_grant\", \u0026hosting.PrivateDatabaseUserGrantArgs{\n\t\t\tServiceName:  pulumi.String(\"XXXXXX\"),\n\t\t\tUserName:     pulumi.String(\"terraform\"),\n\t\t\tDatabaseName: pulumi.String(\"ovhcloud\"),\n\t\t\tGrant:        pulumi.String(\"admin\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Hosting.PrivateDatabaseUserGrant;\nimport com.ovhcloud.pulumi.ovh.Hosting.PrivateDatabaseUserGrantArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var userGrant = new PrivateDatabaseUserGrant(\"userGrant\", PrivateDatabaseUserGrantArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .userName(\"terraform\")\n            .databaseName(\"ovhcloud\")\n            .grant(\"admin\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  userGrant:\n    type: ovh:Hosting:PrivateDatabaseUserGrant\n    name: user_grant\n    properties:\n      serviceName: XXXXXX\n      userName: terraform\n      databaseName: ovhcloud\n      grant: admin\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud database user's grant can be imported using the `service_name`, the `user_name`, the `database_name` and the `grant`, separated by \"/\" E.g.,\n\n```sh\n$ pulumi import ovh:Hosting/privateDatabaseUserGrant:PrivateDatabaseUserGrant user service_name/user_name/database_name/grant\n```\n","properties":{"databaseName":{"type":"string","description":"Database name where add grant.\n"},"grant":{"type":"string","description":"Database name where add grant. Values can be:\n- admin\n- none\n- ro\n- rw\n"},"serviceName":{"type":"string","description":"The internal name of your private database.\n"},"userName":{"type":"string","description":"User name used to connect on your databases.\n"}},"required":["databaseName","grant","serviceName","userName"],"inputProperties":{"databaseName":{"type":"string","description":"Database name where add grant.\n","willReplaceOnChanges":true},"grant":{"type":"string","description":"Database name where add grant. Values can be:\n- admin\n- none\n- ro\n- rw\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The internal name of your private database.\n","willReplaceOnChanges":true},"userName":{"type":"string","description":"User name used to connect on your databases.\n","willReplaceOnChanges":true}},"requiredInputs":["databaseName","grant","serviceName","userName"],"stateInputs":{"description":"Input properties used for looking up and filtering PrivateDatabaseUserGrant resources.\n","properties":{"databaseName":{"type":"string","description":"Database name where add grant.\n","willReplaceOnChanges":true},"grant":{"type":"string","description":"Database name where add grant. Values can be:\n- admin\n- none\n- ro\n- rw\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The internal name of your private database.\n","willReplaceOnChanges":true},"userName":{"type":"string","description":"User name used to connect on your databases.\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:Iam/permissionsGroup:PermissionsGroup":{"description":"Create am IAM permissions group.\n\n## Import\n\nAn IAM permissions group can be imported using the `id` E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Iam/permissionsGroup:PermissionsGroup read_vps permissions_group_id\n```\n\n","properties":{"allows":{"type":"array","items":{"type":"string"},"description":"Set of actions allowed by the permissions group.\n"},"createdAt":{"type":"string","description":"Creation date of this group.\n"},"denies":{"type":"array","items":{"type":"string"},"description":"Set of actions that will be denied no matter what permissions group exists.\n"},"description":{"type":"string","description":"Group description.\n"},"excepts":{"type":"array","items":{"type":"string"},"description":"Set of actions that will be subtracted from the `allow` list.\n"},"name":{"type":"string","description":"Name of the permissions group.\n"},"owner":{"type":"string","description":"Owner of the permissions group.\n"},"updatedAt":{"type":"string","description":"Date of the last update of this group.\n"},"urn":{"type":"string","description":"URN of the permissions group.\n"}},"required":["createdAt","description","name","owner","updatedAt","urn"],"inputProperties":{"allows":{"type":"array","items":{"type":"string"},"description":"Set of actions allowed by the permissions group.\n"},"denies":{"type":"array","items":{"type":"string"},"description":"Set of actions that will be denied no matter what permissions group exists.\n"},"description":{"type":"string","description":"Group description.\n"},"excepts":{"type":"array","items":{"type":"string"},"description":"Set of actions that will be subtracted from the `allow` list.\n"},"name":{"type":"string","description":"Name of the permissions group.\n"},"updatedAt":{"type":"string","description":"Date of the last update of this group.\n"}},"requiredInputs":["description"],"stateInputs":{"description":"Input properties used for looking up and filtering PermissionsGroup resources.\n","properties":{"allows":{"type":"array","items":{"type":"string"},"description":"Set of actions allowed by the permissions group.\n"},"createdAt":{"type":"string","description":"Creation date of this group.\n"},"denies":{"type":"array","items":{"type":"string"},"description":"Set of actions that will be denied no matter what permissions group exists.\n"},"description":{"type":"string","description":"Group description.\n"},"excepts":{"type":"array","items":{"type":"string"},"description":"Set of actions that will be subtracted from the `allow` list.\n"},"name":{"type":"string","description":"Name of the permissions group.\n"},"owner":{"type":"string","description":"Owner of the permissions group.\n"},"updatedAt":{"type":"string","description":"Date of the last update of this group.\n"},"urn":{"type":"string","description":"URN of the permissions group.\n"}},"type":"object"}},"ovh:Iam/policy:Policy":{"description":"Creates an IAM policy.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst account = ovh.Me.getMe({});\nconst myGroup = new ovh.me.IdentityGroup(\"my_group\", {\n    name: \"my_group\",\n    description: \"my_group created in Terraform\",\n});\nconst manager = new ovh.iam.Policy(\"manager\", {\n    name: \"allow_ovh_manager\",\n    description: \"Users are allowed to use the OVH manager\",\n    identities: [myGroup.GroupURN],\n    resources: [account.then(account =\u003e account.AccountURN)],\n    allows: [\n        \"account:apiovh:me/get\",\n        \"account:apiovh:me/supportLevel/get\",\n        \"account:apiovh:me/certificates/get\",\n        \"account:apiovh:me/tag/get\",\n        \"account:apiovh:services/get\",\n        \"account:apiovh:*\",\n    ],\n});\nconst ipRestrictedProdAccess = new ovh.iam.Policy(\"ip_restricted_prod_access\", {\n    name: \"ip_restricted_prod_access\",\n    description: \"Allow access only from a specific IP to resources tagged prod\",\n    identities: [myGroup.GroupURN],\n    resources: [\"urn:v1:eu:resource:vps:*\"],\n    allows: [\"vps:apiovh:*\"],\n    conditions: {\n        operator: \"MATCH\",\n        values: {\n            \"resource.Tag(environment)\": \"prod\",\n            \"request.IP\": \"192.72.0.1\",\n        },\n    },\n});\nconst workdaysAndIpRestrictedAndExpiring = new ovh.iam.Policy(\"workdays_and_ip_restricted_and_expiring\", {\n    name: \"workdays_and_ip_restricted_and_expiring\",\n    description: \"Allow access only on workdays, expires end of 2026\",\n    identities: [myGroup.GroupURN],\n    resources: [\"urn:v1:eu:resource:vps:*\"],\n    allows: [\"vps:apiovh:*\"],\n    conditions: {\n        operator: \"AND\",\n        conditions: [\n            {\n                operator: \"MATCH\",\n                values: {\n                    \"date(Europe/Paris).WeekDay.In\": \"monday,tuesday,wednesday,thursday,friday\",\n                },\n            },\n            {\n                operator: \"MATCH\",\n                values: {\n                    \"request.IP\": \"192.72.0.1\",\n                },\n            },\n        ],\n    },\n    expiredAt: \"2026-12-31T23:59:59Z\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\naccount = ovh.Me.get_me()\nmy_group = ovh.me.IdentityGroup(\"my_group\",\n    name=\"my_group\",\n    description=\"my_group created in Terraform\")\nmanager = ovh.iam.Policy(\"manager\",\n    name=\"allow_ovh_manager\",\n    description=\"Users are allowed to use the OVH manager\",\n    identities=[my_group.group_urn],\n    resources=[account.account_urn],\n    allows=[\n        \"account:apiovh:me/get\",\n        \"account:apiovh:me/supportLevel/get\",\n        \"account:apiovh:me/certificates/get\",\n        \"account:apiovh:me/tag/get\",\n        \"account:apiovh:services/get\",\n        \"account:apiovh:*\",\n    ])\nip_restricted_prod_access = ovh.iam.Policy(\"ip_restricted_prod_access\",\n    name=\"ip_restricted_prod_access\",\n    description=\"Allow access only from a specific IP to resources tagged prod\",\n    identities=[my_group.group_urn],\n    resources=[\"urn:v1:eu:resource:vps:*\"],\n    allows=[\"vps:apiovh:*\"],\n    conditions={\n        \"operator\": \"MATCH\",\n        \"values\": {\n            \"resource.Tag(environment)\": \"prod\",\n            \"request.IP\": \"192.72.0.1\",\n        },\n    })\nworkdays_and_ip_restricted_and_expiring = ovh.iam.Policy(\"workdays_and_ip_restricted_and_expiring\",\n    name=\"workdays_and_ip_restricted_and_expiring\",\n    description=\"Allow access only on workdays, expires end of 2026\",\n    identities=[my_group.group_urn],\n    resources=[\"urn:v1:eu:resource:vps:*\"],\n    allows=[\"vps:apiovh:*\"],\n    conditions={\n        \"operator\": \"AND\",\n        \"conditions\": [\n            {\n                \"operator\": \"MATCH\",\n                \"values\": {\n                    \"date(Europe/Paris).WeekDay.In\": \"monday,tuesday,wednesday,thursday,friday\",\n                },\n            },\n            {\n                \"operator\": \"MATCH\",\n                \"values\": {\n                    \"request.IP\": \"192.72.0.1\",\n                },\n            },\n        ],\n    },\n    expired_at=\"2026-12-31T23:59:59Z\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var account = Ovh.Me.GetMe.Invoke();\n\n    var myGroup = new Ovh.Me.IdentityGroup(\"my_group\", new()\n    {\n        Name = \"my_group\",\n        Description = \"my_group created in Terraform\",\n    });\n\n    var manager = new Ovh.Iam.Policy(\"manager\", new()\n    {\n        Name = \"allow_ovh_manager\",\n        Description = \"Users are allowed to use the OVH manager\",\n        Identities = new[]\n        {\n            myGroup.GroupURN,\n        },\n        Resources = new[]\n        {\n            account.Apply(getMeResult =\u003e getMeResult.AccountURN),\n        },\n        Allows = new[]\n        {\n            \"account:apiovh:me/get\",\n            \"account:apiovh:me/supportLevel/get\",\n            \"account:apiovh:me/certificates/get\",\n            \"account:apiovh:me/tag/get\",\n            \"account:apiovh:services/get\",\n            \"account:apiovh:*\",\n        },\n    });\n\n    var ipRestrictedProdAccess = new Ovh.Iam.Policy(\"ip_restricted_prod_access\", new()\n    {\n        Name = \"ip_restricted_prod_access\",\n        Description = \"Allow access only from a specific IP to resources tagged prod\",\n        Identities = new[]\n        {\n            myGroup.GroupURN,\n        },\n        Resources = new[]\n        {\n            \"urn:v1:eu:resource:vps:*\",\n        },\n        Allows = new[]\n        {\n            \"vps:apiovh:*\",\n        },\n        Conditions = new Ovh.Iam.Inputs.PolicyConditionsArgs\n        {\n            Operator = \"MATCH\",\n            Values = \n            {\n                { \"resource.Tag(environment)\", \"prod\" },\n                { \"request.IP\", \"192.72.0.1\" },\n            },\n        },\n    });\n\n    var workdaysAndIpRestrictedAndExpiring = new Ovh.Iam.Policy(\"workdays_and_ip_restricted_and_expiring\", new()\n    {\n        Name = \"workdays_and_ip_restricted_and_expiring\",\n        Description = \"Allow access only on workdays, expires end of 2026\",\n        Identities = new[]\n        {\n            myGroup.GroupURN,\n        },\n        Resources = new[]\n        {\n            \"urn:v1:eu:resource:vps:*\",\n        },\n        Allows = new[]\n        {\n            \"vps:apiovh:*\",\n        },\n        Conditions = new Ovh.Iam.Inputs.PolicyConditionsArgs\n        {\n            Operator = \"AND\",\n            Conditions = new[]\n            {\n                new Ovh.Iam.Inputs.PolicyConditionsConditionArgs\n                {\n                    Operator = \"MATCH\",\n                    Values = \n                    {\n                        { \"date(Europe/Paris).WeekDay.In\", \"monday,tuesday,wednesday,thursday,friday\" },\n                    },\n                },\n                new Ovh.Iam.Inputs.PolicyConditionsConditionArgs\n                {\n                    Operator = \"MATCH\",\n                    Values = \n                    {\n                        { \"request.IP\", \"192.72.0.1\" },\n                    },\n                },\n            },\n        },\n        ExpiredAt = \"2026-12-31T23:59:59Z\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iam\"\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/me\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\taccount, err := me.GetMe(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyGroup, err := me.NewIdentityGroup(ctx, \"my_group\", \u0026me.IdentityGroupArgs{\n\t\t\tName:        pulumi.String(\"my_group\"),\n\t\t\tDescription: pulumi.String(\"my_group created in Terraform\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewPolicy(ctx, \"manager\", \u0026iam.PolicyArgs{\n\t\t\tName:        pulumi.String(\"allow_ovh_manager\"),\n\t\t\tDescription: pulumi.String(\"Users are allowed to use the OVH manager\"),\n\t\t\tIdentities: pulumi.StringArray{\n\t\t\t\tmyGroup.GroupURN,\n\t\t\t},\n\t\t\tResources: pulumi.StringArray{\n\t\t\t\tpulumi.String(account.AccountURN),\n\t\t\t},\n\t\t\tAllows: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"account:apiovh:me/get\"),\n\t\t\t\tpulumi.String(\"account:apiovh:me/supportLevel/get\"),\n\t\t\t\tpulumi.String(\"account:apiovh:me/certificates/get\"),\n\t\t\t\tpulumi.String(\"account:apiovh:me/tag/get\"),\n\t\t\t\tpulumi.String(\"account:apiovh:services/get\"),\n\t\t\t\tpulumi.String(\"account:apiovh:*\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewPolicy(ctx, \"ip_restricted_prod_access\", \u0026iam.PolicyArgs{\n\t\t\tName:        pulumi.String(\"ip_restricted_prod_access\"),\n\t\t\tDescription: pulumi.String(\"Allow access only from a specific IP to resources tagged prod\"),\n\t\t\tIdentities: pulumi.StringArray{\n\t\t\t\tmyGroup.GroupURN,\n\t\t\t},\n\t\t\tResources: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"urn:v1:eu:resource:vps:*\"),\n\t\t\t},\n\t\t\tAllows: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"vps:apiovh:*\"),\n\t\t\t},\n\t\t\tConditions: \u0026iam.PolicyConditionsArgs{\n\t\t\t\tOperator: pulumi.String(\"MATCH\"),\n\t\t\t\tValues: pulumi.StringMap{\n\t\t\t\t\t\"resource.Tag(environment)\": pulumi.String(\"prod\"),\n\t\t\t\t\t\"request.IP\":                pulumi.String(\"192.72.0.1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewPolicy(ctx, \"workdays_and_ip_restricted_and_expiring\", \u0026iam.PolicyArgs{\n\t\t\tName:        pulumi.String(\"workdays_and_ip_restricted_and_expiring\"),\n\t\t\tDescription: pulumi.String(\"Allow access only on workdays, expires end of 2026\"),\n\t\t\tIdentities: pulumi.StringArray{\n\t\t\t\tmyGroup.GroupURN,\n\t\t\t},\n\t\t\tResources: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"urn:v1:eu:resource:vps:*\"),\n\t\t\t},\n\t\t\tAllows: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"vps:apiovh:*\"),\n\t\t\t},\n\t\t\tConditions: \u0026iam.PolicyConditionsArgs{\n\t\t\t\tOperator: pulumi.String(\"AND\"),\n\t\t\t\tConditions: iam.PolicyConditionsConditionArray{\n\t\t\t\t\t\u0026iam.PolicyConditionsConditionArgs{\n\t\t\t\t\t\tOperator: pulumi.String(\"MATCH\"),\n\t\t\t\t\t\tValues: pulumi.StringMap{\n\t\t\t\t\t\t\t\"date(Europe/Paris).WeekDay.In\": pulumi.String(\"monday,tuesday,wednesday,thursday,friday\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\u0026iam.PolicyConditionsConditionArgs{\n\t\t\t\t\t\tOperator: pulumi.String(\"MATCH\"),\n\t\t\t\t\t\tValues: pulumi.StringMap{\n\t\t\t\t\t\t\t\"request.IP\": pulumi.String(\"192.72.0.1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tExpiredAt: pulumi.String(\"2026-12-31T23:59:59Z\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.MeFunctions;\nimport com.ovhcloud.pulumi.ovh.Me.IdentityGroup;\nimport com.ovhcloud.pulumi.ovh.Me.IdentityGroupArgs;\nimport com.ovhcloud.pulumi.ovh.Iam.Policy;\nimport com.ovhcloud.pulumi.ovh.Iam.PolicyArgs;\nimport com.pulumi.ovh.Iam.inputs.PolicyConditionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var account = MeFunctions.getMe(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var myGroup = new IdentityGroup(\"myGroup\", IdentityGroupArgs.builder()\n            .name(\"my_group\")\n            .description(\"my_group created in Terraform\")\n            .build());\n\n        var manager = new Policy(\"manager\", PolicyArgs.builder()\n            .name(\"allow_ovh_manager\")\n            .description(\"Users are allowed to use the OVH manager\")\n            .identities(myGroup.GroupURN())\n            .resources(account.AccountURN())\n            .allows(            \n                \"account:apiovh:me/get\",\n                \"account:apiovh:me/supportLevel/get\",\n                \"account:apiovh:me/certificates/get\",\n                \"account:apiovh:me/tag/get\",\n                \"account:apiovh:services/get\",\n                \"account:apiovh:*\")\n            .build());\n\n        var ipRestrictedProdAccess = new Policy(\"ipRestrictedProdAccess\", PolicyArgs.builder()\n            .name(\"ip_restricted_prod_access\")\n            .description(\"Allow access only from a specific IP to resources tagged prod\")\n            .identities(myGroup.GroupURN())\n            .resources(\"urn:v1:eu:resource:vps:*\")\n            .allows(\"vps:apiovh:*\")\n            .conditions(PolicyConditionsArgs.builder()\n                .operator(\"MATCH\")\n                .values(Map.ofEntries(\n                    Map.entry(\"resource.Tag(environment)\", \"prod\"),\n                    Map.entry(\"request.IP\", \"192.72.0.1\")\n                ))\n                .build())\n            .build());\n\n        var workdaysAndIpRestrictedAndExpiring = new Policy(\"workdaysAndIpRestrictedAndExpiring\", PolicyArgs.builder()\n            .name(\"workdays_and_ip_restricted_and_expiring\")\n            .description(\"Allow access only on workdays, expires end of 2026\")\n            .identities(myGroup.GroupURN())\n            .resources(\"urn:v1:eu:resource:vps:*\")\n            .allows(\"vps:apiovh:*\")\n            .conditions(PolicyConditionsArgs.builder()\n                .operator(\"AND\")\n                .conditions(                \n                    PolicyConditionsConditionArgs.builder()\n                        .operator(\"MATCH\")\n                        .values(Map.of(\"date(Europe/Paris).WeekDay.In\", \"monday,tuesday,wednesday,thursday,friday\"))\n                        .build(),\n                    PolicyConditionsConditionArgs.builder()\n                        .operator(\"MATCH\")\n                        .values(Map.of(\"request.IP\", \"192.72.0.1\"))\n                        .build())\n                .build())\n            .expiredAt(\"2026-12-31T23:59:59Z\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myGroup:\n    type: ovh:Me:IdentityGroup\n    name: my_group\n    properties:\n      name: my_group\n      description: my_group created in Terraform\n  manager:\n    type: ovh:Iam:Policy\n    properties:\n      name: allow_ovh_manager\n      description: Users are allowed to use the OVH manager\n      identities:\n        - ${myGroup.GroupURN}\n      resources:\n        - ${account.AccountURN}\n      allows:\n        - account:apiovh:me/get\n        - account:apiovh:me/supportLevel/get\n        - account:apiovh:me/certificates/get\n        - account:apiovh:me/tag/get\n        - account:apiovh:services/get\n        - account:apiovh:*\n  ipRestrictedProdAccess:\n    type: ovh:Iam:Policy\n    name: ip_restricted_prod_access\n    properties:\n      name: ip_restricted_prod_access\n      description: Allow access only from a specific IP to resources tagged prod\n      identities:\n        - ${myGroup.GroupURN}\n      resources:\n        - urn:v1:eu:resource:vps:*\n      allows:\n        - vps:apiovh:*\n      conditions:\n        operator: MATCH\n        values:\n          resource.Tag(environment): prod\n          request.IP: 192.72.0.1\n  workdaysAndIpRestrictedAndExpiring:\n    type: ovh:Iam:Policy\n    name: workdays_and_ip_restricted_and_expiring\n    properties:\n      name: workdays_and_ip_restricted_and_expiring\n      description: Allow access only on workdays, expires end of 2026\n      identities:\n        - ${myGroup.GroupURN}\n      resources:\n        - urn:v1:eu:resource:vps:*\n      allows:\n        - vps:apiovh:*\n      conditions:\n        operator: AND\n        conditions:\n          - operator: MATCH\n            values:\n              date(Europe/Paris).WeekDay.In: monday,tuesday,wednesday,thursday,friday\n          - operator: MATCH\n            values:\n              request.IP: 192.72.0.1\n      expiredAt: 2026-12-31T23:59:59Z\nvariables:\n  account:\n    fn::invoke:\n      function: ovh:Me:getMe\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAn IAM policy can be imported using the `id` E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Iam/policy:Policy manager policy_id\n```\n\n","properties":{"allows":{"type":"array","items":{"type":"string"},"description":"List of actions allowed on resources by identities\n"},"conditions":{"$ref":"#/types/ovh:Iam/PolicyConditions:PolicyConditions","description":"Conditions restrict permissions based on resource tags, date/time, or request attributes. See Conditions below.\n"},"createdAt":{"type":"string","description":"Creation date of this group.\n"},"denies":{"type":"array","items":{"type":"string"},"description":"List of actions that will always be denied even if also allowed by this policy or another one.\n"},"description":{"type":"string","description":"Description of the policy\n"},"excepts":{"type":"array","items":{"type":"string"},"description":"List of overrides of action that must not be allowed even if they are caught by allow. Only makes sens if allow contains wildcards.\n"},"expiredAt":{"type":"string","description":"Expiration date of the policy in RFC3339 format (e.g., `2025-12-31T23:59:59Z`). After this date, the policy will no longer be applied.\n"},"identities":{"type":"array","items":{"type":"string"},"description":"List of identities affected by the policy\n"},"name":{"type":"string","description":"Name of the policy, must be unique\n"},"owner":{"type":"string","description":"Owner of the policy.\n"},"permissionsGroups":{"type":"array","items":{"type":"string"},"description":"Set of permissions groups included in the policy. At evaluation, these permissions groups are each evaluated independently (notably, excepts actions only affect actions in the same permission group).\n"},"readOnly":{"type":"boolean","description":"Indicates that the policy is a default one.\n"},"resources":{"type":"array","items":{"type":"string"},"description":"List of resources affected by the policy\n"},"updatedAt":{"type":"string","description":"Date of the last update of this group.\n"}},"required":["createdAt","identities","name","owner","readOnly","resources","updatedAt"],"inputProperties":{"allows":{"type":"array","items":{"type":"string"},"description":"List of actions allowed on resources by identities\n"},"conditions":{"$ref":"#/types/ovh:Iam/PolicyConditions:PolicyConditions","description":"Conditions restrict permissions based on resource tags, date/time, or request attributes. See Conditions below.\n"},"denies":{"type":"array","items":{"type":"string"},"description":"List of actions that will always be denied even if also allowed by this policy or another one.\n"},"description":{"type":"string","description":"Description of the policy\n"},"excepts":{"type":"array","items":{"type":"string"},"description":"List of overrides of action that must not be allowed even if they are caught by allow. Only makes sens if allow contains wildcards.\n"},"expiredAt":{"type":"string","description":"Expiration date of the policy in RFC3339 format (e.g., `2025-12-31T23:59:59Z`). After this date, the policy will no longer be applied.\n"},"identities":{"type":"array","items":{"type":"string"},"description":"List of identities affected by the policy\n"},"name":{"type":"string","description":"Name of the policy, must be unique\n"},"permissionsGroups":{"type":"array","items":{"type":"string"},"description":"Set of permissions groups included in the policy. At evaluation, these permissions groups are each evaluated independently (notably, excepts actions only affect actions in the same permission group).\n"},"resources":{"type":"array","items":{"type":"string"},"description":"List of resources affected by the policy\n"}},"requiredInputs":["identities","resources"],"stateInputs":{"description":"Input properties used for looking up and filtering Policy resources.\n","properties":{"allows":{"type":"array","items":{"type":"string"},"description":"List of actions allowed on resources by identities\n"},"conditions":{"$ref":"#/types/ovh:Iam/PolicyConditions:PolicyConditions","description":"Conditions restrict permissions based on resource tags, date/time, or request attributes. See Conditions below.\n"},"createdAt":{"type":"string","description":"Creation date of this group.\n"},"denies":{"type":"array","items":{"type":"string"},"description":"List of actions that will always be denied even if also allowed by this policy or another one.\n"},"description":{"type":"string","description":"Description of the policy\n"},"excepts":{"type":"array","items":{"type":"string"},"description":"List of overrides of action that must not be allowed even if they are caught by allow. Only makes sens if allow contains wildcards.\n"},"expiredAt":{"type":"string","description":"Expiration date of the policy in RFC3339 format (e.g., `2025-12-31T23:59:59Z`). After this date, the policy will no longer be applied.\n"},"identities":{"type":"array","items":{"type":"string"},"description":"List of identities affected by the policy\n"},"name":{"type":"string","description":"Name of the policy, must be unique\n"},"owner":{"type":"string","description":"Owner of the policy.\n"},"permissionsGroups":{"type":"array","items":{"type":"string"},"description":"Set of permissions groups included in the policy. At evaluation, these permissions groups are each evaluated independently (notably, excepts actions only affect actions in the same permission group).\n"},"readOnly":{"type":"boolean","description":"Indicates that the policy is a default one.\n"},"resources":{"type":"array","items":{"type":"string"},"description":"List of resources affected by the policy\n"},"updatedAt":{"type":"string","description":"Date of the last update of this group.\n"}},"type":"object"}},"ovh:Iam/resourceGroup:ResourceGroup":{"description":"Provides an OVHcloud IAM resource group.\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 myResourceGroup = new ovh.iam.ResourceGroup(\"my_resource_group\", {\n    name: \"my_resource_group\",\n    resources: [\n        \"urn:v1:eu:resource:service1:service1-id\",\n        \"urn:v1:eu:resource:service2:service2-id\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_resource_group = ovh.iam.ResourceGroup(\"my_resource_group\",\n    name=\"my_resource_group\",\n    resources=[\n        \"urn:v1:eu:resource:service1:service1-id\",\n        \"urn:v1:eu:resource:service2:service2-id\",\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 myResourceGroup = new Ovh.Iam.ResourceGroup(\"my_resource_group\", new()\n    {\n        Name = \"my_resource_group\",\n        Resources = new[]\n        {\n            \"urn:v1:eu:resource:service1:service1-id\",\n            \"urn:v1:eu:resource:service2:service2-id\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iam\"\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 := iam.NewResourceGroup(ctx, \"my_resource_group\", \u0026iam.ResourceGroupArgs{\n\t\t\tName: pulumi.String(\"my_resource_group\"),\n\t\t\tResources: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"urn:v1:eu:resource:service1:service1-id\"),\n\t\t\t\tpulumi.String(\"urn:v1:eu:resource:service2:service2-id\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Iam.ResourceGroup;\nimport com.ovhcloud.pulumi.ovh.Iam.ResourceGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myResourceGroup = new ResourceGroup(\"myResourceGroup\", ResourceGroupArgs.builder()\n            .name(\"my_resource_group\")\n            .resources(            \n                \"urn:v1:eu:resource:service1:service1-id\",\n                \"urn:v1:eu:resource:service2:service2-id\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myResourceGroup:\n    type: ovh:Iam:ResourceGroup\n    name: my_resource_group\n    properties:\n      name: my_resource_group\n      resources:\n        - urn:v1:eu:resource:service1:service1-id\n        - urn:v1:eu:resource:service2:service2-id\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nResource groups can be imported by using their id.\n\nbash\n\n```sh\n$ pulumi import ovh:Iam/resourceGroup:ResourceGroup my_resource_group resource_group_id\n```\n\n-\u003e Read only resource groups cannot be imported\n\n","properties":{"GroupURN":{"type":"string","description":"URN of the resource group, used when writing policies\n"},"createdAt":{"type":"string","description":"Date of the creation of the resource group\n"},"name":{"type":"string","description":"Name of the resource group\n"},"owner":{"type":"string","description":"Name of the account owning the resource group\n"},"readOnly":{"type":"boolean","description":"Marks that the resource group is not editable. Usually means that this is a default resource group created by OVHcloud\n"},"resources":{"type":"array","items":{"type":"string"},"description":"Set of the URNs of the resources contained in the resource group. All urns must be ones of valid resources\n"},"updatedAt":{"type":"string","description":"Date of the last modification of the resource group\n"}},"required":["createdAt","name","owner","readOnly","updatedAt","GroupURN"],"inputProperties":{"name":{"type":"string","description":"Name of the resource group\n"},"resources":{"type":"array","items":{"type":"string"},"description":"Set of the URNs of the resources contained in the resource group. All urns must be ones of valid resources\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering ResourceGroup resources.\n","properties":{"GroupURN":{"type":"string","description":"URN of the resource group, used when writing policies\n"},"createdAt":{"type":"string","description":"Date of the creation of the resource group\n"},"name":{"type":"string","description":"Name of the resource group\n"},"owner":{"type":"string","description":"Name of the account owning the resource group\n"},"readOnly":{"type":"boolean","description":"Marks that the resource group is not editable. Usually means that this is a default resource group created by OVHcloud\n"},"resources":{"type":"array","items":{"type":"string"},"description":"Set of the URNs of the resources contained in the resource group. All urns must be ones of valid resources\n"},"updatedAt":{"type":"string","description":"Date of the last modification of the resource group\n"}},"type":"object"}},"ovh:Ip/firewall:Firewall":{"description":"Use this resource to manage an IP firewall.\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 myFirewall = new ovh.ip.Firewall(\"my_firewall\", {\n    ip: \"XXXXXX\",\n    ipOnFirewall: \"XXXXXX\",\n    enabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_firewall = ovh.ip.Firewall(\"my_firewall\",\n    ip=\"XXXXXX\",\n    ip_on_firewall=\"XXXXXX\",\n    enabled=True)\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 myFirewall = new Ovh.Ip.Firewall(\"my_firewall\", new()\n    {\n        Ip = \"XXXXXX\",\n        IpOnFirewall = \"XXXXXX\",\n        Enabled = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/ip\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ip.NewFirewall(ctx, \"my_firewall\", \u0026ip.FirewallArgs{\n\t\t\tIp:           pulumi.String(\"XXXXXX\"),\n\t\t\tIpOnFirewall: pulumi.String(\"XXXXXX\"),\n\t\t\tEnabled:      pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Ip.Firewall;\nimport com.ovhcloud.pulumi.ovh.Ip.FirewallArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myFirewall = new Firewall(\"myFirewall\", FirewallArgs.builder()\n            .ip(\"XXXXXX\")\n            .ipOnFirewall(\"XXXXXX\")\n            .enabled(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myFirewall:\n    type: ovh:Ip:Firewall\n    name: my_firewall\n    properties:\n      ip: XXXXXX\n      ipOnFirewall: XXXXXX\n      enabled: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAn IP firewall can be imported using the `ip` and `ip_on_firewall`, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Ip/firewall:Firewall my_firewall 1.2.3.4/32/1.2.3.4\n```\n\n","properties":{"enabled":{"type":"boolean","description":"Whether firewall should be enabled\n"},"ip":{"type":"string","description":"The IP or the CIDR\n"},"ipOnFirewall":{"type":"string","description":"IPv4 address\n"},"state":{"type":"string","description":"Current state of your ip on firewall\n"}},"required":["enabled","ip","ipOnFirewall","state"],"inputProperties":{"enabled":{"type":"boolean","description":"Whether firewall should be enabled\n"},"ip":{"type":"string","description":"The IP or the CIDR\n"},"ipOnFirewall":{"type":"string","description":"IPv4 address\n"}},"requiredInputs":["ip","ipOnFirewall"],"stateInputs":{"description":"Input properties used for looking up and filtering Firewall resources.\n","properties":{"enabled":{"type":"boolean","description":"Whether firewall should be enabled\n"},"ip":{"type":"string","description":"The IP or the CIDR\n"},"ipOnFirewall":{"type":"string","description":"IPv4 address\n"},"state":{"type":"string","description":"Current state of your ip on firewall\n"}},"type":"object"}},"ovh:Ip/firewallRule:FirewallRule":{"description":"Use this resource to manage a rule on an IP firewall.\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 denyTcp = new ovh.ip.FirewallRule(\"deny_tcp\", {\n    ip: \"XXXXXX\",\n    ipOnFirewall: \"XXXXXX\",\n    sequence: 0,\n    action: \"deny\",\n    protocol: \"tcp\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ndeny_tcp = ovh.ip.FirewallRule(\"deny_tcp\",\n    ip=\"XXXXXX\",\n    ip_on_firewall=\"XXXXXX\",\n    sequence=0,\n    action=\"deny\",\n    protocol=\"tcp\")\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 denyTcp = new Ovh.Ip.FirewallRule(\"deny_tcp\", new()\n    {\n        Ip = \"XXXXXX\",\n        IpOnFirewall = \"XXXXXX\",\n        Sequence = 0,\n        Action = \"deny\",\n        Protocol = \"tcp\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/ip\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ip.NewFirewallRule(ctx, \"deny_tcp\", \u0026ip.FirewallRuleArgs{\n\t\t\tIp:           pulumi.String(\"XXXXXX\"),\n\t\t\tIpOnFirewall: pulumi.String(\"XXXXXX\"),\n\t\t\tSequence:     pulumi.Float64(0),\n\t\t\tAction:       pulumi.String(\"deny\"),\n\t\t\tProtocol:     pulumi.String(\"tcp\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Ip.FirewallRule;\nimport com.ovhcloud.pulumi.ovh.Ip.FirewallRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var denyTcp = new FirewallRule(\"denyTcp\", FirewallRuleArgs.builder()\n            .ip(\"XXXXXX\")\n            .ipOnFirewall(\"XXXXXX\")\n            .sequence(0.0)\n            .action(\"deny\")\n            .protocol(\"tcp\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  denyTcp:\n    type: ovh:Ip:FirewallRule\n    name: deny_tcp\n    properties:\n      ip: XXXXXX\n      ipOnFirewall: XXXXXX\n      sequence: 0\n      action: deny\n      protocol: tcp\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe resource can be imported using the properties `ip`, `ip_on_firewall` and `sequence`, separated by \"|\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Ip/firewallRule:FirewallRule my_firewall_rule '127.0.0.1|127.0.0.2|0'\n```\n\n","properties":{"action":{"type":"string","description":"Possible values for action (deny|permit)\n"},"creationDate":{"type":"string","description":"Creation date of the rule\n"},"destination":{"type":"string","description":"Destination IP for your rule\n"},"destinationPort":{"type":"number","description":"Destination port for your rule. Only with TCP/UDP protocol\n"},"destinationPortDesc":{"type":"string","description":"String description of field `destination_port`\n"},"fragments":{"type":"boolean","description":"Fragments option\n"},"ip":{"type":"string","description":"The IP or the CIDR\n"},"ipOnFirewall":{"type":"string","description":"IPv4 address\n"},"protocol":{"type":"string","description":"Possible values for protocol (ah|esp|gre|icmp|ipv4|tcp|udp)\n"},"rule":{"type":"string","description":"Description of the rule\n"},"sequence":{"type":"number","description":"Rule position in the rules array\n"},"source":{"type":"string","description":"IPv4 CIDR notation (e.g., 192.0.2.0/24)\n"},"sourcePort":{"type":"number","description":"Source port for your rule. Only with TCP/UDP protocol\n"},"sourcePortDesc":{"type":"string","description":"String description of field `source_port`\n"},"state":{"type":"string","description":"Current state of your rule\n"},"tcpOption":{"type":"string","description":"TCP option on your rule (syn|established)\n"}},"required":["action","creationDate","destination","destinationPort","destinationPortDesc","fragments","ip","ipOnFirewall","protocol","rule","sequence","source","sourcePort","sourcePortDesc","state","tcpOption"],"inputProperties":{"action":{"type":"string","description":"Possible values for action (deny|permit)\n"},"destinationPort":{"type":"number","description":"Destination port for your rule. Only with TCP/UDP protocol\n"},"fragments":{"type":"boolean","description":"Fragments option\n"},"ip":{"type":"string","description":"The IP or the CIDR\n"},"ipOnFirewall":{"type":"string","description":"IPv4 address\n"},"protocol":{"type":"string","description":"Possible values for protocol (ah|esp|gre|icmp|ipv4|tcp|udp)\n"},"sequence":{"type":"number","description":"Rule position in the rules array\n"},"source":{"type":"string","description":"IPv4 CIDR notation (e.g., 192.0.2.0/24)\n"},"sourcePort":{"type":"number","description":"Source port for your rule. Only with TCP/UDP protocol\n"},"tcpOption":{"type":"string","description":"TCP option on your rule (syn|established)\n"}},"requiredInputs":["action","ip","ipOnFirewall","protocol","sequence"],"stateInputs":{"description":"Input properties used for looking up and filtering FirewallRule resources.\n","properties":{"action":{"type":"string","description":"Possible values for action (deny|permit)\n"},"creationDate":{"type":"string","description":"Creation date of the rule\n"},"destination":{"type":"string","description":"Destination IP for your rule\n"},"destinationPort":{"type":"number","description":"Destination port for your rule. Only with TCP/UDP protocol\n"},"destinationPortDesc":{"type":"string","description":"String description of field `destination_port`\n"},"fragments":{"type":"boolean","description":"Fragments option\n"},"ip":{"type":"string","description":"The IP or the CIDR\n"},"ipOnFirewall":{"type":"string","description":"IPv4 address\n"},"protocol":{"type":"string","description":"Possible values for protocol (ah|esp|gre|icmp|ipv4|tcp|udp)\n"},"rule":{"type":"string","description":"Description of the rule\n"},"sequence":{"type":"number","description":"Rule position in the rules array\n"},"source":{"type":"string","description":"IPv4 CIDR notation (e.g., 192.0.2.0/24)\n"},"sourcePort":{"type":"number","description":"Source port for your rule. Only with TCP/UDP protocol\n"},"sourcePortDesc":{"type":"string","description":"String description of field `source_port`\n"},"state":{"type":"string","description":"Current state of your rule\n"},"tcpOption":{"type":"string","description":"TCP option on your rule (syn|established)\n"}},"type":"object"}},"ovh:Ip/ipService:IpService":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst myaccount = ovh.Me.getMe({});\nconst mycart = ovh.Order.getCart({\n    ovhSubsidiary: \"fr\",\n});\nconst ipblock = mycart.then(mycart =\u003e ovh.Order.getCartProductPlan({\n    cartId: mycart.id,\n    priceCapacity: \"renew\",\n    product: \"ip\",\n    planCode: \"ip-v4-s30-ripe\",\n}));\nconst ipblockIpService = new ovh.ip.IpService(\"ipblock\", {\n    ovhSubsidiary: mycart.then(mycart =\u003e mycart.ovhSubsidiary),\n    description: \"my ip block\",\n    plan: {\n        duration: ipblock.then(ipblock =\u003e ipblock.selectedPrices?.[0]?.duration),\n        planCode: ipblock.then(ipblock =\u003e ipblock.planCode),\n        pricingMode: ipblock.then(ipblock =\u003e ipblock.selectedPrices?.[0]?.pricingMode),\n        configurations: [\n            {\n                label: \"country\",\n                value: \"FR\",\n            },\n            {\n                label: \"region\",\n                value: \"europe\",\n            },\n            {\n                label: \"destination\",\n                value: \"parking\",\n            },\n        ],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmyaccount = ovh.Me.get_me()\nmycart = ovh.Order.get_cart(ovh_subsidiary=\"fr\")\nipblock = ovh.Order.get_cart_product_plan(cart_id=mycart.id,\n    price_capacity=\"renew\",\n    product=\"ip\",\n    plan_code=\"ip-v4-s30-ripe\")\nipblock_ip_service = ovh.ip.IpService(\"ipblock\",\n    ovh_subsidiary=mycart.ovh_subsidiary,\n    description=\"my ip block\",\n    plan={\n        \"duration\": ipblock.selected_prices[0].duration,\n        \"plan_code\": ipblock.plan_code,\n        \"pricing_mode\": ipblock.selected_prices[0].pricing_mode,\n        \"configurations\": [\n            {\n                \"label\": \"country\",\n                \"value\": \"FR\",\n            },\n            {\n                \"label\": \"region\",\n                \"value\": \"europe\",\n            },\n            {\n                \"label\": \"destination\",\n                \"value\": \"parking\",\n            },\n        ],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myaccount = Ovh.Me.GetMe.Invoke();\n\n    var mycart = Ovh.Order.GetCart.Invoke(new()\n    {\n        OvhSubsidiary = \"fr\",\n    });\n\n    var ipblock = Ovh.Order.GetCartProductPlan.Invoke(new()\n    {\n        CartId = mycart.Apply(getCartResult =\u003e getCartResult.Id),\n        PriceCapacity = \"renew\",\n        Product = \"ip\",\n        PlanCode = \"ip-v4-s30-ripe\",\n    });\n\n    var ipblockIpService = new Ovh.Ip.IpService(\"ipblock\", new()\n    {\n        OvhSubsidiary = mycart.Apply(getCartResult =\u003e getCartResult.OvhSubsidiary),\n        Description = \"my ip block\",\n        Plan = new Ovh.Ip.Inputs.IpServicePlanArgs\n        {\n            Duration = ipblock.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.Duration),\n            PlanCode = ipblock.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PlanCode),\n            PricingMode = ipblock.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.PricingMode),\n            Configurations = new[]\n            {\n                new Ovh.Ip.Inputs.IpServicePlanConfigurationArgs\n                {\n                    Label = \"country\",\n                    Value = \"FR\",\n                },\n                new Ovh.Ip.Inputs.IpServicePlanConfigurationArgs\n                {\n                    Label = \"region\",\n                    Value = \"europe\",\n                },\n                new Ovh.Ip.Inputs.IpServicePlanConfigurationArgs\n                {\n                    Label = \"destination\",\n                    Value = \"parking\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/ip\"\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/me\"\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/order\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := me.GetMe(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmycart, err := order.GetCart(ctx, \u0026order.GetCartArgs{\n\t\t\tOvhSubsidiary: \"fr\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tipblock, err := order.GetCartProductPlan(ctx, \u0026order.GetCartProductPlanArgs{\n\t\t\tCartId:        mycart.Id,\n\t\t\tPriceCapacity: \"renew\",\n\t\t\tProduct:       \"ip\",\n\t\t\tPlanCode:      \"ip-v4-s30-ripe\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ip.NewIpService(ctx, \"ipblock\", \u0026ip.IpServiceArgs{\n\t\t\tOvhSubsidiary: pulumi.String(mycart.OvhSubsidiary),\n\t\t\tDescription:   pulumi.String(\"my ip block\"),\n\t\t\tPlan: \u0026ip.IpServicePlanArgs{\n\t\t\t\tDuration:    pulumi.String(ipblock.SelectedPrices[0].Duration),\n\t\t\t\tPlanCode:    pulumi.String(ipblock.PlanCode),\n\t\t\t\tPricingMode: pulumi.String(ipblock.SelectedPrices[0].PricingMode),\n\t\t\t\tConfigurations: ip.IpServicePlanConfigurationArray{\n\t\t\t\t\t\u0026ip.IpServicePlanConfigurationArgs{\n\t\t\t\t\t\tLabel: pulumi.String(\"country\"),\n\t\t\t\t\t\tValue: pulumi.String(\"FR\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026ip.IpServicePlanConfigurationArgs{\n\t\t\t\t\t\tLabel: pulumi.String(\"region\"),\n\t\t\t\t\t\tValue: pulumi.String(\"europe\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026ip.IpServicePlanConfigurationArgs{\n\t\t\t\t\t\tLabel: pulumi.String(\"destination\"),\n\t\t\t\t\t\tValue: pulumi.String(\"parking\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.MeFunctions;\nimport com.pulumi.ovh.Order.OrderFunctions;\nimport com.pulumi.ovh.Order.inputs.GetCartArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductPlanArgs;\nimport com.ovhcloud.pulumi.ovh.Ip.IpService;\nimport com.ovhcloud.pulumi.ovh.Ip.IpServiceArgs;\nimport com.pulumi.ovh.Ip.inputs.IpServicePlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myaccount = MeFunctions.getMe(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var mycart = OrderFunctions.getCart(GetCartArgs.builder()\n            .ovhSubsidiary(\"fr\")\n            .build());\n\n        final var ipblock = OrderFunctions.getCartProductPlan(GetCartProductPlanArgs.builder()\n            .cartId(mycart.id())\n            .priceCapacity(\"renew\")\n            .product(\"ip\")\n            .planCode(\"ip-v4-s30-ripe\")\n            .build());\n\n        var ipblockIpService = new IpService(\"ipblockIpService\", IpServiceArgs.builder()\n            .ovhSubsidiary(mycart.ovhSubsidiary())\n            .description(\"my ip block\")\n            .plan(IpServicePlanArgs.builder()\n                .duration(ipblock.selectedPrices()[0].duration())\n                .planCode(ipblock.planCode())\n                .pricingMode(ipblock.selectedPrices()[0].pricingMode())\n                .configurations(                \n                    IpServicePlanConfigurationArgs.builder()\n                        .label(\"country\")\n                        .value(\"FR\")\n                        .build(),\n                    IpServicePlanConfigurationArgs.builder()\n                        .label(\"region\")\n                        .value(\"europe\")\n                        .build(),\n                    IpServicePlanConfigurationArgs.builder()\n                        .label(\"destination\")\n                        .value(\"parking\")\n                        .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ipblockIpService:\n    type: ovh:Ip:IpService\n    name: ipblock\n    properties:\n      ovhSubsidiary: ${mycart.ovhSubsidiary}\n      description: my ip block\n      plan:\n        duration: ${ipblock.selectedPrices[0].duration}\n        planCode: ${ipblock.planCode}\n        pricingMode: ${ipblock.selectedPrices[0].pricingMode}\n        configurations:\n          - label: country\n            value: FR\n          - label: region\n            value: europe\n          - label: destination\n            value: parking\nvariables:\n  myaccount:\n    fn::invoke:\n      function: ovh:Me:getMe\n      arguments: {}\n  mycart:\n    fn::invoke:\n      function: ovh:Order:getCart\n      arguments:\n        ovhSubsidiary: fr\n  ipblock:\n    fn::invoke:\n      function: ovh:Order:getCartProductPlan\n      arguments:\n        cartId: ${mycart.id}\n        priceCapacity: renew\n        product: ip\n        planCode: ip-v4-s30-ripe\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe resource can be imported using its `service_name`, E.g.,\n\nterraform\n\nimport {\n\n  to = ovh_ip_service.ipblock\n\n  id = \"ip-xx.xx.xx.xx\"\n\n}\n\nbash\n\n$ pulumi preview -generate-config-out=ipblock.tf\n\n$ pulumi up\n\nThe file `ipblock.tf` will then contain the imported resource's configuration, that can be copied next to the `import` block above. See https://developer.hashicorp.com/terraform/language/import/generating-configuration for more details.\n\n","properties":{"canBeTerminated":{"type":"boolean","description":"can be terminated\n"},"country":{"type":"string","description":"country\n"},"description":{"type":"string","description":"Custom description on your ip.\n"},"ip":{"type":"string","description":"ip block\n"},"orders":{"type":"array","items":{"$ref":"#/types/ovh:Ip/IpServiceOrder:IpServiceOrder"},"description":"Details about an Order\n"},"organisationId":{"type":"string","description":"IP block organisation Id\n"},"ovhSubsidiary":{"type":"string","description":"OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json)\n"},"paymentMean":{"type":"string","description":"Ovh payment mode\n","deprecationMessage":"This field is not anymore used since the API has been deprecated in favor of /payment/mean. Now, the default payment mean is used."},"plan":{"$ref":"#/types/ovh:Ip/IpServicePlan:IpServicePlan","description":"Product Plan to order\n"},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:Ip/IpServicePlanOption:IpServicePlanOption"},"description":"Product Plan to order\n"},"routedTos":{"type":"array","items":{"$ref":"#/types/ovh:Ip/IpServiceRoutedTo:IpServiceRoutedTo"},"description":"Routage information\n"},"serviceName":{"type":"string","description":"service name\n"},"type":{"type":"string","description":"Possible values for ip type\n"}},"required":["canBeTerminated","country","description","ip","orders","organisationId","ovhSubsidiary","plan","routedTos","serviceName","type"],"inputProperties":{"description":{"type":"string","description":"Custom description on your ip.\n"},"orders":{"type":"array","items":{"$ref":"#/types/ovh:Ip/IpServiceOrder:IpServiceOrder"},"description":"Details about an Order\n"},"ovhSubsidiary":{"type":"string","description":"OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json)\n","willReplaceOnChanges":true},"paymentMean":{"type":"string","description":"Ovh payment mode\n","deprecationMessage":"This field is not anymore used since the API has been deprecated in favor of /payment/mean. Now, the default payment mean is used.","willReplaceOnChanges":true},"plan":{"$ref":"#/types/ovh:Ip/IpServicePlan:IpServicePlan","description":"Product Plan to order\n","willReplaceOnChanges":true},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:Ip/IpServicePlanOption:IpServicePlanOption"},"description":"Product Plan to order\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering IpService resources.\n","properties":{"canBeTerminated":{"type":"boolean","description":"can be terminated\n"},"country":{"type":"string","description":"country\n"},"description":{"type":"string","description":"Custom description on your ip.\n"},"ip":{"type":"string","description":"ip block\n"},"orders":{"type":"array","items":{"$ref":"#/types/ovh:Ip/IpServiceOrder:IpServiceOrder"},"description":"Details about an Order\n"},"organisationId":{"type":"string","description":"IP block organisation Id\n"},"ovhSubsidiary":{"type":"string","description":"OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json)\n","willReplaceOnChanges":true},"paymentMean":{"type":"string","description":"Ovh payment mode\n","deprecationMessage":"This field is not anymore used since the API has been deprecated in favor of /payment/mean. Now, the default payment mean is used.","willReplaceOnChanges":true},"plan":{"$ref":"#/types/ovh:Ip/IpServicePlan:IpServicePlan","description":"Product Plan to order\n","willReplaceOnChanges":true},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:Ip/IpServicePlanOption:IpServicePlanOption"},"description":"Product Plan to order\n","willReplaceOnChanges":true},"routedTos":{"type":"array","items":{"$ref":"#/types/ovh:Ip/IpServiceRoutedTo:IpServiceRoutedTo"},"description":"Routage information\n"},"serviceName":{"type":"string","description":"service name\n"},"type":{"type":"string","description":"Possible values for ip type\n"}},"type":"object"}},"ovh:Ip/mitigation:Mitigation":{"description":"Use this resource to manage an IP permanent mitigation.\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 mitigation = new ovh.ip.Mitigation(\"mitigation\", {\n    ip: \"XXXXXX\",\n    ipOnMitigation: \"XXXXXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmitigation = ovh.ip.Mitigation(\"mitigation\",\n    ip=\"XXXXXX\",\n    ip_on_mitigation=\"XXXXXX\")\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 mitigation = new Ovh.Ip.Mitigation(\"mitigation\", new()\n    {\n        Ip = \"XXXXXX\",\n        IpOnMitigation = \"XXXXXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/ip\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ip.NewMitigation(ctx, \"mitigation\", \u0026ip.MitigationArgs{\n\t\t\tIp:             pulumi.String(\"XXXXXX\"),\n\t\t\tIpOnMitigation: pulumi.String(\"XXXXXX\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Ip.Mitigation;\nimport com.ovhcloud.pulumi.ovh.Ip.MitigationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var mitigation = new Mitigation(\"mitigation\", MitigationArgs.builder()\n            .ip(\"XXXXXX\")\n            .ipOnMitigation(\"XXXXXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mitigation:\n    type: ovh:Ip:Mitigation\n    properties:\n      ip: XXXXXX\n      ipOnMitigation: XXXXXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"auto":{"type":"boolean","description":"Set on true if the IP is on auto-mitigation\n"},"ip":{"type":"string","description":"The IP or the CIDR\n"},"ipOnMitigation":{"type":"string","description":"IPv4 address\n* `permanent ` - Deprecated, has no effect\n"},"permanent":{"type":"boolean","description":"Set on true if your ip is on permanent mitigation\n","deprecationMessage":"Attribute 'permanent' is deprecated and has no effect."},"state":{"type":"string","description":"Current state of the IP on mitigation\n"}},"required":["auto","ip","ipOnMitigation","permanent","state"],"inputProperties":{"ip":{"type":"string","description":"The IP or the CIDR\n"},"ipOnMitigation":{"type":"string","description":"IPv4 address\n* `permanent ` - Deprecated, has no effect\n"},"permanent":{"type":"boolean","description":"Set on true if your ip is on permanent mitigation\n","deprecationMessage":"Attribute 'permanent' is deprecated and has no effect."}},"requiredInputs":["ip","ipOnMitigation"],"stateInputs":{"description":"Input properties used for looking up and filtering Mitigation resources.\n","properties":{"auto":{"type":"boolean","description":"Set on true if the IP is on auto-mitigation\n"},"ip":{"type":"string","description":"The IP or the CIDR\n"},"ipOnMitigation":{"type":"string","description":"IPv4 address\n* `permanent ` - Deprecated, has no effect\n"},"permanent":{"type":"boolean","description":"Set on true if your ip is on permanent mitigation\n","deprecationMessage":"Attribute 'permanent' is deprecated and has no effect."},"state":{"type":"string","description":"Current state of the IP on mitigation\n"}},"type":"object"}},"ovh:Ip/move:Move":{"description":"Moves a given IP to a different service, or inversely, parks it if empty service is given\n\n## Example Usage\n\n### Move IP `1.2.3.4` to service loadbalancer-XXXXX\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst moveIpToLoadBalancerXxxxx = new ovh.ip.Move(\"move_ip_to_load_balancer_xxxxx\", {\n    ip: \"1.2.3.4\",\n    routedTo: {\n        serviceName: \"loadbalancer-XXXXX\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmove_ip_to_load_balancer_xxxxx = ovh.ip.Move(\"move_ip_to_load_balancer_xxxxx\",\n    ip=\"1.2.3.4\",\n    routed_to={\n        \"service_name\": \"loadbalancer-XXXXX\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var moveIpToLoadBalancerXxxxx = new Ovh.Ip.Move(\"move_ip_to_load_balancer_xxxxx\", new()\n    {\n        Ip = \"1.2.3.4\",\n        RoutedTo = new Ovh.Ip.Inputs.MoveRoutedToArgs\n        {\n            ServiceName = \"loadbalancer-XXXXX\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/ip\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ip.NewMove(ctx, \"move_ip_to_load_balancer_xxxxx\", \u0026ip.MoveArgs{\n\t\t\tIp: pulumi.String(\"1.2.3.4\"),\n\t\t\tRoutedTo: \u0026ip.MoveRoutedToArgs{\n\t\t\t\tServiceName: pulumi.String(\"loadbalancer-XXXXX\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Ip.Move;\nimport com.ovhcloud.pulumi.ovh.Ip.MoveArgs;\nimport com.pulumi.ovh.Ip.inputs.MoveRoutedToArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var moveIpToLoadBalancerXxxxx = new Move(\"moveIpToLoadBalancerXxxxx\", MoveArgs.builder()\n            .ip(\"1.2.3.4\")\n            .routedTo(MoveRoutedToArgs.builder()\n                .serviceName(\"loadbalancer-XXXXX\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  moveIpToLoadBalancerXxxxx:\n    type: ovh:Ip:Move\n    name: move_ip_to_load_balancer_xxxxx\n    properties:\n      ip: 1.2.3.4\n      routedTo:\n        serviceName: loadbalancer-XXXXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Park IP/Detach IP `1.2.3.4` from any service\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst parkIp = new ovh.ip.Move(\"park_ip\", {\n    ip: \"1.2.3.4\",\n    routedTo: {\n        serviceName: \"\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\npark_ip = ovh.ip.Move(\"park_ip\",\n    ip=\"1.2.3.4\",\n    routed_to={\n        \"service_name\": \"\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var parkIp = new Ovh.Ip.Move(\"park_ip\", new()\n    {\n        Ip = \"1.2.3.4\",\n        RoutedTo = new Ovh.Ip.Inputs.MoveRoutedToArgs\n        {\n            ServiceName = \"\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/ip\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ip.NewMove(ctx, \"park_ip\", \u0026ip.MoveArgs{\n\t\t\tIp: pulumi.String(\"1.2.3.4\"),\n\t\t\tRoutedTo: \u0026ip.MoveRoutedToArgs{\n\t\t\t\tServiceName: pulumi.String(\"\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Ip.Move;\nimport com.ovhcloud.pulumi.ovh.Ip.MoveArgs;\nimport com.pulumi.ovh.Ip.inputs.MoveRoutedToArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var parkIp = new Move(\"parkIp\", MoveArgs.builder()\n            .ip(\"1.2.3.4\")\n            .routedTo(MoveRoutedToArgs.builder()\n                .serviceName(\"\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  parkIp:\n    type: ovh:Ip:Move\n    name: park_ip\n    properties:\n      ip: 1.2.3.4\n      routedTo:\n        serviceName: \"\"\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe resource can be imported using the `ip` field, e.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Ip/move:Move mv '1.2.3.4/32'\n```\n\n","properties":{"canBeTerminated":{"type":"boolean","description":"Whether IP service can be terminated\n"},"country":{"type":"string","description":"Country\n"},"description":{"type":"string","description":"Description attached to the IP\n"},"ip":{"type":"string","description":"IP block that we want to attach to a different service\n"},"organisationId":{"type":"string","description":"IP block organisation Id\n"},"routedTo":{"$ref":"#/types/ovh:Ip/MoveRoutedTo:MoveRoutedTo","description":"Service to route the IP to. If null, the IP will be [parked](https://api.ovh.com/console/#/ip/%7Bip%7D/park~POST) instead of [moved](https://api.ovh.com/console/#/ip/%7Bip%7D/move~POST)\n"},"serviceName":{"type":"string","description":"Service name in the form of `ip-\u003cpart-1\u003e.\u003cpart-2\u003e.\u003cpart-3\u003e.\u003cpart-4\u003e`\n"},"taskStartDate":{"type":"string","description":"Starting date and time field of the current IP task that is in charge of changing the service the IP is attached to\n"},"taskStatus":{"type":"string","description":"Status field of the current IP task that is in charge of changing the service the IP is attached to\n"},"type":{"type":"string","description":"Possible values for ip type\n"}},"required":["canBeTerminated","country","description","ip","organisationId","routedTo","serviceName","taskStartDate","taskStatus","type"],"inputProperties":{"description":{"type":"string","description":"Description attached to the IP\n"},"ip":{"type":"string","description":"IP block that we want to attach to a different service\n"},"routedTo":{"$ref":"#/types/ovh:Ip/MoveRoutedTo:MoveRoutedTo","description":"Service to route the IP to. If null, the IP will be [parked](https://api.ovh.com/console/#/ip/%7Bip%7D/park~POST) instead of [moved](https://api.ovh.com/console/#/ip/%7Bip%7D/move~POST)\n"}},"requiredInputs":["ip","routedTo"],"stateInputs":{"description":"Input properties used for looking up and filtering Move resources.\n","properties":{"canBeTerminated":{"type":"boolean","description":"Whether IP service can be terminated\n"},"country":{"type":"string","description":"Country\n"},"description":{"type":"string","description":"Description attached to the IP\n"},"ip":{"type":"string","description":"IP block that we want to attach to a different service\n"},"organisationId":{"type":"string","description":"IP block organisation Id\n"},"routedTo":{"$ref":"#/types/ovh:Ip/MoveRoutedTo:MoveRoutedTo","description":"Service to route the IP to. If null, the IP will be [parked](https://api.ovh.com/console/#/ip/%7Bip%7D/park~POST) instead of [moved](https://api.ovh.com/console/#/ip/%7Bip%7D/move~POST)\n"},"serviceName":{"type":"string","description":"Service name in the form of `ip-\u003cpart-1\u003e.\u003cpart-2\u003e.\u003cpart-3\u003e.\u003cpart-4\u003e`\n"},"taskStartDate":{"type":"string","description":"Starting date and time field of the current IP task that is in charge of changing the service the IP is attached to\n"},"taskStatus":{"type":"string","description":"Status field of the current IP task that is in charge of changing the service the IP is attached to\n"},"type":{"type":"string","description":"Possible values for ip type\n"}},"type":"object"}},"ovh:Ip/reverse:Reverse":{"description":"Provides a OVHcloud IP reverse.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\n// Set the reverse of an IP\nconst test = new ovh.ip.Reverse(\"test\", {\n    readinessTimeoutDuration: \"1m\",\n    ip: \"192.0.2.0/24\",\n    ReverseIp: \"192.0.2.1\",\n    ReverseValue: \"example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\n# Set the reverse of an IP\ntest = ovh.ip.Reverse(\"test\",\n    readiness_timeout_duration=\"1m\",\n    ip=\"192.0.2.0/24\",\n    reverse_ip=\"192.0.2.1\",\n    reverse_value=\"example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Set the reverse of an IP\n    var test = new Ovh.Ip.Reverse(\"test\", new()\n    {\n        ReadinessTimeoutDuration = \"1m\",\n        Ip = \"192.0.2.0/24\",\n        ReverseIp = \"192.0.2.1\",\n        ReverseValue = \"example.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/ip\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Set the reverse of an IP\n\t\t_, err := ip.NewReverse(ctx, \"test\", \u0026ip.ReverseArgs{\n\t\t\tReadinessTimeoutDuration: pulumi.String(\"1m\"),\n\t\t\tIp:                       pulumi.String(\"192.0.2.0/24\"),\n\t\t\tReverseIp:                pulumi.String(\"192.0.2.1\"),\n\t\t\tReverseValue:             pulumi.String(\"example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Ip.Reverse;\nimport com.ovhcloud.pulumi.ovh.Ip.ReverseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Set the reverse of an IP\n        var test = new Reverse(\"test\", ReverseArgs.builder()\n            .readinessTimeoutDuration(\"1m\")\n            .ip(\"192.0.2.0/24\")\n            .ReverseIp(\"192.0.2.1\")\n            .ReverseValue(\"example.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Set the reverse of an IP\n  test:\n    type: ovh:Ip:Reverse\n    properties:\n      readinessTimeoutDuration: 1m\n      ip: 192.0.2.0/24\n      ReverseIp: 192.0.2.1\n      ReverseValue: example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe resource can be imported using the `ip`, `ip_reverse` of the address, separated by \"|\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Ip/reverse:Reverse my_reverse '2001:0db8:c0ff:ee::/64|2001:0db8:c0ff:ee::42'\n```\n\n","properties":{"ReverseIp":{"type":"string","description":"The IP to set the reverse of\n"},"ReverseValue":{"type":"string","description":"The value of the reverse\n"},"ip":{"type":"string","description":"The IP block to which the IP belongs\n"},"readinessTimeoutDuration":{"type":"string","description":"The maximum duration that the provider will wait for a successful response (while retrying every 5s). If the record cannot be verified within this timeout, the operation will fail (default value: 60s)\n"}},"required":["ip","ReverseIp","ReverseValue"],"inputProperties":{"ReverseIp":{"type":"string","description":"The IP to set the reverse of\n","willReplaceOnChanges":true},"ReverseValue":{"type":"string","description":"The value of the reverse\n","willReplaceOnChanges":true},"ip":{"type":"string","description":"The IP block to which the IP belongs\n","willReplaceOnChanges":true},"readinessTimeoutDuration":{"type":"string","description":"The maximum duration that the provider will wait for a successful response (while retrying every 5s). If the record cannot be verified within this timeout, the operation will fail (default value: 60s)\n","willReplaceOnChanges":true}},"requiredInputs":["ip","ReverseIp","ReverseValue"],"stateInputs":{"description":"Input properties used for looking up and filtering Reverse resources.\n","properties":{"ReverseIp":{"type":"string","description":"The IP to set the reverse of\n","willReplaceOnChanges":true},"ReverseValue":{"type":"string","description":"The value of the reverse\n","willReplaceOnChanges":true},"ip":{"type":"string","description":"The IP block to which the IP belongs\n","willReplaceOnChanges":true},"readinessTimeoutDuration":{"type":"string","description":"The maximum duration that the provider will wait for a successful response (while retrying every 5s). If the record cannot be verified within this timeout, the operation will fail (default value: 60s)\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:IpLoadBalancing/httpFarm:HttpFarm":{"description":"Creates a HTTP backend server group (farm) to be used by loadbalancing frontend(s)\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst lb = ovh.IpLoadBalancing.getIpLoadBalancing({\n    serviceName: \"ip-1.2.3.4\",\n    state: \"ok\",\n});\nconst farmname = new ovh.iploadbalancing.HttpFarm(\"farmname\", {\n    serviceName: lb.then(lb =\u003e lb.serviceName),\n    displayName: \"ingress-8080-gra\",\n    zone: \"GRA\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"ip-1.2.3.4\",\n    state=\"ok\")\nfarmname = ovh.iploadbalancing.HttpFarm(\"farmname\",\n    service_name=lb.service_name,\n    display_name=\"ingress-8080-gra\",\n    zone=\"GRA\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var lb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n    {\n        ServiceName = \"ip-1.2.3.4\",\n        State = \"ok\",\n    });\n\n    var farmname = new Ovh.IpLoadBalancing.HttpFarm(\"farmname\", new()\n    {\n        ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n        DisplayName = \"ingress-8080-gra\",\n        Zone = \"GRA\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iploadbalancing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tlb, err := iploadbalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\n\t\t\tServiceName: pulumi.StringRef(\"ip-1.2.3.4\"),\n\t\t\tState:       pulumi.StringRef(\"ok\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iploadbalancing.NewHttpFarm(ctx, \"farmname\", \u0026iploadbalancing.HttpFarmArgs{\n\t\t\tServiceName: pulumi.String(lb.ServiceName),\n\t\t\tDisplayName: pulumi.String(\"ingress-8080-gra\"),\n\t\t\tZone:        pulumi.String(\"GRA\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.IpLoadBalancing.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.HttpFarm;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.HttpFarmArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var lb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n            .serviceName(\"ip-1.2.3.4\")\n            .state(\"ok\")\n            .build());\n\n        var farmname = new HttpFarm(\"farmname\", HttpFarmArgs.builder()\n            .serviceName(lb.serviceName())\n            .displayName(\"ingress-8080-gra\")\n            .zone(\"GRA\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  farmname:\n    type: ovh:IpLoadBalancing:HttpFarm\n    properties:\n      serviceName: ${lb.serviceName}\n      displayName: ingress-8080-gra\n      zone: GRA\nvariables:\n  lb:\n    fn::invoke:\n      function: ovh:IpLoadBalancing:getIpLoadBalancing\n      arguments:\n        serviceName: ip-1.2.3.4\n        state: ok\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nHTTP farm can be imported using the following format `service_name` and the `id` of the farm, separated by \"/\" e.g.\n\nbash\n\n```sh\n$ pulumi import ovh:IpLoadBalancing/httpFarm:HttpFarm farmname service_name/farm_id\n```\n\n","properties":{"balance":{"type":"string","description":"Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`)\n"},"displayName":{"type":"string","description":"Readable label for loadbalancer farm\n"},"port":{"type":"integer","description":"Port attached to your farm ([1..49151]). Inherited from frontend if null\n"},"probe":{"$ref":"#/types/ovh:IpLoadBalancing/HttpFarmProbe:HttpFarmProbe","description":"define a backend healthcheck probe\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"stickiness":{"type":"string","description":"Stickiness type. No stickiness if null (`sourceIp`, `cookie`)\n"},"vrackNetworkId":{"type":"integer","description":"Internal Load Balancer identifier of the vRack private network to attach to your farm, mandatory when your Load Balancer is attached to a vRack\n"},"zone":{"type":"string","description":"Zone where the farm will be defined (ie. `GRA`, `BHS` also supports `ALL`)\n"}},"required":["serviceName","zone"],"inputProperties":{"balance":{"type":"string","description":"Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`)\n"},"displayName":{"type":"string","description":"Readable label for loadbalancer farm\n"},"port":{"type":"integer","description":"Port attached to your farm ([1..49151]). Inherited from frontend if null\n"},"probe":{"$ref":"#/types/ovh:IpLoadBalancing/HttpFarmProbe:HttpFarmProbe","description":"define a backend healthcheck probe\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n","willReplaceOnChanges":true},"stickiness":{"type":"string","description":"Stickiness type. No stickiness if null (`sourceIp`, `cookie`)\n"},"vrackNetworkId":{"type":"integer","description":"Internal Load Balancer identifier of the vRack private network to attach to your farm, mandatory when your Load Balancer is attached to a vRack\n"},"zone":{"type":"string","description":"Zone where the farm will be defined (ie. `GRA`, `BHS` also supports `ALL`)\n","willReplaceOnChanges":true}},"requiredInputs":["serviceName","zone"],"stateInputs":{"description":"Input properties used for looking up and filtering HttpFarm resources.\n","properties":{"balance":{"type":"string","description":"Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`)\n"},"displayName":{"type":"string","description":"Readable label for loadbalancer farm\n"},"port":{"type":"integer","description":"Port attached to your farm ([1..49151]). Inherited from frontend if null\n"},"probe":{"$ref":"#/types/ovh:IpLoadBalancing/HttpFarmProbe:HttpFarmProbe","description":"define a backend healthcheck probe\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n","willReplaceOnChanges":true},"stickiness":{"type":"string","description":"Stickiness type. No stickiness if null (`sourceIp`, `cookie`)\n"},"vrackNetworkId":{"type":"integer","description":"Internal Load Balancer identifier of the vRack private network to attach to your farm, mandatory when your Load Balancer is attached to a vRack\n"},"zone":{"type":"string","description":"Zone where the farm will be defined (ie. `GRA`, `BHS` also supports `ALL`)\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:IpLoadBalancing/httpFarmServer:HttpFarmServer":{"description":"Creates a backend server entry linked to HTTP loadbalancing group (farm)\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst lb = ovh.IpLoadBalancing.getIpLoadBalancing({\n    serviceName: \"ip-1.2.3.4\",\n    state: \"ok\",\n});\nconst farmname = new ovh.iploadbalancing.HttpFarm(\"farmname\", {\n    serviceName: lb.then(lb =\u003e lb.serviceName),\n    port: 8080,\n    zone: \"all\",\n});\nconst backend = new ovh.iploadbalancing.HttpFarmServer(\"backend\", {\n    serviceName: lb.then(lb =\u003e lb.serviceName),\n    farmId: farmname.id,\n    displayName: \"mybackend\",\n    address: \"4.5.6.7\",\n    status: \"active\",\n    port: 80,\n    proxyProtocolVersion: \"v2\",\n    weight: 2,\n    probe: true,\n    ssl: false,\n    backup: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"ip-1.2.3.4\",\n    state=\"ok\")\nfarmname = ovh.iploadbalancing.HttpFarm(\"farmname\",\n    service_name=lb.service_name,\n    port=8080,\n    zone=\"all\")\nbackend = ovh.iploadbalancing.HttpFarmServer(\"backend\",\n    service_name=lb.service_name,\n    farm_id=farmname.id,\n    display_name=\"mybackend\",\n    address=\"4.5.6.7\",\n    status=\"active\",\n    port=80,\n    proxy_protocol_version=\"v2\",\n    weight=2,\n    probe=True,\n    ssl=False,\n    backup=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var lb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n    {\n        ServiceName = \"ip-1.2.3.4\",\n        State = \"ok\",\n    });\n\n    var farmname = new Ovh.IpLoadBalancing.HttpFarm(\"farmname\", new()\n    {\n        ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n        Port = 8080,\n        Zone = \"all\",\n    });\n\n    var backend = new Ovh.IpLoadBalancing.HttpFarmServer(\"backend\", new()\n    {\n        ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n        FarmId = farmname.Id,\n        DisplayName = \"mybackend\",\n        Address = \"4.5.6.7\",\n        Status = \"active\",\n        Port = 80,\n        ProxyProtocolVersion = \"v2\",\n        Weight = 2,\n        Probe = true,\n        Ssl = false,\n        Backup = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iploadbalancing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tlb, err := iploadbalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\n\t\t\tServiceName: pulumi.StringRef(\"ip-1.2.3.4\"),\n\t\t\tState:       pulumi.StringRef(\"ok\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfarmname, err := iploadbalancing.NewHttpFarm(ctx, \"farmname\", \u0026iploadbalancing.HttpFarmArgs{\n\t\t\tServiceName: pulumi.String(lb.ServiceName),\n\t\t\tPort:        pulumi.Int(8080),\n\t\t\tZone:        pulumi.String(\"all\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iploadbalancing.NewHttpFarmServer(ctx, \"backend\", \u0026iploadbalancing.HttpFarmServerArgs{\n\t\t\tServiceName:          pulumi.String(lb.ServiceName),\n\t\t\tFarmId:               farmname.ID(),\n\t\t\tDisplayName:          pulumi.String(\"mybackend\"),\n\t\t\tAddress:              pulumi.String(\"4.5.6.7\"),\n\t\t\tStatus:               pulumi.String(\"active\"),\n\t\t\tPort:                 pulumi.Int(80),\n\t\t\tProxyProtocolVersion: pulumi.String(\"v2\"),\n\t\t\tWeight:               pulumi.Int(2),\n\t\t\tProbe:                pulumi.Bool(true),\n\t\t\tSsl:                  pulumi.Bool(false),\n\t\t\tBackup:               pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.IpLoadBalancing.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.HttpFarm;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.HttpFarmArgs;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.HttpFarmServer;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.HttpFarmServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var lb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n            .serviceName(\"ip-1.2.3.4\")\n            .state(\"ok\")\n            .build());\n\n        var farmname = new HttpFarm(\"farmname\", HttpFarmArgs.builder()\n            .serviceName(lb.serviceName())\n            .port(8080)\n            .zone(\"all\")\n            .build());\n\n        var backend = new HttpFarmServer(\"backend\", HttpFarmServerArgs.builder()\n            .serviceName(lb.serviceName())\n            .farmId(farmname.id())\n            .displayName(\"mybackend\")\n            .address(\"4.5.6.7\")\n            .status(\"active\")\n            .port(80)\n            .proxyProtocolVersion(\"v2\")\n            .weight(2)\n            .probe(true)\n            .ssl(false)\n            .backup(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  farmname:\n    type: ovh:IpLoadBalancing:HttpFarm\n    properties:\n      serviceName: ${lb.serviceName}\n      port: 8080\n      zone: all\n  backend:\n    type: ovh:IpLoadBalancing:HttpFarmServer\n    properties:\n      serviceName: ${lb.serviceName}\n      farmId: ${farmname.id}\n      displayName: mybackend\n      address: 4.5.6.7\n      status: active\n      port: 80\n      proxyProtocolVersion: v2\n      weight: 2\n      probe: true\n      ssl: false\n      backup: true\nvariables:\n  lb:\n    fn::invoke:\n      function: ovh:IpLoadBalancing:getIpLoadBalancing\n      arguments:\n        serviceName: ip-1.2.3.4\n        state: ok\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nHTTP farm server can be imported using the following format `service_name`, the `id` of the farm and the `id` of the server separated by \"/\" e.g.\n\nbash\n\n```sh\n$ pulumi import ovh:IpLoadBalancing/httpFarmServer:HttpFarmServer backend service_name/farm_id/server_id\n```\n\n","properties":{"address":{"type":"string","description":"Address of the backend server (IP from either internal or OVHcloud network)\n"},"backup":{"type":"boolean","description":"is it a backup server used in case of failure of all the non-backup backends\n"},"chain":{"type":"string"},"cookie":{"type":"string","description":"Value of the stickiness cookie used for this backend.\n"},"displayName":{"type":"string","description":"Label for the server\n"},"farmId":{"type":"integer","description":"ID of the farm this server is attached to\n"},"onMarkedDown":{"type":"string","description":"enable action when backend marked down. (`shutdown-sessions`)\n"},"port":{"type":"integer","description":"Port that backend will respond on\n"},"probe":{"type":"boolean","description":"defines if backend will be probed to determine health and keep as active in farm if healthy\n"},"proxyProtocolVersion":{"type":"string","description":"version of the PROXY protocol used to pass origin connection information from loadbalancer to receiving service (`v1`, `v2`, `v2-ssl`, `v2-ssl-cn`)\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"ssl":{"type":"boolean","description":"is the connection ciphered with SSL (TLS)\n"},"status":{"type":"string","description":"backend status - `active` or `inactive`\n"},"weight":{"type":"integer","description":"used in loadbalancing algorithm\n"}},"required":["address","cookie","farmId","serviceName","status"],"inputProperties":{"address":{"type":"string","description":"Address of the backend server (IP from either internal or OVHcloud network)\n","willReplaceOnChanges":true},"backup":{"type":"boolean","description":"is it a backup server used in case of failure of all the non-backup backends\n"},"chain":{"type":"string"},"displayName":{"type":"string","description":"Label for the server\n"},"farmId":{"type":"integer","description":"ID of the farm this server is attached to\n","willReplaceOnChanges":true},"onMarkedDown":{"type":"string","description":"enable action when backend marked down. (`shutdown-sessions`)\n"},"port":{"type":"integer","description":"Port that backend will respond on\n"},"probe":{"type":"boolean","description":"defines if backend will be probed to determine health and keep as active in farm if healthy\n"},"proxyProtocolVersion":{"type":"string","description":"version of the PROXY protocol used to pass origin connection information from loadbalancer to receiving service (`v1`, `v2`, `v2-ssl`, `v2-ssl-cn`)\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n","willReplaceOnChanges":true},"ssl":{"type":"boolean","description":"is the connection ciphered with SSL (TLS)\n"},"status":{"type":"string","description":"backend status - `active` or `inactive`\n"},"weight":{"type":"integer","description":"used in loadbalancing algorithm\n"}},"requiredInputs":["address","farmId","serviceName","status"],"stateInputs":{"description":"Input properties used for looking up and filtering HttpFarmServer resources.\n","properties":{"address":{"type":"string","description":"Address of the backend server (IP from either internal or OVHcloud network)\n","willReplaceOnChanges":true},"backup":{"type":"boolean","description":"is it a backup server used in case of failure of all the non-backup backends\n"},"chain":{"type":"string"},"cookie":{"type":"string","description":"Value of the stickiness cookie used for this backend.\n"},"displayName":{"type":"string","description":"Label for the server\n"},"farmId":{"type":"integer","description":"ID of the farm this server is attached to\n","willReplaceOnChanges":true},"onMarkedDown":{"type":"string","description":"enable action when backend marked down. (`shutdown-sessions`)\n"},"port":{"type":"integer","description":"Port that backend will respond on\n"},"probe":{"type":"boolean","description":"defines if backend will be probed to determine health and keep as active in farm if healthy\n"},"proxyProtocolVersion":{"type":"string","description":"version of the PROXY protocol used to pass origin connection information from loadbalancer to receiving service (`v1`, `v2`, `v2-ssl`, `v2-ssl-cn`)\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n","willReplaceOnChanges":true},"ssl":{"type":"boolean","description":"is the connection ciphered with SSL (TLS)\n"},"status":{"type":"string","description":"backend status - `active` or `inactive`\n"},"weight":{"type":"integer","description":"used in loadbalancing algorithm\n"}},"type":"object"}},"ovh:IpLoadBalancing/httpFrontend:HttpFrontend":{"description":"Creates a backend HTTP server group (frontend) to be used by loadbalancing frontend(s)\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst lb = ovh.IpLoadBalancing.getIpLoadBalancing({\n    serviceName: \"ip-1.2.3.4\",\n    state: \"ok\",\n});\nconst farm80 = new ovh.iploadbalancing.HttpFarm(\"farm80\", {\n    serviceName: lb.then(lb =\u003e lb.serviceName),\n    displayName: \"ingress-8080-gra\",\n    zone: \"all\",\n    port: 80,\n});\nconst testFrontend = new ovh.iploadbalancing.HttpFrontend(\"test_frontend\", {\n    serviceName: lb.then(lb =\u003e lb.serviceName),\n    displayName: \"ingress-8080-gra\",\n    zone: \"all\",\n    port: \"80,443\",\n    defaultFarmId: farm80.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"ip-1.2.3.4\",\n    state=\"ok\")\nfarm80 = ovh.iploadbalancing.HttpFarm(\"farm80\",\n    service_name=lb.service_name,\n    display_name=\"ingress-8080-gra\",\n    zone=\"all\",\n    port=80)\ntest_frontend = ovh.iploadbalancing.HttpFrontend(\"test_frontend\",\n    service_name=lb.service_name,\n    display_name=\"ingress-8080-gra\",\n    zone=\"all\",\n    port=\"80,443\",\n    default_farm_id=farm80.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var lb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n    {\n        ServiceName = \"ip-1.2.3.4\",\n        State = \"ok\",\n    });\n\n    var farm80 = new Ovh.IpLoadBalancing.HttpFarm(\"farm80\", new()\n    {\n        ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n        DisplayName = \"ingress-8080-gra\",\n        Zone = \"all\",\n        Port = 80,\n    });\n\n    var testFrontend = new Ovh.IpLoadBalancing.HttpFrontend(\"test_frontend\", new()\n    {\n        ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n        DisplayName = \"ingress-8080-gra\",\n        Zone = \"all\",\n        Port = \"80,443\",\n        DefaultFarmId = farm80.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iploadbalancing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tlb, err := iploadbalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\n\t\t\tServiceName: pulumi.StringRef(\"ip-1.2.3.4\"),\n\t\t\tState:       pulumi.StringRef(\"ok\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfarm80, err := iploadbalancing.NewHttpFarm(ctx, \"farm80\", \u0026iploadbalancing.HttpFarmArgs{\n\t\t\tServiceName: pulumi.String(lb.ServiceName),\n\t\t\tDisplayName: pulumi.String(\"ingress-8080-gra\"),\n\t\t\tZone:        pulumi.String(\"all\"),\n\t\t\tPort:        pulumi.Int(80),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iploadbalancing.NewHttpFrontend(ctx, \"test_frontend\", \u0026iploadbalancing.HttpFrontendArgs{\n\t\t\tServiceName:   pulumi.String(lb.ServiceName),\n\t\t\tDisplayName:   pulumi.String(\"ingress-8080-gra\"),\n\t\t\tZone:          pulumi.String(\"all\"),\n\t\t\tPort:          pulumi.String(\"80,443\"),\n\t\t\tDefaultFarmId: farm80.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.IpLoadBalancing.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.HttpFarm;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.HttpFarmArgs;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.HttpFrontend;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.HttpFrontendArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var lb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n            .serviceName(\"ip-1.2.3.4\")\n            .state(\"ok\")\n            .build());\n\n        var farm80 = new HttpFarm(\"farm80\", HttpFarmArgs.builder()\n            .serviceName(lb.serviceName())\n            .displayName(\"ingress-8080-gra\")\n            .zone(\"all\")\n            .port(80)\n            .build());\n\n        var testFrontend = new HttpFrontend(\"testFrontend\", HttpFrontendArgs.builder()\n            .serviceName(lb.serviceName())\n            .displayName(\"ingress-8080-gra\")\n            .zone(\"all\")\n            .port(\"80,443\")\n            .defaultFarmId(farm80.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  farm80:\n    type: ovh:IpLoadBalancing:HttpFarm\n    properties:\n      serviceName: ${lb.serviceName}\n      displayName: ingress-8080-gra\n      zone: all\n      port: 80\n  testFrontend:\n    type: ovh:IpLoadBalancing:HttpFrontend\n    name: test_frontend\n    properties:\n      serviceName: ${lb.serviceName}\n      displayName: ingress-8080-gra\n      zone: all\n      port: 80,443\n      defaultFarmId: ${farm80.id}\nvariables:\n  lb:\n    fn::invoke:\n      function: ovh:IpLoadBalancing:getIpLoadBalancing\n      arguments:\n        serviceName: ip-1.2.3.4\n        state: ok\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n### With HTTP Header\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst lb = ovh.IpLoadBalancing.getIpLoadBalancing({\n    serviceName: \"ip-1.2.3.4\",\n    state: \"ok\",\n});\nconst farm80 = new ovh.iploadbalancing.HttpFarm(\"farm80\", {\n    serviceName: lb.then(lb =\u003e lb.serviceName),\n    displayName: \"ingress-8080-gra\",\n    zone: \"all\",\n    port: 80,\n});\nconst testFrontend = new ovh.iploadbalancing.HttpFrontend(\"test_frontend\", {\n    serviceName: lb.then(lb =\u003e lb.serviceName),\n    displayName: \"ingress-8080-gra\",\n    zone: \"all\",\n    port: \"80,443\",\n    defaultFarmId: farm80.id,\n    httpHeaders: [\n        \"X-Ip-Header %%ci\",\n        \"X-Port-Header %%cp\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"ip-1.2.3.4\",\n    state=\"ok\")\nfarm80 = ovh.iploadbalancing.HttpFarm(\"farm80\",\n    service_name=lb.service_name,\n    display_name=\"ingress-8080-gra\",\n    zone=\"all\",\n    port=80)\ntest_frontend = ovh.iploadbalancing.HttpFrontend(\"test_frontend\",\n    service_name=lb.service_name,\n    display_name=\"ingress-8080-gra\",\n    zone=\"all\",\n    port=\"80,443\",\n    default_farm_id=farm80.id,\n    http_headers=[\n        \"X-Ip-Header %%ci\",\n        \"X-Port-Header %%cp\",\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 lb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n    {\n        ServiceName = \"ip-1.2.3.4\",\n        State = \"ok\",\n    });\n\n    var farm80 = new Ovh.IpLoadBalancing.HttpFarm(\"farm80\", new()\n    {\n        ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n        DisplayName = \"ingress-8080-gra\",\n        Zone = \"all\",\n        Port = 80,\n    });\n\n    var testFrontend = new Ovh.IpLoadBalancing.HttpFrontend(\"test_frontend\", new()\n    {\n        ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n        DisplayName = \"ingress-8080-gra\",\n        Zone = \"all\",\n        Port = \"80,443\",\n        DefaultFarmId = farm80.Id,\n        HttpHeaders = new[]\n        {\n            \"X-Ip-Header %%ci\",\n            \"X-Port-Header %%cp\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iploadbalancing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tlb, err := iploadbalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\n\t\t\tServiceName: pulumi.StringRef(\"ip-1.2.3.4\"),\n\t\t\tState:       pulumi.StringRef(\"ok\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfarm80, err := iploadbalancing.NewHttpFarm(ctx, \"farm80\", \u0026iploadbalancing.HttpFarmArgs{\n\t\t\tServiceName: pulumi.String(lb.ServiceName),\n\t\t\tDisplayName: pulumi.String(\"ingress-8080-gra\"),\n\t\t\tZone:        pulumi.String(\"all\"),\n\t\t\tPort:        pulumi.Int(80),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iploadbalancing.NewHttpFrontend(ctx, \"test_frontend\", \u0026iploadbalancing.HttpFrontendArgs{\n\t\t\tServiceName:   pulumi.String(lb.ServiceName),\n\t\t\tDisplayName:   pulumi.String(\"ingress-8080-gra\"),\n\t\t\tZone:          pulumi.String(\"all\"),\n\t\t\tPort:          pulumi.String(\"80,443\"),\n\t\t\tDefaultFarmId: farm80.ID(),\n\t\t\tHttpHeaders: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"X-Ip-Header %%ci\"),\n\t\t\t\tpulumi.String(\"X-Port-Header %%cp\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.IpLoadBalancing.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.HttpFarm;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.HttpFarmArgs;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.HttpFrontend;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.HttpFrontendArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var lb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n            .serviceName(\"ip-1.2.3.4\")\n            .state(\"ok\")\n            .build());\n\n        var farm80 = new HttpFarm(\"farm80\", HttpFarmArgs.builder()\n            .serviceName(lb.serviceName())\n            .displayName(\"ingress-8080-gra\")\n            .zone(\"all\")\n            .port(80)\n            .build());\n\n        var testFrontend = new HttpFrontend(\"testFrontend\", HttpFrontendArgs.builder()\n            .serviceName(lb.serviceName())\n            .displayName(\"ingress-8080-gra\")\n            .zone(\"all\")\n            .port(\"80,443\")\n            .defaultFarmId(farm80.id())\n            .httpHeaders(            \n                \"X-Ip-Header %%ci\",\n                \"X-Port-Header %%cp\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  farm80:\n    type: ovh:IpLoadBalancing:HttpFarm\n    properties:\n      serviceName: ${lb.serviceName}\n      displayName: ingress-8080-gra\n      zone: all\n      port: 80\n  testFrontend:\n    type: ovh:IpLoadBalancing:HttpFrontend\n    name: test_frontend\n    properties:\n      serviceName: ${lb.serviceName}\n      displayName: ingress-8080-gra\n      zone: all\n      port: 80,443\n      defaultFarmId: ${farm80.id}\n      httpHeaders:\n        - X-Ip-Header %%ci\n        - X-Port-Header %%cp\nvariables:\n  lb:\n    fn::invoke:\n      function: ovh:IpLoadBalancing:getIpLoadBalancing\n      arguments:\n        serviceName: ip-1.2.3.4\n        state: ok\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nHTTP frontend can be imported using the following format `service_name` and the `id` of the frontend separated by \"/\" e.g.\n\nbash\n\n```sh\n$ pulumi import ovh:IpLoadBalancing/httpFrontend:HttpFrontend testfrontend service_name/http_frontend_id\n```\n\n","properties":{"allowedSources":{"type":"array","items":{"type":"string"},"description":"Restrict IP Load Balancing access to these ip block. No restriction if null. List of IP blocks.\n"},"dedicatedIpfos":{"type":"array","items":{"type":"string"},"description":"Only attach frontend on these ip. No restriction if null. List of Ip blocks.\n"},"defaultFarmId":{"type":"integer","description":"Default TCP Farm of your frontend\n"},"defaultSslId":{"type":"integer","description":"Default ssl served to your customer\n"},"disabled":{"type":"boolean","description":"Disable your frontend. Default: 'false'\n"},"displayName":{"type":"string","description":"Human readable name for your frontend, this field is for you\n"},"hsts":{"type":"boolean","description":"HTTP Strict Transport Security. Default: 'false'\n"},"httpHeaders":{"type":"array","items":{"type":"string"},"description":"HTTP headers to add to the frontend. List of string.\n"},"port":{"type":"string","description":"Port(s) attached to your frontend. Supports single port (numerical value), range (2 dash-delimited increasing ports) and comma-separated list of 'single port' and/or 'range'. Each port must be in the [1;49151] range\n"},"redirectLocation":{"type":"string","description":"Redirection HTTP'\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"ssl":{"type":"boolean","description":"SSL deciphering. Default: 'false'\n"},"zone":{"type":"string","description":"Zone where the frontend will be defined (ie. `gra`, `bhs` also supports `all`)\n"}},"required":["defaultFarmId","defaultSslId","port","serviceName","zone"],"inputProperties":{"allowedSources":{"type":"array","items":{"type":"string"},"description":"Restrict IP Load Balancing access to these ip block. No restriction if null. List of IP blocks.\n"},"dedicatedIpfos":{"type":"array","items":{"type":"string"},"description":"Only attach frontend on these ip. No restriction if null. List of Ip blocks.\n"},"defaultFarmId":{"type":"integer","description":"Default TCP Farm of your frontend\n"},"defaultSslId":{"type":"integer","description":"Default ssl served to your customer\n"},"disabled":{"type":"boolean","description":"Disable your frontend. Default: 'false'\n"},"displayName":{"type":"string","description":"Human readable name for your frontend, this field is for you\n"},"hsts":{"type":"boolean","description":"HTTP Strict Transport Security. Default: 'false'\n"},"httpHeaders":{"type":"array","items":{"type":"string"},"description":"HTTP headers to add to the frontend. List of string.\n"},"port":{"type":"string","description":"Port(s) attached to your frontend. Supports single port (numerical value), range (2 dash-delimited increasing ports) and comma-separated list of 'single port' and/or 'range'. Each port must be in the [1;49151] range\n"},"redirectLocation":{"type":"string","description":"Redirection HTTP'\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n","willReplaceOnChanges":true},"ssl":{"type":"boolean","description":"SSL deciphering. Default: 'false'\n"},"zone":{"type":"string","description":"Zone where the frontend will be defined (ie. `gra`, `bhs` also supports `all`)\n"}},"requiredInputs":["port","serviceName","zone"],"stateInputs":{"description":"Input properties used for looking up and filtering HttpFrontend resources.\n","properties":{"allowedSources":{"type":"array","items":{"type":"string"},"description":"Restrict IP Load Balancing access to these ip block. No restriction if null. List of IP blocks.\n"},"dedicatedIpfos":{"type":"array","items":{"type":"string"},"description":"Only attach frontend on these ip. No restriction if null. List of Ip blocks.\n"},"defaultFarmId":{"type":"integer","description":"Default TCP Farm of your frontend\n"},"defaultSslId":{"type":"integer","description":"Default ssl served to your customer\n"},"disabled":{"type":"boolean","description":"Disable your frontend. Default: 'false'\n"},"displayName":{"type":"string","description":"Human readable name for your frontend, this field is for you\n"},"hsts":{"type":"boolean","description":"HTTP Strict Transport Security. Default: 'false'\n"},"httpHeaders":{"type":"array","items":{"type":"string"},"description":"HTTP headers to add to the frontend. List of string.\n"},"port":{"type":"string","description":"Port(s) attached to your frontend. Supports single port (numerical value), range (2 dash-delimited increasing ports) and comma-separated list of 'single port' and/or 'range'. Each port must be in the [1;49151] range\n"},"redirectLocation":{"type":"string","description":"Redirection HTTP'\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n","willReplaceOnChanges":true},"ssl":{"type":"boolean","description":"SSL deciphering. Default: 'false'\n"},"zone":{"type":"string","description":"Zone where the frontend will be defined (ie. `gra`, `bhs` also supports `all`)\n"}},"type":"object"}},"ovh:IpLoadBalancing/httpRoute:HttpRoute":{"description":"Manage HTTP route for a loadbalancer service\n\n## Example Usage\n\nRoute which redirect all url to https.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst httpsRedirect = new ovh.iploadbalancing.HttpRoute(\"https_redirect\", {\n    serviceName: \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n    displayName: \"Redirect to HTTPS\",\n    weight: 1,\n    action: {\n        status: 302,\n        target: \"https://${host}${path}${arguments}\",\n        type: \"redirect\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nhttps_redirect = ovh.iploadbalancing.HttpRoute(\"https_redirect\",\n    service_name=\"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n    display_name=\"Redirect to HTTPS\",\n    weight=1,\n    action={\n        \"status\": 302,\n        \"target\": \"https://${host}${path}${arguments}\",\n        \"type\": \"redirect\",\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 httpsRedirect = new Ovh.IpLoadBalancing.HttpRoute(\"https_redirect\", new()\n    {\n        ServiceName = \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n        DisplayName = \"Redirect to HTTPS\",\n        Weight = 1,\n        Action = new Ovh.IpLoadBalancing.Inputs.HttpRouteActionArgs\n        {\n            Status = 302,\n            Target = \"https://${host}${path}${arguments}\",\n            Type = \"redirect\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iploadbalancing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := iploadbalancing.NewHttpRoute(ctx, \"https_redirect\", \u0026iploadbalancing.HttpRouteArgs{\n\t\t\tServiceName: pulumi.String(\"loadbalancer-xxxxxxxxxxxxxxxxxx\"),\n\t\t\tDisplayName: pulumi.String(\"Redirect to HTTPS\"),\n\t\t\tWeight:      pulumi.Int(1),\n\t\t\tAction: \u0026iploadbalancing.HttpRouteActionArgs{\n\t\t\t\tStatus: pulumi.Int(302),\n\t\t\t\tTarget: pulumi.String(\"https://${host}${path}${arguments}\"),\n\t\t\t\tType:   pulumi.String(\"redirect\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.HttpRoute;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.HttpRouteArgs;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.HttpRouteActionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var httpsRedirect = new HttpRoute(\"httpsRedirect\", HttpRouteArgs.builder()\n            .serviceName(\"loadbalancer-xxxxxxxxxxxxxxxxxx\")\n            .displayName(\"Redirect to HTTPS\")\n            .weight(1)\n            .action(HttpRouteActionArgs.builder()\n                .status(302)\n                .target(\"https://${host}${path}${arguments}\")\n                .type(\"redirect\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  httpsRedirect:\n    type: ovh:IpLoadBalancing:HttpRoute\n    name: https_redirect\n    properties:\n      serviceName: loadbalancer-xxxxxxxxxxxxxxxxxx\n      displayName: Redirect to HTTPS\n      weight: 1\n      action:\n        status: 302\n        target: https://$${host}$${path}$${arguments}\n        type: redirect\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nHTTP route can be imported using the following format `service_name` and the `id` of the route separated by \"/\" e.g.\n\nbash\n\n```sh\n$ pulumi import ovh:IpLoadBalancing/httpRoute:HttpRoute httpsredirect service_name/route_id\n```\n\n","properties":{"action":{"$ref":"#/types/ovh:IpLoadBalancing/HttpRouteAction:HttpRouteAction","description":"Action triggered when all rules match\n"},"displayName":{"type":"string","description":"Human readable name for your route, this field is for you\n"},"frontendId":{"type":"integer","description":"Route traffic for this frontend\n"},"rules":{"type":"array","items":{"$ref":"#/types/ovh:IpLoadBalancing/HttpRouteRule:HttpRouteRule"},"description":"List of rules to match to trigger action\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"status":{"type":"string","description":"Route status. Routes in \"ok\" state are ready to operate\n"},"weight":{"type":"integer","description":"Route priority ([0..255]). 0 if null. Highest priority routes are evaluated first. Only the first matching route will trigger an action\n"}},"required":["action","frontendId","rules","serviceName","status","weight"],"inputProperties":{"action":{"$ref":"#/types/ovh:IpLoadBalancing/HttpRouteAction:HttpRouteAction","description":"Action triggered when all rules match\n"},"displayName":{"type":"string","description":"Human readable name for your route, this field is for you\n"},"frontendId":{"type":"integer","description":"Route traffic for this frontend\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n","willReplaceOnChanges":true},"weight":{"type":"integer","description":"Route priority ([0..255]). 0 if null. Highest priority routes are evaluated first. Only the first matching route will trigger an action\n"}},"requiredInputs":["action","serviceName"],"stateInputs":{"description":"Input properties used for looking up and filtering HttpRoute resources.\n","properties":{"action":{"$ref":"#/types/ovh:IpLoadBalancing/HttpRouteAction:HttpRouteAction","description":"Action triggered when all rules match\n"},"displayName":{"type":"string","description":"Human readable name for your route, this field is for you\n"},"frontendId":{"type":"integer","description":"Route traffic for this frontend\n"},"rules":{"type":"array","items":{"$ref":"#/types/ovh:IpLoadBalancing/HttpRouteRule:HttpRouteRule"},"description":"List of rules to match to trigger action\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Route status. Routes in \"ok\" state are ready to operate\n"},"weight":{"type":"integer","description":"Route priority ([0..255]). 0 if null. Highest priority routes are evaluated first. Only the first matching route will trigger an action\n"}},"type":"object"}},"ovh:IpLoadBalancing/httpRouteRule:HttpRouteRule":{"description":"Manage rules for HTTP route.\n\n## Example Usage\n\nRoute which redirect all URL to HTTPs for example.com (Vhost).\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst httpsRedirect = new ovh.iploadbalancing.HttpRoute(\"https_redirect\", {\n    serviceName: \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n    displayName: \"Redirect to HTTPS\",\n    weight: 1,\n    frontendId: 11111,\n    action: {\n        status: 302,\n        target: \"https://${host}${path}${arguments}\",\n        type: \"redirect\",\n    },\n});\nconst exampleRule = new ovh.iploadbalancing.HttpRouteRule(\"example_rule\", {\n    serviceName: \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n    routeId: httpsRedirect.id,\n    displayName: \"Match example.com host\",\n    field: \"host\",\n    match: \"is\",\n    negate: false,\n    pattern: \"example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nhttps_redirect = ovh.iploadbalancing.HttpRoute(\"https_redirect\",\n    service_name=\"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n    display_name=\"Redirect to HTTPS\",\n    weight=1,\n    frontend_id=11111,\n    action={\n        \"status\": 302,\n        \"target\": \"https://${host}${path}${arguments}\",\n        \"type\": \"redirect\",\n    })\nexample_rule = ovh.iploadbalancing.HttpRouteRule(\"example_rule\",\n    service_name=\"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n    route_id=https_redirect.id,\n    display_name=\"Match example.com host\",\n    field=\"host\",\n    match=\"is\",\n    negate=False,\n    pattern=\"example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var httpsRedirect = new Ovh.IpLoadBalancing.HttpRoute(\"https_redirect\", new()\n    {\n        ServiceName = \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n        DisplayName = \"Redirect to HTTPS\",\n        Weight = 1,\n        FrontendId = 11111,\n        Action = new Ovh.IpLoadBalancing.Inputs.HttpRouteActionArgs\n        {\n            Status = 302,\n            Target = \"https://${host}${path}${arguments}\",\n            Type = \"redirect\",\n        },\n    });\n\n    var exampleRule = new Ovh.IpLoadBalancing.HttpRouteRule(\"example_rule\", new()\n    {\n        ServiceName = \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n        RouteId = httpsRedirect.Id,\n        DisplayName = \"Match example.com host\",\n        Field = \"host\",\n        Match = \"is\",\n        Negate = false,\n        Pattern = \"example.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iploadbalancing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\thttpsRedirect, err := iploadbalancing.NewHttpRoute(ctx, \"https_redirect\", \u0026iploadbalancing.HttpRouteArgs{\n\t\t\tServiceName: pulumi.String(\"loadbalancer-xxxxxxxxxxxxxxxxxx\"),\n\t\t\tDisplayName: pulumi.String(\"Redirect to HTTPS\"),\n\t\t\tWeight:      pulumi.Int(1),\n\t\t\tFrontendId:  pulumi.Int(11111),\n\t\t\tAction: \u0026iploadbalancing.HttpRouteActionArgs{\n\t\t\t\tStatus: pulumi.Int(302),\n\t\t\t\tTarget: pulumi.String(\"https://${host}${path}${arguments}\"),\n\t\t\t\tType:   pulumi.String(\"redirect\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iploadbalancing.NewHttpRouteRule(ctx, \"example_rule\", \u0026iploadbalancing.HttpRouteRuleArgs{\n\t\t\tServiceName: pulumi.String(\"loadbalancer-xxxxxxxxxxxxxxxxxx\"),\n\t\t\tRouteId:     httpsRedirect.ID(),\n\t\t\tDisplayName: pulumi.String(\"Match example.com host\"),\n\t\t\tField:       pulumi.String(\"host\"),\n\t\t\tMatch:       pulumi.String(\"is\"),\n\t\t\tNegate:      pulumi.Bool(false),\n\t\t\tPattern:     pulumi.String(\"example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.HttpRoute;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.HttpRouteArgs;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.HttpRouteActionArgs;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.HttpRouteRule;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.HttpRouteRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var httpsRedirect = new HttpRoute(\"httpsRedirect\", HttpRouteArgs.builder()\n            .serviceName(\"loadbalancer-xxxxxxxxxxxxxxxxxx\")\n            .displayName(\"Redirect to HTTPS\")\n            .weight(1)\n            .frontendId(11111)\n            .action(HttpRouteActionArgs.builder()\n                .status(302)\n                .target(\"https://${host}${path}${arguments}\")\n                .type(\"redirect\")\n                .build())\n            .build());\n\n        var exampleRule = new HttpRouteRule(\"exampleRule\", HttpRouteRuleArgs.builder()\n            .serviceName(\"loadbalancer-xxxxxxxxxxxxxxxxxx\")\n            .routeId(httpsRedirect.id())\n            .displayName(\"Match example.com host\")\n            .field(\"host\")\n            .match(\"is\")\n            .negate(false)\n            .pattern(\"example.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  httpsRedirect:\n    type: ovh:IpLoadBalancing:HttpRoute\n    name: https_redirect\n    properties:\n      serviceName: loadbalancer-xxxxxxxxxxxxxxxxxx\n      displayName: Redirect to HTTPS\n      weight: 1\n      frontendId: 11111\n      action:\n        status: 302\n        target: https://$${host}$${path}$${arguments}\n        type: redirect\n  exampleRule:\n    type: ovh:IpLoadBalancing:HttpRouteRule\n    name: example_rule\n    properties:\n      serviceName: loadbalancer-xxxxxxxxxxxxxxxxxx\n      routeId: ${httpsRedirect.id}\n      displayName: Match example.com host\n      field: host\n      match: is\n      negate: false\n      pattern: example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nRule which match a specific header (same effect as the host match above).\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst exampleRule = new ovh.iploadbalancing.HttpRouteRule(\"example_rule\", {\n    serviceName: \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n    routeId: httpsRedirect.id,\n    displayName: \"Match example.com Host header\",\n    field: \"headers\",\n    match: \"is\",\n    negate: false,\n    pattern: \"example.com\",\n    subField: \"Host\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nexample_rule = ovh.iploadbalancing.HttpRouteRule(\"example_rule\",\n    service_name=\"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n    route_id=https_redirect[\"id\"],\n    display_name=\"Match example.com Host header\",\n    field=\"headers\",\n    match=\"is\",\n    negate=False,\n    pattern=\"example.com\",\n    sub_field=\"Host\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleRule = new Ovh.IpLoadBalancing.HttpRouteRule(\"example_rule\", new()\n    {\n        ServiceName = \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n        RouteId = httpsRedirect.Id,\n        DisplayName = \"Match example.com Host header\",\n        Field = \"headers\",\n        Match = \"is\",\n        Negate = false,\n        Pattern = \"example.com\",\n        SubField = \"Host\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iploadbalancing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := iploadbalancing.NewHttpRouteRule(ctx, \"example_rule\", \u0026iploadbalancing.HttpRouteRuleArgs{\n\t\t\tServiceName: pulumi.String(\"loadbalancer-xxxxxxxxxxxxxxxxxx\"),\n\t\t\tRouteId:     pulumi.Any(httpsRedirect.Id),\n\t\t\tDisplayName: pulumi.String(\"Match example.com Host header\"),\n\t\t\tField:       pulumi.String(\"headers\"),\n\t\t\tMatch:       pulumi.String(\"is\"),\n\t\t\tNegate:      pulumi.Bool(false),\n\t\t\tPattern:     pulumi.String(\"example.com\"),\n\t\t\tSubField:    pulumi.String(\"Host\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.HttpRouteRule;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.HttpRouteRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleRule = new HttpRouteRule(\"exampleRule\", HttpRouteRuleArgs.builder()\n            .serviceName(\"loadbalancer-xxxxxxxxxxxxxxxxxx\")\n            .routeId(httpsRedirect.id())\n            .displayName(\"Match example.com Host header\")\n            .field(\"headers\")\n            .match(\"is\")\n            .negate(false)\n            .pattern(\"example.com\")\n            .subField(\"Host\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleRule:\n    type: ovh:IpLoadBalancing:HttpRouteRule\n    name: example_rule\n    properties:\n      serviceName: loadbalancer-xxxxxxxxxxxxxxxxxx\n      routeId: ${httpsRedirect.id}\n      displayName: Match example.com Host header\n      field: headers\n      match: is\n      negate: false\n      pattern: example.com\n      subField: Host\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nHTTP route rule can be imported using the following format `service_name`, the `id` of the route and the `id` of the rule separated by \"/\" e.g.\n\nbash\n\n```sh\n$ pulumi import ovh:IpLoadBalancing/httpRouteRule:HttpRouteRule examplerule service_name/route_id/rule_id\n```\n\n","properties":{"displayName":{"type":"string","description":"Human readable name for your rule, this field is for you\n"},"field":{"type":"string","description":"Name of the field to match like \"protocol\" or \"host\". See \"/ipLoadbalancing/{serviceName}/availableRouteRules\" for a list of available rules\n"},"match":{"type":"string","description":"Matching operator. Not all operators are available for all fields. See \"/ipLoadbalancing/{serviceName}/availableRouteRules\"\n"},"negate":{"type":"boolean","description":"Invert the matching operator effect\n"},"pattern":{"type":"string","description":"Value to match against this match. Interpretation if this field depends on the match and field\n"},"routeId":{"type":"string","description":"The route to apply this rule\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"subField":{"type":"string","description":"Name of sub-field, if applicable. This may be a Cookie or Header name for instance\n"}},"required":["field","match","negate","routeId","serviceName"],"inputProperties":{"displayName":{"type":"string","description":"Human readable name for your rule, this field is for you\n"},"field":{"type":"string","description":"Name of the field to match like \"protocol\" or \"host\". See \"/ipLoadbalancing/{serviceName}/availableRouteRules\" for a list of available rules\n"},"match":{"type":"string","description":"Matching operator. Not all operators are available for all fields. See \"/ipLoadbalancing/{serviceName}/availableRouteRules\"\n"},"negate":{"type":"boolean","description":"Invert the matching operator effect\n"},"pattern":{"type":"string","description":"Value to match against this match. Interpretation if this field depends on the match and field\n"},"routeId":{"type":"string","description":"The route to apply this rule\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n","willReplaceOnChanges":true},"subField":{"type":"string","description":"Name of sub-field, if applicable. This may be a Cookie or Header name for instance\n"}},"requiredInputs":["field","match","routeId","serviceName"],"stateInputs":{"description":"Input properties used for looking up and filtering HttpRouteRule resources.\n","properties":{"displayName":{"type":"string","description":"Human readable name for your rule, this field is for you\n"},"field":{"type":"string","description":"Name of the field to match like \"protocol\" or \"host\". See \"/ipLoadbalancing/{serviceName}/availableRouteRules\" for a list of available rules\n"},"match":{"type":"string","description":"Matching operator. Not all operators are available for all fields. See \"/ipLoadbalancing/{serviceName}/availableRouteRules\"\n"},"negate":{"type":"boolean","description":"Invert the matching operator effect\n"},"pattern":{"type":"string","description":"Value to match against this match. Interpretation if this field depends on the match and field\n"},"routeId":{"type":"string","description":"The route to apply this rule\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n","willReplaceOnChanges":true},"subField":{"type":"string","description":"Name of sub-field, if applicable. This may be a Cookie or Header name for instance\n"}},"type":"object"}},"ovh:IpLoadBalancing/loadBalancer:LoadBalancer":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst myaccount = ovh.Me.getMe({});\nconst mycart = myaccount.then(myaccount =\u003e ovh.Order.getCart({\n    ovhSubsidiary: myaccount.ovhSubsidiary,\n}));\nconst iplb = mycart.then(mycart =\u003e ovh.Order.getCartProductPlan({\n    cartId: mycart.id,\n    priceCapacity: \"renew\",\n    product: \"ipLoadbalancing\",\n    planCode: \"iplb-lb1\",\n}));\nconst bhs = Promise.all([iplb, iplb, iplb, iplb]).then(([iplb, iplb1, iplb2, iplb3]) =\u003e ovh.Order.getCartProductOptionsPlan({\n    cartId: iplb.cartId,\n    priceCapacity: iplb1.priceCapacity,\n    product: iplb2.product,\n    planCode: iplb3.planCode,\n    optionsPlanCode: \"iplb-zone-lb1-rbx\",\n}));\nconst iplbLb1 = new ovh.iploadbalancing.LoadBalancer(\"iplb_lb1\", {\n    ovhSubsidiary: mycart.then(mycart =\u003e mycart.ovhSubsidiary),\n    displayName: \"my ip loadbalancing\",\n    plan: {\n        duration: iplb.then(iplb =\u003e iplb.selectedPrices?.[0]?.duration),\n        planCode: iplb.then(iplb =\u003e iplb.planCode),\n        pricingMode: iplb.then(iplb =\u003e iplb.selectedPrices?.[0]?.pricingMode),\n    },\n    planOptions: [{\n        duration: bhs.then(bhs =\u003e bhs.selectedPrices?.[0]?.duration),\n        planCode: bhs.then(bhs =\u003e bhs.planCode),\n        pricingMode: bhs.then(bhs =\u003e bhs.selectedPrices?.[0]?.pricingMode),\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmyaccount = ovh.Me.get_me()\nmycart = ovh.Order.get_cart(ovh_subsidiary=myaccount.ovh_subsidiary)\niplb = ovh.Order.get_cart_product_plan(cart_id=mycart.id,\n    price_capacity=\"renew\",\n    product=\"ipLoadbalancing\",\n    plan_code=\"iplb-lb1\")\nbhs = ovh.Order.get_cart_product_options_plan(cart_id=iplb.cart_id,\n    price_capacity=iplb.price_capacity,\n    product=iplb.product,\n    plan_code=iplb.plan_code,\n    options_plan_code=\"iplb-zone-lb1-rbx\")\niplb_lb1 = ovh.iploadbalancing.LoadBalancer(\"iplb_lb1\",\n    ovh_subsidiary=mycart.ovh_subsidiary,\n    display_name=\"my ip loadbalancing\",\n    plan={\n        \"duration\": iplb.selected_prices[0].duration,\n        \"plan_code\": iplb.plan_code,\n        \"pricing_mode\": iplb.selected_prices[0].pricing_mode,\n    },\n    plan_options=[{\n        \"duration\": bhs.selected_prices[0].duration,\n        \"plan_code\": bhs.plan_code,\n        \"pricing_mode\": bhs.selected_prices[0].pricing_mode,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myaccount = Ovh.Me.GetMe.Invoke();\n\n    var mycart = Ovh.Order.GetCart.Invoke(new()\n    {\n        OvhSubsidiary = myaccount.Apply(getMeResult =\u003e getMeResult.OvhSubsidiary),\n    });\n\n    var iplb = Ovh.Order.GetCartProductPlan.Invoke(new()\n    {\n        CartId = mycart.Apply(getCartResult =\u003e getCartResult.Id),\n        PriceCapacity = \"renew\",\n        Product = \"ipLoadbalancing\",\n        PlanCode = \"iplb-lb1\",\n    });\n\n    var bhs = Ovh.Order.GetCartProductOptionsPlan.Invoke(new()\n    {\n        CartId = iplb.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.CartId),\n        PriceCapacity = iplb.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PriceCapacity),\n        Product = iplb.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.Product),\n        PlanCode = iplb.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PlanCode),\n        OptionsPlanCode = \"iplb-zone-lb1-rbx\",\n    });\n\n    var iplbLb1 = new Ovh.IpLoadBalancing.LoadBalancer(\"iplb_lb1\", new()\n    {\n        OvhSubsidiary = mycart.Apply(getCartResult =\u003e getCartResult.OvhSubsidiary),\n        DisplayName = \"my ip loadbalancing\",\n        Plan = new Ovh.IpLoadBalancing.Inputs.LoadBalancerPlanArgs\n        {\n            Duration = iplb.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.Duration),\n            PlanCode = iplb.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PlanCode),\n            PricingMode = iplb.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.PricingMode),\n        },\n        PlanOptions = new[]\n        {\n            new Ovh.IpLoadBalancing.Inputs.LoadBalancerPlanOptionArgs\n            {\n                Duration = bhs.Apply(getCartProductOptionsPlanResult =\u003e getCartProductOptionsPlanResult.SelectedPrices[0]?.Duration),\n                PlanCode = bhs.Apply(getCartProductOptionsPlanResult =\u003e getCartProductOptionsPlanResult.PlanCode),\n                PricingMode = bhs.Apply(getCartProductOptionsPlanResult =\u003e getCartProductOptionsPlanResult.SelectedPrices[0]?.PricingMode),\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iploadbalancing\"\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/me\"\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/order\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyaccount, err := me.GetMe(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmycart, err := order.GetCart(ctx, \u0026order.GetCartArgs{\n\t\t\tOvhSubsidiary: myaccount.OvhSubsidiary,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tiplb, err := order.GetCartProductPlan(ctx, \u0026order.GetCartProductPlanArgs{\n\t\t\tCartId:        mycart.Id,\n\t\t\tPriceCapacity: \"renew\",\n\t\t\tProduct:       \"ipLoadbalancing\",\n\t\t\tPlanCode:      \"iplb-lb1\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbhs, err := order.GetCartProductOptionsPlan(ctx, \u0026order.GetCartProductOptionsPlanArgs{\n\t\t\tCartId:          iplb.CartId,\n\t\t\tPriceCapacity:   iplb.PriceCapacity,\n\t\t\tProduct:         iplb.Product,\n\t\t\tPlanCode:        iplb.PlanCode,\n\t\t\tOptionsPlanCode: \"iplb-zone-lb1-rbx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iploadbalancing.NewLoadBalancer(ctx, \"iplb_lb1\", \u0026iploadbalancing.LoadBalancerArgs{\n\t\t\tOvhSubsidiary: pulumi.String(mycart.OvhSubsidiary),\n\t\t\tDisplayName:   pulumi.String(\"my ip loadbalancing\"),\n\t\t\tPlan: \u0026iploadbalancing.LoadBalancerPlanArgs{\n\t\t\t\tDuration:    pulumi.String(iplb.SelectedPrices[0].Duration),\n\t\t\t\tPlanCode:    pulumi.String(iplb.PlanCode),\n\t\t\t\tPricingMode: pulumi.String(iplb.SelectedPrices[0].PricingMode),\n\t\t\t},\n\t\t\tPlanOptions: iploadbalancing.LoadBalancerPlanOptionArray{\n\t\t\t\t\u0026iploadbalancing.LoadBalancerPlanOptionArgs{\n\t\t\t\t\tDuration:    pulumi.String(bhs.SelectedPrices[0].Duration),\n\t\t\t\t\tPlanCode:    pulumi.String(bhs.PlanCode),\n\t\t\t\t\tPricingMode: pulumi.String(bhs.SelectedPrices[0].PricingMode),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.MeFunctions;\nimport com.pulumi.ovh.Order.OrderFunctions;\nimport com.pulumi.ovh.Order.inputs.GetCartArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductPlanArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductOptionsPlanArgs;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.LoadBalancer;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.LoadBalancerArgs;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.LoadBalancerPlanArgs;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.LoadBalancerPlanOptionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myaccount = MeFunctions.getMe(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var mycart = OrderFunctions.getCart(GetCartArgs.builder()\n            .ovhSubsidiary(myaccount.ovhSubsidiary())\n            .build());\n\n        final var iplb = OrderFunctions.getCartProductPlan(GetCartProductPlanArgs.builder()\n            .cartId(mycart.id())\n            .priceCapacity(\"renew\")\n            .product(\"ipLoadbalancing\")\n            .planCode(\"iplb-lb1\")\n            .build());\n\n        final var bhs = OrderFunctions.getCartProductOptionsPlan(GetCartProductOptionsPlanArgs.builder()\n            .cartId(iplb.cartId())\n            .priceCapacity(iplb.priceCapacity())\n            .product(iplb.product())\n            .planCode(iplb.planCode())\n            .optionsPlanCode(\"iplb-zone-lb1-rbx\")\n            .build());\n\n        var iplbLb1 = new LoadBalancer(\"iplbLb1\", LoadBalancerArgs.builder()\n            .ovhSubsidiary(mycart.ovhSubsidiary())\n            .displayName(\"my ip loadbalancing\")\n            .plan(LoadBalancerPlanArgs.builder()\n                .duration(iplb.selectedPrices()[0].duration())\n                .planCode(iplb.planCode())\n                .pricingMode(iplb.selectedPrices()[0].pricingMode())\n                .build())\n            .planOptions(LoadBalancerPlanOptionArgs.builder()\n                .duration(bhs.selectedPrices()[0].duration())\n                .planCode(bhs.planCode())\n                .pricingMode(bhs.selectedPrices()[0].pricingMode())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  iplbLb1:\n    type: ovh:IpLoadBalancing:LoadBalancer\n    name: iplb_lb1\n    properties:\n      ovhSubsidiary: ${mycart.ovhSubsidiary}\n      displayName: my ip loadbalancing\n      plan:\n        duration: ${iplb.selectedPrices[0].duration}\n        planCode: ${iplb.planCode}\n        pricingMode: ${iplb.selectedPrices[0].pricingMode}\n      planOptions:\n        - duration: ${bhs.selectedPrices[0].duration}\n          planCode: ${bhs.planCode}\n          pricingMode: ${bhs.selectedPrices[0].pricingMode}\nvariables:\n  myaccount:\n    fn::invoke:\n      function: ovh:Me:getMe\n      arguments: {}\n  mycart:\n    fn::invoke:\n      function: ovh:Order:getCart\n      arguments:\n        ovhSubsidiary: ${myaccount.ovhSubsidiary}\n  iplb:\n    fn::invoke:\n      function: ovh:Order:getCartProductPlan\n      arguments:\n        cartId: ${mycart.id}\n        priceCapacity: renew\n        product: ipLoadbalancing\n        planCode: iplb-lb1\n  bhs:\n    fn::invoke:\n      function: ovh:Order:getCartProductOptionsPlan\n      arguments:\n        cartId: ${iplb.cartId}\n        priceCapacity: ${iplb.priceCapacity}\n        product: ${iplb.product}\n        planCode: ${iplb.planCode}\n        optionsPlanCode: iplb-zone-lb1-rbx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud IP load balancing services can be imported using its `service_name`.\n\nUsing the following configuration:\n\nterraform\n\nimport {\n\n  to = ovh_iploadbalancing.iplb\n\n  id = \"\u003cservice name\u003e\"\n\n}\n\nYou can then run:\n\nbash\n\n$ pulumi preview -generate-config-out=iplb.tf\n\n$ pulumi up\n\nThe file `iplb.tf` will then contain the imported resource's configuration, that can be copied next to the `import` block above. See https://developer.hashicorp.com/terraform/language/import/generating-configuration for more details.\n\n","properties":{"LoadBalancerURN":{"type":"string","description":"URN of the load balancer, used when writing IAM policies\n"},"displayName":{"type":"string","description":"Set the name displayed in ManagerV6 for your iplb (max 50 chars)\n"},"ipLoadbalancing":{"type":"string","description":"Your IP load balancing\n"},"ipv4":{"type":"string","description":"The IPV4 associated to your IP load balancing\n"},"ipv6":{"type":"string","description":"The IPV6 associated to your IP load balancing. DEPRECATED.\n"},"metricsToken":{"type":"string","description":"The metrics token associated with your IP load balancing\n","secret":true},"offer":{"type":"string","description":"The offer of your IP load balancing\n"},"orderableZones":{"type":"array","items":{"$ref":"#/types/ovh:IpLoadBalancing/LoadBalancerOrderableZone:LoadBalancerOrderableZone"},"description":"Available additional zone for your Load Balancer\n"},"orders":{"type":"array","items":{"$ref":"#/types/ovh:IpLoadBalancing/LoadBalancerOrder:LoadBalancerOrder"},"description":"Details about an Order\n"},"ovhSubsidiary":{"type":"string","description":"OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json)\n"},"paymentMean":{"type":"string","description":"Ovh payment mode\n","deprecationMessage":"This field is not anymore used since the API has been deprecated in favor of /payment/mean. Now, the default payment mean is used."},"plan":{"$ref":"#/types/ovh:IpLoadBalancing/LoadBalancerPlan:LoadBalancerPlan","description":"Product Plan to order\n"},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:IpLoadBalancing/LoadBalancerPlanOption:LoadBalancerPlanOption"},"description":"Product Plan to order\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"sslConfiguration":{"type":"string","description":"Modern oldest compatible clients : Firefox 27, Chrome 30, IE 11 on Windows 7, Edge, Opera 17, Safari 9, Android 5.0, and Java 8. Intermediate oldest compatible clients : Firefox 1, Chrome 1, IE 7, Opera 5, Safari 1, Windows XP IE8, Android 2.3, Java 7. Intermediate if null. one of \"intermediate\", \"modern\".\n"},"state":{"type":"string","description":"Current state of your IP\n"},"vrackEligibility":{"type":"boolean","description":"Vrack eligibility\n"},"vrackName":{"type":"string","description":"Name of the vRack on which the current Load Balancer is attached to, as it is named on vRack product\n"},"zones":{"type":"array","items":{"type":"string"},"description":"Location where your service is\n"}},"required":["displayName","ipLoadbalancing","ipv4","ipv6","metricsToken","offer","orders","orderableZones","ovhSubsidiary","plan","serviceName","sslConfiguration","state","LoadBalancerURN","vrackEligibility","vrackName","zones"],"inputProperties":{"displayName":{"type":"string","description":"Set the name displayed in ManagerV6 for your iplb (max 50 chars)\n"},"orders":{"type":"array","items":{"$ref":"#/types/ovh:IpLoadBalancing/LoadBalancerOrder:LoadBalancerOrder"},"description":"Details about an Order\n"},"ovhSubsidiary":{"type":"string","description":"OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json)\n","willReplaceOnChanges":true},"paymentMean":{"type":"string","description":"Ovh payment mode\n","deprecationMessage":"This field is not anymore used since the API has been deprecated in favor of /payment/mean. Now, the default payment mean is used.","willReplaceOnChanges":true},"plan":{"$ref":"#/types/ovh:IpLoadBalancing/LoadBalancerPlan:LoadBalancerPlan","description":"Product Plan to order\n","willReplaceOnChanges":true},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:IpLoadBalancing/LoadBalancerPlanOption:LoadBalancerPlanOption"},"description":"Product Plan to order\n","willReplaceOnChanges":true},"sslConfiguration":{"type":"string","description":"Modern oldest compatible clients : Firefox 27, Chrome 30, IE 11 on Windows 7, Edge, Opera 17, Safari 9, Android 5.0, and Java 8. Intermediate oldest compatible clients : Firefox 1, Chrome 1, IE 7, Opera 5, Safari 1, Windows XP IE8, Android 2.3, Java 7. Intermediate if null. one of \"intermediate\", \"modern\".\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering LoadBalancer resources.\n","properties":{"LoadBalancerURN":{"type":"string","description":"URN of the load balancer, used when writing IAM policies\n"},"displayName":{"type":"string","description":"Set the name displayed in ManagerV6 for your iplb (max 50 chars)\n"},"ipLoadbalancing":{"type":"string","description":"Your IP load balancing\n"},"ipv4":{"type":"string","description":"The IPV4 associated to your IP load balancing\n"},"ipv6":{"type":"string","description":"The IPV6 associated to your IP load balancing. DEPRECATED.\n"},"metricsToken":{"type":"string","description":"The metrics token associated with your IP load balancing\n","secret":true},"offer":{"type":"string","description":"The offer of your IP load balancing\n"},"orderableZones":{"type":"array","items":{"$ref":"#/types/ovh:IpLoadBalancing/LoadBalancerOrderableZone:LoadBalancerOrderableZone"},"description":"Available additional zone for your Load Balancer\n"},"orders":{"type":"array","items":{"$ref":"#/types/ovh:IpLoadBalancing/LoadBalancerOrder:LoadBalancerOrder"},"description":"Details about an Order\n"},"ovhSubsidiary":{"type":"string","description":"OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json)\n","willReplaceOnChanges":true},"paymentMean":{"type":"string","description":"Ovh payment mode\n","deprecationMessage":"This field is not anymore used since the API has been deprecated in favor of /payment/mean. Now, the default payment mean is used.","willReplaceOnChanges":true},"plan":{"$ref":"#/types/ovh:IpLoadBalancing/LoadBalancerPlan:LoadBalancerPlan","description":"Product Plan to order\n","willReplaceOnChanges":true},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:IpLoadBalancing/LoadBalancerPlanOption:LoadBalancerPlanOption"},"description":"Product Plan to order\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"sslConfiguration":{"type":"string","description":"Modern oldest compatible clients : Firefox 27, Chrome 30, IE 11 on Windows 7, Edge, Opera 17, Safari 9, Android 5.0, and Java 8. Intermediate oldest compatible clients : Firefox 1, Chrome 1, IE 7, Opera 5, Safari 1, Windows XP IE8, Android 2.3, Java 7. Intermediate if null. one of \"intermediate\", \"modern\".\n"},"state":{"type":"string","description":"Current state of your IP\n"},"vrackEligibility":{"type":"boolean","description":"Vrack eligibility\n"},"vrackName":{"type":"string","description":"Name of the vRack on which the current Load Balancer is attached to, as it is named on vRack product\n"},"zones":{"type":"array","items":{"type":"string"},"description":"Location where your service is\n"}},"type":"object"}},"ovh:IpLoadBalancing/refresh:Refresh":{"description":"Applies changes from other `ovh_iploadbalancing_*` resources to the production configuration of loadbalancers.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst lb = ovh.IpLoadBalancing.getIpLoadBalancing({\n    serviceName: \"ip-1.2.3.4\",\n    state: \"ok\",\n});\nconst farmName = new ovh.iploadbalancing.TcpFarm(\"farm_name\", {\n    serviceName: lb.then(lb =\u003e lb.serviceName),\n    port: 8080,\n    zone: \"all\",\n});\nconst backend = new ovh.iploadbalancing.TcpFarmServer(\"backend\", {\n    serviceName: lb.then(lb =\u003e lb.serviceName),\n    farmId: farmName.id,\n    displayName: \"mybackend\",\n    address: \"4.5.6.7\",\n    status: \"active\",\n    port: 80,\n    proxyProtocolVersion: \"v2\",\n    weight: 2,\n    probe: true,\n    ssl: false,\n    backup: true,\n});\nconst mylb = new ovh.iploadbalancing.Refresh(\"mylb\", {\n    serviceName: lb.then(lb =\u003e lb.serviceName),\n    keepers: [[backend].map(__item =\u003e __item.address)],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"ip-1.2.3.4\",\n    state=\"ok\")\nfarm_name = ovh.iploadbalancing.TcpFarm(\"farm_name\",\n    service_name=lb.service_name,\n    port=8080,\n    zone=\"all\")\nbackend = ovh.iploadbalancing.TcpFarmServer(\"backend\",\n    service_name=lb.service_name,\n    farm_id=farm_name.id,\n    display_name=\"mybackend\",\n    address=\"4.5.6.7\",\n    status=\"active\",\n    port=80,\n    proxy_protocol_version=\"v2\",\n    weight=2,\n    probe=True,\n    ssl=False,\n    backup=True)\nmylb = ovh.iploadbalancing.Refresh(\"mylb\",\n    service_name=lb.service_name,\n    keepers=[[__item.address for __item in [backend]]])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var lb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n    {\n        ServiceName = \"ip-1.2.3.4\",\n        State = \"ok\",\n    });\n\n    var farmName = new Ovh.IpLoadBalancing.TcpFarm(\"farm_name\", new()\n    {\n        ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n        Port = 8080,\n        Zone = \"all\",\n    });\n\n    var backend = new Ovh.IpLoadBalancing.TcpFarmServer(\"backend\", new()\n    {\n        ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n        FarmId = farmName.Id,\n        DisplayName = \"mybackend\",\n        Address = \"4.5.6.7\",\n        Status = \"active\",\n        Port = 80,\n        ProxyProtocolVersion = \"v2\",\n        Weight = 2,\n        Probe = true,\n        Ssl = false,\n        Backup = true,\n    });\n\n    var mylb = new Ovh.IpLoadBalancing.Refresh(\"mylb\", new()\n    {\n        ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n        Keepers = new[]\n        {\n            new[]\n            {\n                backend,\n            }.Select(__item =\u003e __item.Address).ToList(),\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iploadbalancing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nlb, err := iploadbalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\nServiceName: pulumi.StringRef(\"ip-1.2.3.4\"),\nState: pulumi.StringRef(\"ok\"),\n}, nil);\nif err != nil {\nreturn err\n}\nfarmName, err := iploadbalancing.NewTcpFarm(ctx, \"farm_name\", \u0026iploadbalancing.TcpFarmArgs{\nServiceName: pulumi.String(lb.ServiceName),\nPort: pulumi.Int(8080),\nZone: pulumi.String(\"all\"),\n})\nif err != nil {\nreturn err\n}\nbackend, err := iploadbalancing.NewTcpFarmServer(ctx, \"backend\", \u0026iploadbalancing.TcpFarmServerArgs{\nServiceName: pulumi.String(lb.ServiceName),\nFarmId: farmName.ID(),\nDisplayName: pulumi.String(\"mybackend\"),\nAddress: pulumi.String(\"4.5.6.7\"),\nStatus: pulumi.String(\"active\"),\nPort: pulumi.Int(80),\nProxyProtocolVersion: pulumi.String(\"v2\"),\nWeight: pulumi.Int(2),\nProbe: pulumi.Bool(true),\nSsl: pulumi.Bool(false),\nBackup: pulumi.Bool(true),\n})\nif err != nil {\nreturn err\n}\n_, err = iploadbalancing.NewRefresh(ctx, \"mylb\", \u0026iploadbalancing.RefreshArgs{\nServiceName: pulumi.String(lb.ServiceName),\nKeepers: pulumi.StringArray{\npulumi.String(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:28,21-39)),\n},\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.IpLoadBalancing.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.TcpFarm;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.TcpFarmArgs;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.TcpFarmServer;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.TcpFarmServerArgs;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.Refresh;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.RefreshArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var lb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n            .serviceName(\"ip-1.2.3.4\")\n            .state(\"ok\")\n            .build());\n\n        var farmName = new TcpFarm(\"farmName\", TcpFarmArgs.builder()\n            .serviceName(lb.serviceName())\n            .port(8080)\n            .zone(\"all\")\n            .build());\n\n        var backend = new TcpFarmServer(\"backend\", TcpFarmServerArgs.builder()\n            .serviceName(lb.serviceName())\n            .farmId(farmName.id())\n            .displayName(\"mybackend\")\n            .address(\"4.5.6.7\")\n            .status(\"active\")\n            .port(80)\n            .proxyProtocolVersion(\"v2\")\n            .weight(2)\n            .probe(true)\n            .ssl(false)\n            .backup(true)\n            .build());\n\n        var mylb = new Refresh(\"mylb\", RefreshArgs.builder()\n            .serviceName(lb.serviceName())\n            .keepers(backend.stream().map(element -\u003e element.address()).collect(toList()))\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"keepers":{"type":"array","items":{"type":"string"},"description":"List of values tracked to trigger refresh, used also to form implicit dependencies\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"}},"required":["keepers","serviceName"],"inputProperties":{"keepers":{"type":"array","items":{"type":"string"},"description":"List of values tracked to trigger refresh, used also to form implicit dependencies\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n","willReplaceOnChanges":true}},"requiredInputs":["keepers","serviceName"],"stateInputs":{"description":"Input properties used for looking up and filtering Refresh resources.\n","properties":{"keepers":{"type":"array","items":{"type":"string"},"description":"List of values tracked to trigger refresh, used also to form implicit dependencies\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:IpLoadBalancing/ssl:Ssl":{"description":"Creates a new custom SSL certificate on your IP Load Balancing\n\n## Import\n\nSSL can be imported using the following format `service_name` and the `id` of the ssl, separated by \"/\" e.g.\n\nbash\n\n```sh\n$ pulumi import ovh:IpLoadBalancing/ssl:Ssl sslname service_name/ssl_id\n```\n\n","properties":{"certificate":{"type":"string","description":"Certificate\n"},"chain":{"type":"string","description":"Certificate chain\n"},"displayName":{"type":"string","description":"Readable label for loadbalancer ssl\n"},"expireDate":{"type":"string","description":"Expire date of your SSL certificate.\n"},"fingerprint":{"type":"string","description":"Fingerprint of your SSL certificate.\n"},"key":{"type":"string","description":"Certificate key\n","secret":true},"sans":{"type":"array","items":{"type":"string"},"description":"Subject Alternative Name of your SSL certificate.\n"},"serial":{"type":"string","description":"Serial of your SSL certificate (Deprecated, use fingerprint instead !)\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"subject":{"type":"string","description":"Subject of your SSL certificate.\n"},"type":{"type":"string","description":"Type of your SSL certificate. 'built' for SSL certificates managed by the IP Load Balancing. 'custom' for user manager certificates.\n"}},"required":["certificate","expireDate","fingerprint","key","sans","serial","serviceName","subject","type"],"inputProperties":{"certificate":{"type":"string","description":"Certificate\n"},"chain":{"type":"string","description":"Certificate chain\n"},"displayName":{"type":"string","description":"Readable label for loadbalancer ssl\n"},"key":{"type":"string","description":"Certificate key\n","secret":true},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"}},"requiredInputs":["certificate","key","serviceName"],"stateInputs":{"description":"Input properties used for looking up and filtering Ssl resources.\n","properties":{"certificate":{"type":"string","description":"Certificate\n"},"chain":{"type":"string","description":"Certificate chain\n"},"displayName":{"type":"string","description":"Readable label for loadbalancer ssl\n"},"expireDate":{"type":"string","description":"Expire date of your SSL certificate.\n"},"fingerprint":{"type":"string","description":"Fingerprint of your SSL certificate.\n"},"key":{"type":"string","description":"Certificate key\n","secret":true},"sans":{"type":"array","items":{"type":"string"},"description":"Subject Alternative Name of your SSL certificate.\n"},"serial":{"type":"string","description":"Serial of your SSL certificate (Deprecated, use fingerprint instead !)\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"subject":{"type":"string","description":"Subject of your SSL certificate.\n"},"type":{"type":"string","description":"Type of your SSL certificate. 'built' for SSL certificates managed by the IP Load Balancing. 'custom' for user manager certificates.\n"}},"type":"object"}},"ovh:IpLoadBalancing/tcpFarm:TcpFarm":{"description":"Creates a backend server group (farm) to be used by loadbalancing frontend(s)\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst lb = ovh.IpLoadBalancing.getIpLoadBalancing({\n    serviceName: \"ip-1.2.3.4\",\n    state: \"ok\",\n});\nconst farmName = new ovh.iploadbalancing.TcpFarm(\"farm_name\", {\n    serviceName: lb.then(lb =\u003e lb.serviceName),\n    displayName: \"ingress-8080-gra\",\n    zone: \"GRA\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"ip-1.2.3.4\",\n    state=\"ok\")\nfarm_name = ovh.iploadbalancing.TcpFarm(\"farm_name\",\n    service_name=lb.service_name,\n    display_name=\"ingress-8080-gra\",\n    zone=\"GRA\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var lb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n    {\n        ServiceName = \"ip-1.2.3.4\",\n        State = \"ok\",\n    });\n\n    var farmName = new Ovh.IpLoadBalancing.TcpFarm(\"farm_name\", new()\n    {\n        ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n        DisplayName = \"ingress-8080-gra\",\n        Zone = \"GRA\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iploadbalancing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tlb, err := iploadbalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\n\t\t\tServiceName: pulumi.StringRef(\"ip-1.2.3.4\"),\n\t\t\tState:       pulumi.StringRef(\"ok\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iploadbalancing.NewTcpFarm(ctx, \"farm_name\", \u0026iploadbalancing.TcpFarmArgs{\n\t\t\tServiceName: pulumi.String(lb.ServiceName),\n\t\t\tDisplayName: pulumi.String(\"ingress-8080-gra\"),\n\t\t\tZone:        pulumi.String(\"GRA\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.IpLoadBalancing.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.TcpFarm;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.TcpFarmArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var lb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n            .serviceName(\"ip-1.2.3.4\")\n            .state(\"ok\")\n            .build());\n\n        var farmName = new TcpFarm(\"farmName\", TcpFarmArgs.builder()\n            .serviceName(lb.serviceName())\n            .displayName(\"ingress-8080-gra\")\n            .zone(\"GRA\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  farmName:\n    type: ovh:IpLoadBalancing:TcpFarm\n    name: farm_name\n    properties:\n      serviceName: ${lb.serviceName}\n      displayName: ingress-8080-gra\n      zone: GRA\nvariables:\n  lb:\n    fn::invoke:\n      function: ovh:IpLoadBalancing:getIpLoadBalancing\n      arguments:\n        serviceName: ip-1.2.3.4\n        state: ok\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nTCP Farm can be imported using the following format `service_name` and the `id` of the farm, separated by \"/\" e.g.\n\nbash\n\n```sh\n$ pulumi import ovh:IpLoadBalancing/tcpFarm:TcpFarm farmname service_name/farm_id\n```\n\n","properties":{"balance":{"type":"string","description":"Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`)\n"},"displayName":{"type":"string","description":"Readable label for loadbalancer farm\n"},"port":{"type":"integer","description":"Port attached to your farm ([1..49151]). Inherited from frontend if null\n"},"probe":{"$ref":"#/types/ovh:IpLoadBalancing/TcpFarmProbe:TcpFarmProbe","description":"define a backend healthcheck probe\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"stickiness":{"type":"string","description":"Stickiness type. No stickiness if null (`sourceIp`)\n"},"vrackNetworkId":{"type":"integer","description":"Internal Load Balancer identifier of the vRack private network to attach to your farm, mandatory when your Load Balancer is attached to a vRack\n"},"zone":{"type":"string","description":"Zone where the farm will be defined (ie. `GRA`, `BHS` also supports `ALL`)\n"}},"required":["serviceName","zone"],"inputProperties":{"balance":{"type":"string","description":"Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`)\n"},"displayName":{"type":"string","description":"Readable label for loadbalancer farm\n"},"port":{"type":"integer","description":"Port attached to your farm ([1..49151]). Inherited from frontend if null\n"},"probe":{"$ref":"#/types/ovh:IpLoadBalancing/TcpFarmProbe:TcpFarmProbe","description":"define a backend healthcheck probe\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n","willReplaceOnChanges":true},"stickiness":{"type":"string","description":"Stickiness type. No stickiness if null (`sourceIp`)\n"},"vrackNetworkId":{"type":"integer","description":"Internal Load Balancer identifier of the vRack private network to attach to your farm, mandatory when your Load Balancer is attached to a vRack\n"},"zone":{"type":"string","description":"Zone where the farm will be defined (ie. `GRA`, `BHS` also supports `ALL`)\n","willReplaceOnChanges":true}},"requiredInputs":["serviceName","zone"],"stateInputs":{"description":"Input properties used for looking up and filtering TcpFarm resources.\n","properties":{"balance":{"type":"string","description":"Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`)\n"},"displayName":{"type":"string","description":"Readable label for loadbalancer farm\n"},"port":{"type":"integer","description":"Port attached to your farm ([1..49151]). Inherited from frontend if null\n"},"probe":{"$ref":"#/types/ovh:IpLoadBalancing/TcpFarmProbe:TcpFarmProbe","description":"define a backend healthcheck probe\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n","willReplaceOnChanges":true},"stickiness":{"type":"string","description":"Stickiness type. No stickiness if null (`sourceIp`)\n"},"vrackNetworkId":{"type":"integer","description":"Internal Load Balancer identifier of the vRack private network to attach to your farm, mandatory when your Load Balancer is attached to a vRack\n"},"zone":{"type":"string","description":"Zone where the farm will be defined (ie. `GRA`, `BHS` also supports `ALL`)\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:IpLoadBalancing/tcpFarmServer:TcpFarmServer":{"description":"Creates a backend server entry linked to loadbalancing group (farm)\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst lb = ovh.IpLoadBalancing.getIpLoadBalancing({\n    serviceName: \"ip-1.2.3.4\",\n    state: \"ok\",\n});\nconst farmName = new ovh.iploadbalancing.TcpFarm(\"farm_name\", {\n    serviceName: lb.then(lb =\u003e lb.serviceName),\n    port: 8080,\n    zone: \"all\",\n});\nconst backend = new ovh.iploadbalancing.TcpFarmServer(\"backend\", {\n    serviceName: lb.then(lb =\u003e lb.serviceName),\n    farmId: farmName.id,\n    displayName: \"mybackend\",\n    address: \"4.5.6.7\",\n    status: \"active\",\n    port: 80,\n    proxyProtocolVersion: \"v2\",\n    weight: 2,\n    probe: true,\n    ssl: false,\n    backup: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"ip-1.2.3.4\",\n    state=\"ok\")\nfarm_name = ovh.iploadbalancing.TcpFarm(\"farm_name\",\n    service_name=lb.service_name,\n    port=8080,\n    zone=\"all\")\nbackend = ovh.iploadbalancing.TcpFarmServer(\"backend\",\n    service_name=lb.service_name,\n    farm_id=farm_name.id,\n    display_name=\"mybackend\",\n    address=\"4.5.6.7\",\n    status=\"active\",\n    port=80,\n    proxy_protocol_version=\"v2\",\n    weight=2,\n    probe=True,\n    ssl=False,\n    backup=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var lb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n    {\n        ServiceName = \"ip-1.2.3.4\",\n        State = \"ok\",\n    });\n\n    var farmName = new Ovh.IpLoadBalancing.TcpFarm(\"farm_name\", new()\n    {\n        ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n        Port = 8080,\n        Zone = \"all\",\n    });\n\n    var backend = new Ovh.IpLoadBalancing.TcpFarmServer(\"backend\", new()\n    {\n        ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n        FarmId = farmName.Id,\n        DisplayName = \"mybackend\",\n        Address = \"4.5.6.7\",\n        Status = \"active\",\n        Port = 80,\n        ProxyProtocolVersion = \"v2\",\n        Weight = 2,\n        Probe = true,\n        Ssl = false,\n        Backup = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iploadbalancing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tlb, err := iploadbalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\n\t\t\tServiceName: pulumi.StringRef(\"ip-1.2.3.4\"),\n\t\t\tState:       pulumi.StringRef(\"ok\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfarmName, err := iploadbalancing.NewTcpFarm(ctx, \"farm_name\", \u0026iploadbalancing.TcpFarmArgs{\n\t\t\tServiceName: pulumi.String(lb.ServiceName),\n\t\t\tPort:        pulumi.Int(8080),\n\t\t\tZone:        pulumi.String(\"all\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iploadbalancing.NewTcpFarmServer(ctx, \"backend\", \u0026iploadbalancing.TcpFarmServerArgs{\n\t\t\tServiceName:          pulumi.String(lb.ServiceName),\n\t\t\tFarmId:               farmName.ID(),\n\t\t\tDisplayName:          pulumi.String(\"mybackend\"),\n\t\t\tAddress:              pulumi.String(\"4.5.6.7\"),\n\t\t\tStatus:               pulumi.String(\"active\"),\n\t\t\tPort:                 pulumi.Int(80),\n\t\t\tProxyProtocolVersion: pulumi.String(\"v2\"),\n\t\t\tWeight:               pulumi.Int(2),\n\t\t\tProbe:                pulumi.Bool(true),\n\t\t\tSsl:                  pulumi.Bool(false),\n\t\t\tBackup:               pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.IpLoadBalancing.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.TcpFarm;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.TcpFarmArgs;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.TcpFarmServer;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.TcpFarmServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var lb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n            .serviceName(\"ip-1.2.3.4\")\n            .state(\"ok\")\n            .build());\n\n        var farmName = new TcpFarm(\"farmName\", TcpFarmArgs.builder()\n            .serviceName(lb.serviceName())\n            .port(8080)\n            .zone(\"all\")\n            .build());\n\n        var backend = new TcpFarmServer(\"backend\", TcpFarmServerArgs.builder()\n            .serviceName(lb.serviceName())\n            .farmId(farmName.id())\n            .displayName(\"mybackend\")\n            .address(\"4.5.6.7\")\n            .status(\"active\")\n            .port(80)\n            .proxyProtocolVersion(\"v2\")\n            .weight(2)\n            .probe(true)\n            .ssl(false)\n            .backup(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  farmName:\n    type: ovh:IpLoadBalancing:TcpFarm\n    name: farm_name\n    properties:\n      serviceName: ${lb.serviceName}\n      port: 8080\n      zone: all\n  backend:\n    type: ovh:IpLoadBalancing:TcpFarmServer\n    properties:\n      serviceName: ${lb.serviceName}\n      farmId: ${farmName.id}\n      displayName: mybackend\n      address: 4.5.6.7\n      status: active\n      port: 80\n      proxyProtocolVersion: v2\n      weight: 2\n      probe: true\n      ssl: false\n      backup: true\nvariables:\n  lb:\n    fn::invoke:\n      function: ovh:IpLoadBalancing:getIpLoadBalancing\n      arguments:\n        serviceName: ip-1.2.3.4\n        state: ok\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nTCP farm server can be imported using the following format `service_name`, the `id` of the farm and the `id` of the server separated by \"/\" e.g.\n\nbash\n\n```sh\n$ pulumi import ovh:IpLoadBalancing/tcpFarmServer:TcpFarmServer backend service_name/farm_id/server_id\n```\n\n","properties":{"address":{"type":"string","description":"Address of the backend server (IP from either internal or OVHcloud network)\n"},"backup":{"type":"boolean","description":"is it a backup server used in case of failure of all the non-backup backends\n"},"chain":{"type":"string"},"displayName":{"type":"string","description":"Label for the server\n"},"farmId":{"type":"integer","description":"ID of the farm this server is attached to\n"},"onMarkedDown":{"type":"string","description":"enable action when backend marked down. (`shutdown-sessions`)\n"},"port":{"type":"integer","description":"Port that backend will respond on\n"},"probe":{"type":"boolean","description":"defines if backend will be probed to determine health and keep as active in farm if healthy\n"},"proxyProtocolVersion":{"type":"string","description":"version of the PROXY protocol used to pass origin connection information from loadbalancer to receiving service (`v1`, `v2`, `v2-ssl`, `v2-ssl-cn`)\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"ssl":{"type":"boolean","description":"is the connection ciphered with SSL (TLS)\n"},"status":{"type":"string","description":"backend status - `active` or `inactive`\n"},"weight":{"type":"integer","description":"used in loadbalancing algorithm\n"}},"required":["address","farmId","serviceName","status"],"inputProperties":{"address":{"type":"string","description":"Address of the backend server (IP from either internal or OVHcloud network)\n","willReplaceOnChanges":true},"backup":{"type":"boolean","description":"is it a backup server used in case of failure of all the non-backup backends\n"},"chain":{"type":"string"},"displayName":{"type":"string","description":"Label for the server\n"},"farmId":{"type":"integer","description":"ID of the farm this server is attached to\n","willReplaceOnChanges":true},"onMarkedDown":{"type":"string","description":"enable action when backend marked down. (`shutdown-sessions`)\n"},"port":{"type":"integer","description":"Port that backend will respond on\n"},"probe":{"type":"boolean","description":"defines if backend will be probed to determine health and keep as active in farm if healthy\n"},"proxyProtocolVersion":{"type":"string","description":"version of the PROXY protocol used to pass origin connection information from loadbalancer to receiving service (`v1`, `v2`, `v2-ssl`, `v2-ssl-cn`)\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n","willReplaceOnChanges":true},"ssl":{"type":"boolean","description":"is the connection ciphered with SSL (TLS)\n"},"status":{"type":"string","description":"backend status - `active` or `inactive`\n"},"weight":{"type":"integer","description":"used in loadbalancing algorithm\n"}},"requiredInputs":["address","farmId","serviceName","status"],"stateInputs":{"description":"Input properties used for looking up and filtering TcpFarmServer resources.\n","properties":{"address":{"type":"string","description":"Address of the backend server (IP from either internal or OVHcloud network)\n","willReplaceOnChanges":true},"backup":{"type":"boolean","description":"is it a backup server used in case of failure of all the non-backup backends\n"},"chain":{"type":"string"},"displayName":{"type":"string","description":"Label for the server\n"},"farmId":{"type":"integer","description":"ID of the farm this server is attached to\n","willReplaceOnChanges":true},"onMarkedDown":{"type":"string","description":"enable action when backend marked down. (`shutdown-sessions`)\n"},"port":{"type":"integer","description":"Port that backend will respond on\n"},"probe":{"type":"boolean","description":"defines if backend will be probed to determine health and keep as active in farm if healthy\n"},"proxyProtocolVersion":{"type":"string","description":"version of the PROXY protocol used to pass origin connection information from loadbalancer to receiving service (`v1`, `v2`, `v2-ssl`, `v2-ssl-cn`)\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n","willReplaceOnChanges":true},"ssl":{"type":"boolean","description":"is the connection ciphered with SSL (TLS)\n"},"status":{"type":"string","description":"backend status - `active` or `inactive`\n"},"weight":{"type":"integer","description":"used in loadbalancing algorithm\n"}},"type":"object"}},"ovh:IpLoadBalancing/tcpFrontend:TcpFrontend":{"description":"Creates a backend server group (frontend) to be used by loadbalancing frontend(s)\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst lb = ovh.IpLoadBalancing.getIpLoadBalancing({\n    serviceName: \"ip-1.2.3.4\",\n    state: \"ok\",\n});\nconst farm80 = new ovh.iploadbalancing.TcpFarm(\"farm80\", {\n    serviceName: lb.then(lb =\u003e lb.serviceName),\n    displayName: \"ingress-8080-gra\",\n    zone: \"all\",\n    port: 80,\n});\nconst testFrontend = new ovh.iploadbalancing.TcpFrontend(\"test_frontend\", {\n    serviceName: lb.then(lb =\u003e lb.serviceName),\n    displayName: \"ingress-8080-gra\",\n    zone: \"all\",\n    port: \"80,443\",\n    defaultFarmId: farm80.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"ip-1.2.3.4\",\n    state=\"ok\")\nfarm80 = ovh.iploadbalancing.TcpFarm(\"farm80\",\n    service_name=lb.service_name,\n    display_name=\"ingress-8080-gra\",\n    zone=\"all\",\n    port=80)\ntest_frontend = ovh.iploadbalancing.TcpFrontend(\"test_frontend\",\n    service_name=lb.service_name,\n    display_name=\"ingress-8080-gra\",\n    zone=\"all\",\n    port=\"80,443\",\n    default_farm_id=farm80.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var lb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n    {\n        ServiceName = \"ip-1.2.3.4\",\n        State = \"ok\",\n    });\n\n    var farm80 = new Ovh.IpLoadBalancing.TcpFarm(\"farm80\", new()\n    {\n        ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n        DisplayName = \"ingress-8080-gra\",\n        Zone = \"all\",\n        Port = 80,\n    });\n\n    var testFrontend = new Ovh.IpLoadBalancing.TcpFrontend(\"test_frontend\", new()\n    {\n        ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n        DisplayName = \"ingress-8080-gra\",\n        Zone = \"all\",\n        Port = \"80,443\",\n        DefaultFarmId = farm80.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iploadbalancing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tlb, err := iploadbalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\n\t\t\tServiceName: pulumi.StringRef(\"ip-1.2.3.4\"),\n\t\t\tState:       pulumi.StringRef(\"ok\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfarm80, err := iploadbalancing.NewTcpFarm(ctx, \"farm80\", \u0026iploadbalancing.TcpFarmArgs{\n\t\t\tServiceName: pulumi.String(lb.ServiceName),\n\t\t\tDisplayName: pulumi.String(\"ingress-8080-gra\"),\n\t\t\tZone:        pulumi.String(\"all\"),\n\t\t\tPort:        pulumi.Int(80),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iploadbalancing.NewTcpFrontend(ctx, \"test_frontend\", \u0026iploadbalancing.TcpFrontendArgs{\n\t\t\tServiceName:   pulumi.String(lb.ServiceName),\n\t\t\tDisplayName:   pulumi.String(\"ingress-8080-gra\"),\n\t\t\tZone:          pulumi.String(\"all\"),\n\t\t\tPort:          pulumi.String(\"80,443\"),\n\t\t\tDefaultFarmId: farm80.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.IpLoadBalancing.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.TcpFarm;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.TcpFarmArgs;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.TcpFrontend;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.TcpFrontendArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var lb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n            .serviceName(\"ip-1.2.3.4\")\n            .state(\"ok\")\n            .build());\n\n        var farm80 = new TcpFarm(\"farm80\", TcpFarmArgs.builder()\n            .serviceName(lb.serviceName())\n            .displayName(\"ingress-8080-gra\")\n            .zone(\"all\")\n            .port(80)\n            .build());\n\n        var testFrontend = new TcpFrontend(\"testFrontend\", TcpFrontendArgs.builder()\n            .serviceName(lb.serviceName())\n            .displayName(\"ingress-8080-gra\")\n            .zone(\"all\")\n            .port(\"80,443\")\n            .defaultFarmId(farm80.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  farm80:\n    type: ovh:IpLoadBalancing:TcpFarm\n    properties:\n      serviceName: ${lb.serviceName}\n      displayName: ingress-8080-gra\n      zone: all\n      port: 80\n  testFrontend:\n    type: ovh:IpLoadBalancing:TcpFrontend\n    name: test_frontend\n    properties:\n      serviceName: ${lb.serviceName}\n      displayName: ingress-8080-gra\n      zone: all\n      port: 80,443\n      defaultFarmId: ${farm80.id}\nvariables:\n  lb:\n    fn::invoke:\n      function: ovh:IpLoadBalancing:getIpLoadBalancing\n      arguments:\n        serviceName: ip-1.2.3.4\n        state: ok\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nTCP frontend can be imported using the following format `service_name` and the `id` of the frontend separated by \"/\" e.g.\n\nbash\n\n```sh\n$ pulumi import ovh:IpLoadBalancing/tcpFrontend:TcpFrontend testfrontend service_name/tcp_frontend_id\n```\n\n","properties":{"allowedSources":{"type":"array","items":{"type":"string"},"description":"Restrict IP Load Balancing access to these ip block. No restriction if null. List of IP blocks.\n"},"dedicatedIpfos":{"type":"array","items":{"type":"string"},"description":"Only attach frontend on these ip. No restriction if null. List of Ip blocks.\n"},"defaultFarmId":{"type":"integer","description":"Default TCP Farm of your frontend\n"},"defaultSslId":{"type":"integer","description":"Default ssl served to your customer\n"},"deniedSources":{"type":"array","items":{"type":"string"},"description":"Deny IP Load Balancing access to these ip block. No restriction if null. You cannot specify both `allowed_source` and `denied_source` at the same time. List of IP blocks.\n"},"disabled":{"type":"boolean","description":"Disable your frontend. Default: 'false'\n"},"displayName":{"type":"string","description":"Human readable name for your frontend, this field is for you\n"},"port":{"type":"string","description":"Port(s) attached to your frontend. Supports single port (numerical value), range (2 dash-delimited increasing ports) and comma-separated list of 'single port' and/or 'range'. Each port must be in the [1;49151] range\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"ssl":{"type":"boolean","description":"SSL deciphering. Default: 'false'\n"},"zone":{"type":"string","description":"Zone where the frontend will be defined (ie. `gra`, `bhs` also supports `all`)\n"}},"required":["defaultFarmId","defaultSslId","port","serviceName","zone"],"inputProperties":{"allowedSources":{"type":"array","items":{"type":"string"},"description":"Restrict IP Load Balancing access to these ip block. No restriction if null. List of IP blocks.\n"},"dedicatedIpfos":{"type":"array","items":{"type":"string"},"description":"Only attach frontend on these ip. No restriction if null. List of Ip blocks.\n"},"defaultFarmId":{"type":"integer","description":"Default TCP Farm of your frontend\n"},"defaultSslId":{"type":"integer","description":"Default ssl served to your customer\n"},"deniedSources":{"type":"array","items":{"type":"string"},"description":"Deny IP Load Balancing access to these ip block. No restriction if null. You cannot specify both `allowed_source` and `denied_source` at the same time. List of IP blocks.\n"},"disabled":{"type":"boolean","description":"Disable your frontend. Default: 'false'\n"},"displayName":{"type":"string","description":"Human readable name for your frontend, this field is for you\n"},"port":{"type":"string","description":"Port(s) attached to your frontend. Supports single port (numerical value), range (2 dash-delimited increasing ports) and comma-separated list of 'single port' and/or 'range'. Each port must be in the [1;49151] range\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n","willReplaceOnChanges":true},"ssl":{"type":"boolean","description":"SSL deciphering. Default: 'false'\n"},"zone":{"type":"string","description":"Zone where the frontend will be defined (ie. `gra`, `bhs` also supports `all`)\n"}},"requiredInputs":["port","serviceName","zone"],"stateInputs":{"description":"Input properties used for looking up and filtering TcpFrontend resources.\n","properties":{"allowedSources":{"type":"array","items":{"type":"string"},"description":"Restrict IP Load Balancing access to these ip block. No restriction if null. List of IP blocks.\n"},"dedicatedIpfos":{"type":"array","items":{"type":"string"},"description":"Only attach frontend on these ip. No restriction if null. List of Ip blocks.\n"},"defaultFarmId":{"type":"integer","description":"Default TCP Farm of your frontend\n"},"defaultSslId":{"type":"integer","description":"Default ssl served to your customer\n"},"deniedSources":{"type":"array","items":{"type":"string"},"description":"Deny IP Load Balancing access to these ip block. No restriction if null. You cannot specify both `allowed_source` and `denied_source` at the same time. List of IP blocks.\n"},"disabled":{"type":"boolean","description":"Disable your frontend. Default: 'false'\n"},"displayName":{"type":"string","description":"Human readable name for your frontend, this field is for you\n"},"port":{"type":"string","description":"Port(s) attached to your frontend. Supports single port (numerical value), range (2 dash-delimited increasing ports) and comma-separated list of 'single port' and/or 'range'. Each port must be in the [1;49151] range\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n","willReplaceOnChanges":true},"ssl":{"type":"boolean","description":"SSL deciphering. Default: 'false'\n"},"zone":{"type":"string","description":"Zone where the frontend will be defined (ie. `gra`, `bhs` also supports `all`)\n"}},"type":"object"}},"ovh:IpLoadBalancing/tcpRoute:TcpRoute":{"description":"Manage TCP route for a loadbalancer service\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst tcpReject = new ovh.iploadbalancing.TcpRoute(\"tcp_reject\", {\n    serviceName: \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n    weight: 1,\n    action: {\n        type: \"reject\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ntcp_reject = ovh.iploadbalancing.TcpRoute(\"tcp_reject\",\n    service_name=\"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n    weight=1,\n    action={\n        \"type\": \"reject\",\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 tcpReject = new Ovh.IpLoadBalancing.TcpRoute(\"tcp_reject\", new()\n    {\n        ServiceName = \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n        Weight = 1,\n        Action = new Ovh.IpLoadBalancing.Inputs.TcpRouteActionArgs\n        {\n            Type = \"reject\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iploadbalancing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := iploadbalancing.NewTcpRoute(ctx, \"tcp_reject\", \u0026iploadbalancing.TcpRouteArgs{\n\t\t\tServiceName: pulumi.String(\"loadbalancer-xxxxxxxxxxxxxxxxxx\"),\n\t\t\tWeight:      pulumi.Int(1),\n\t\t\tAction: \u0026iploadbalancing.TcpRouteActionArgs{\n\t\t\t\tType: pulumi.String(\"reject\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.TcpRoute;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.TcpRouteArgs;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.TcpRouteActionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var tcpReject = new TcpRoute(\"tcpReject\", TcpRouteArgs.builder()\n            .serviceName(\"loadbalancer-xxxxxxxxxxxxxxxxxx\")\n            .weight(1)\n            .action(TcpRouteActionArgs.builder()\n                .type(\"reject\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  tcpReject:\n    type: ovh:IpLoadBalancing:TcpRoute\n    name: tcp_reject\n    properties:\n      serviceName: loadbalancer-xxxxxxxxxxxxxxxxxx\n      weight: 1\n      action:\n        type: reject\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nTCP route can be imported using the following format `service_name` and the `id` of the route separated by \"/\" e.g.\n\nbash\n\n```sh\n$ pulumi import ovh:IpLoadBalancing/tcpRoute:TcpRoute tcpreject service_name/route_id\n```\n\n","properties":{"action":{"$ref":"#/types/ovh:IpLoadBalancing/TcpRouteAction:TcpRouteAction","description":"Action triggered when all rules match\n"},"displayName":{"type":"string","description":"Human readable name for your route, this field is for you\n"},"frontendId":{"type":"integer","description":"Route traffic for this frontend\n"},"rules":{"type":"array","items":{"$ref":"#/types/ovh:IpLoadBalancing/TcpRouteRule:TcpRouteRule"},"description":"List of rules to match to trigger action\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"status":{"type":"string","description":"Route status. Routes in \"ok\" state are ready to operate\n"},"weight":{"type":"integer","description":"Route priority ([0..255]). 0 if null. Highest priority routes are evaluated first. Only the first matching route will trigger an action\n"}},"required":["action","frontendId","rules","serviceName","status","weight"],"inputProperties":{"action":{"$ref":"#/types/ovh:IpLoadBalancing/TcpRouteAction:TcpRouteAction","description":"Action triggered when all rules match\n"},"displayName":{"type":"string","description":"Human readable name for your route, this field is for you\n"},"frontendId":{"type":"integer","description":"Route traffic for this frontend\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n","willReplaceOnChanges":true},"weight":{"type":"integer","description":"Route priority ([0..255]). 0 if null. Highest priority routes are evaluated first. Only the first matching route will trigger an action\n"}},"requiredInputs":["action","serviceName"],"stateInputs":{"description":"Input properties used for looking up and filtering TcpRoute resources.\n","properties":{"action":{"$ref":"#/types/ovh:IpLoadBalancing/TcpRouteAction:TcpRouteAction","description":"Action triggered when all rules match\n"},"displayName":{"type":"string","description":"Human readable name for your route, this field is for you\n"},"frontendId":{"type":"integer","description":"Route traffic for this frontend\n"},"rules":{"type":"array","items":{"$ref":"#/types/ovh:IpLoadBalancing/TcpRouteRule:TcpRouteRule"},"description":"List of rules to match to trigger action\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Route status. Routes in \"ok\" state are ready to operate\n"},"weight":{"type":"integer","description":"Route priority ([0..255]). 0 if null. Highest priority routes are evaluated first. Only the first matching route will trigger an action\n"}},"type":"object"}},"ovh:IpLoadBalancing/tcpRouteRule:TcpRouteRule":{"description":"Manage rules for TCP route.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst reject = new ovh.iploadbalancing.TcpRoute(\"reject\", {\n    serviceName: \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n    weight: 1,\n    frontendId: 11111,\n    action: {\n        type: \"reject\",\n    },\n});\nconst exampleRule = new ovh.iploadbalancing.TcpRouteRule(\"example_rule\", {\n    serviceName: \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n    routeId: reject.id,\n    displayName: \"Match example.com host\",\n    field: \"sni\",\n    match: \"is\",\n    negate: false,\n    pattern: \"example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nreject = ovh.iploadbalancing.TcpRoute(\"reject\",\n    service_name=\"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n    weight=1,\n    frontend_id=11111,\n    action={\n        \"type\": \"reject\",\n    })\nexample_rule = ovh.iploadbalancing.TcpRouteRule(\"example_rule\",\n    service_name=\"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n    route_id=reject.id,\n    display_name=\"Match example.com host\",\n    field=\"sni\",\n    match=\"is\",\n    negate=False,\n    pattern=\"example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var reject = new Ovh.IpLoadBalancing.TcpRoute(\"reject\", new()\n    {\n        ServiceName = \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n        Weight = 1,\n        FrontendId = 11111,\n        Action = new Ovh.IpLoadBalancing.Inputs.TcpRouteActionArgs\n        {\n            Type = \"reject\",\n        },\n    });\n\n    var exampleRule = new Ovh.IpLoadBalancing.TcpRouteRule(\"example_rule\", new()\n    {\n        ServiceName = \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n        RouteId = reject.Id,\n        DisplayName = \"Match example.com host\",\n        Field = \"sni\",\n        Match = \"is\",\n        Negate = false,\n        Pattern = \"example.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iploadbalancing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\treject, err := iploadbalancing.NewTcpRoute(ctx, \"reject\", \u0026iploadbalancing.TcpRouteArgs{\n\t\t\tServiceName: pulumi.String(\"loadbalancer-xxxxxxxxxxxxxxxxxx\"),\n\t\t\tWeight:      pulumi.Int(1),\n\t\t\tFrontendId:  pulumi.Int(11111),\n\t\t\tAction: \u0026iploadbalancing.TcpRouteActionArgs{\n\t\t\t\tType: pulumi.String(\"reject\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iploadbalancing.NewTcpRouteRule(ctx, \"example_rule\", \u0026iploadbalancing.TcpRouteRuleArgs{\n\t\t\tServiceName: pulumi.String(\"loadbalancer-xxxxxxxxxxxxxxxxxx\"),\n\t\t\tRouteId:     reject.ID(),\n\t\t\tDisplayName: pulumi.String(\"Match example.com host\"),\n\t\t\tField:       pulumi.String(\"sni\"),\n\t\t\tMatch:       pulumi.String(\"is\"),\n\t\t\tNegate:      pulumi.Bool(false),\n\t\t\tPattern:     pulumi.String(\"example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.TcpRoute;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.TcpRouteArgs;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.TcpRouteActionArgs;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.TcpRouteRule;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.TcpRouteRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var reject = new TcpRoute(\"reject\", TcpRouteArgs.builder()\n            .serviceName(\"loadbalancer-xxxxxxxxxxxxxxxxxx\")\n            .weight(1)\n            .frontendId(11111)\n            .action(TcpRouteActionArgs.builder()\n                .type(\"reject\")\n                .build())\n            .build());\n\n        var exampleRule = new TcpRouteRule(\"exampleRule\", TcpRouteRuleArgs.builder()\n            .serviceName(\"loadbalancer-xxxxxxxxxxxxxxxxxx\")\n            .routeId(reject.id())\n            .displayName(\"Match example.com host\")\n            .field(\"sni\")\n            .match(\"is\")\n            .negate(false)\n            .pattern(\"example.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  reject:\n    type: ovh:IpLoadBalancing:TcpRoute\n    properties:\n      serviceName: loadbalancer-xxxxxxxxxxxxxxxxxx\n      weight: 1\n      frontendId: 11111\n      action:\n        type: reject\n  exampleRule:\n    type: ovh:IpLoadBalancing:TcpRouteRule\n    name: example_rule\n    properties:\n      serviceName: loadbalancer-xxxxxxxxxxxxxxxxxx\n      routeId: ${reject.id}\n      displayName: Match example.com host\n      field: sni\n      match: is\n      negate: false\n      pattern: example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nTCP route rule can be imported using the following format `service_name`, the `id` of the route and the `id` of the rule separated by \"/\" e.g.\n\nbash\n\n```sh\n$ pulumi import ovh:IpLoadBalancing/tcpRouteRule:TcpRouteRule examplerule service_name/route_id/rule_id\n```\n\n","properties":{"displayName":{"type":"string","description":"Human readable name for your rule, this field is for you\n"},"field":{"type":"string","description":"Name of the field to match like \"protocol\" or \"host\". See \"/ipLoadbalancing/{serviceName}/availableRouteRules\" for a list of available rules\n"},"match":{"type":"string","description":"Matching operator. Not all operators are available for all fields. See \"/ipLoadbalancing/{serviceName}/availableRouteRules\"\n"},"negate":{"type":"boolean","description":"Invert the matching operator effect\n"},"pattern":{"type":"string","description":"Value to match against this match. Interpretation if this field depends on the match and field\n"},"routeId":{"type":"string","description":"The route to apply this rule\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"subField":{"type":"string","description":"Name of sub-field, if applicable. This may be a Cookie or Header name for instance\n"}},"required":["field","match","negate","routeId","serviceName"],"inputProperties":{"displayName":{"type":"string","description":"Human readable name for your rule, this field is for you\n"},"field":{"type":"string","description":"Name of the field to match like \"protocol\" or \"host\". See \"/ipLoadbalancing/{serviceName}/availableRouteRules\" for a list of available rules\n"},"match":{"type":"string","description":"Matching operator. Not all operators are available for all fields. See \"/ipLoadbalancing/{serviceName}/availableRouteRules\"\n"},"negate":{"type":"boolean","description":"Invert the matching operator effect\n"},"pattern":{"type":"string","description":"Value to match against this match. Interpretation if this field depends on the match and field\n"},"routeId":{"type":"string","description":"The route to apply this rule\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n","willReplaceOnChanges":true},"subField":{"type":"string","description":"Name of sub-field, if applicable. This may be a Cookie or Header name for instance\n"}},"requiredInputs":["field","match","routeId","serviceName"],"stateInputs":{"description":"Input properties used for looking up and filtering TcpRouteRule resources.\n","properties":{"displayName":{"type":"string","description":"Human readable name for your rule, this field is for you\n"},"field":{"type":"string","description":"Name of the field to match like \"protocol\" or \"host\". See \"/ipLoadbalancing/{serviceName}/availableRouteRules\" for a list of available rules\n"},"match":{"type":"string","description":"Matching operator. Not all operators are available for all fields. See \"/ipLoadbalancing/{serviceName}/availableRouteRules\"\n"},"negate":{"type":"boolean","description":"Invert the matching operator effect\n"},"pattern":{"type":"string","description":"Value to match against this match. Interpretation if this field depends on the match and field\n"},"routeId":{"type":"string","description":"The route to apply this rule\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n","willReplaceOnChanges":true},"subField":{"type":"string","description":"Name of sub-field, if applicable. This may be a Cookie or Header name for instance\n"}},"type":"object"}},"ovh:IpLoadBalancing/udpFarm:UdpFarm":{"description":"Creates a backend server group (farm) to be used by loadbalancing frontend(s)\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst lb = ovh.IpLoadBalancing.getIpLoadBalancing({\n    serviceName: \"ip-1.2.3.4\",\n    state: \"ok\",\n});\nconst farmName = new ovh.iploadbalancing.UdpFarm(\"farm_name\", {\n    serviceName: lb.then(lb =\u003e lb.serviceName),\n    displayName: \"ingress-8080-gra\",\n    zone: \"gra\",\n    port: 80,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"ip-1.2.3.4\",\n    state=\"ok\")\nfarm_name = ovh.iploadbalancing.UdpFarm(\"farm_name\",\n    service_name=lb.service_name,\n    display_name=\"ingress-8080-gra\",\n    zone=\"gra\",\n    port=80)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var lb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n    {\n        ServiceName = \"ip-1.2.3.4\",\n        State = \"ok\",\n    });\n\n    var farmName = new Ovh.IpLoadBalancing.UdpFarm(\"farm_name\", new()\n    {\n        ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n        DisplayName = \"ingress-8080-gra\",\n        Zone = \"gra\",\n        Port = 80,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iploadbalancing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tlb, err := iploadbalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\n\t\t\tServiceName: pulumi.StringRef(\"ip-1.2.3.4\"),\n\t\t\tState:       pulumi.StringRef(\"ok\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iploadbalancing.NewUdpFarm(ctx, \"farm_name\", \u0026iploadbalancing.UdpFarmArgs{\n\t\t\tServiceName: pulumi.String(lb.ServiceName),\n\t\t\tDisplayName: pulumi.String(\"ingress-8080-gra\"),\n\t\t\tZone:        pulumi.String(\"gra\"),\n\t\t\tPort:        pulumi.Float64(80),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.IpLoadBalancing.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.UdpFarm;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.UdpFarmArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var lb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n            .serviceName(\"ip-1.2.3.4\")\n            .state(\"ok\")\n            .build());\n\n        var farmName = new UdpFarm(\"farmName\", UdpFarmArgs.builder()\n            .serviceName(lb.serviceName())\n            .displayName(\"ingress-8080-gra\")\n            .zone(\"gra\")\n            .port(80.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  farmName:\n    type: ovh:IpLoadBalancing:UdpFarm\n    name: farm_name\n    properties:\n      serviceName: ${lb.serviceName}\n      displayName: ingress-8080-gra\n      zone: gra\n      port: 80\nvariables:\n  lb:\n    fn::invoke:\n      function: ovh:IpLoadBalancing:getIpLoadBalancing\n      arguments:\n        serviceName: ip-1.2.3.4\n        state: ok\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUDP Farm can be imported using the following format `service_name` and the `id` of the farm, separated by \"/\" e.g.\n\nbash\n\n```sh\n$ pulumi import ovh:IpLoadBalancing/udpFarm:UdpFarm farmname service_name/farm_id\n```\n\n","properties":{"displayName":{"type":"string","description":"Readable label for loadbalancer farm\n"},"farmId":{"type":"number","description":"Id of your farm.\n"},"port":{"type":"number","description":"Port attached to your farm ([1..49151]). Inherited from frontend if null\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"vrackNetworkId":{"type":"number","description":"Internal Load Balancer identifier of the vRack private network to attach to your farm, mandatory when your Load Balancer is attached to a vRack\n"},"zone":{"type":"string","description":"Zone where the farm will be defined (ie. `gra`, `bhs` also supports `all`)\n"}},"required":["farmId","port","serviceName","zone"],"inputProperties":{"displayName":{"type":"string","description":"Readable label for loadbalancer farm\n"},"port":{"type":"number","description":"Port attached to your farm ([1..49151]). Inherited from frontend if null\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"vrackNetworkId":{"type":"number","description":"Internal Load Balancer identifier of the vRack private network to attach to your farm, mandatory when your Load Balancer is attached to a vRack\n"},"zone":{"type":"string","description":"Zone where the farm will be defined (ie. `gra`, `bhs` also supports `all`)\n"}},"requiredInputs":["port","serviceName","zone"],"stateInputs":{"description":"Input properties used for looking up and filtering UdpFarm resources.\n","properties":{"displayName":{"type":"string","description":"Readable label for loadbalancer farm\n"},"farmId":{"type":"number","description":"Id of your farm.\n"},"port":{"type":"number","description":"Port attached to your farm ([1..49151]). Inherited from frontend if null\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"vrackNetworkId":{"type":"number","description":"Internal Load Balancer identifier of the vRack private network to attach to your farm, mandatory when your Load Balancer is attached to a vRack\n"},"zone":{"type":"string","description":"Zone where the farm will be defined (ie. `gra`, `bhs` also supports `all`)\n"}},"type":"object"}},"ovh:IpLoadBalancing/udpFarmServer:UdpFarmServer":{"description":"Creates a backend server entry linked to loadbalancing group (farm)\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst lb = ovh.IpLoadBalancing.getIpLoadBalancing({\n    serviceName: \"ip-1.2.3.4\",\n    state: \"ok\",\n});\nconst farmName = new ovh.iploadbalancing.UdpFarm(\"farm_name\", {\n    serviceName: lb.then(lb =\u003e lb.serviceName),\n    displayName: \"ingress-8080-gra\",\n    zone: \"gra\",\n    port: 80,\n});\nconst backend = new ovh.iploadbalancing.UdpFarmServer(\"backend\", {\n    serviceName: lb.then(lb =\u003e lb.serviceName),\n    farmId: farmName.farmId,\n    displayName: \"mybackend\",\n    address: \"4.5.6.7\",\n    status: \"active\",\n    port: 80,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"ip-1.2.3.4\",\n    state=\"ok\")\nfarm_name = ovh.iploadbalancing.UdpFarm(\"farm_name\",\n    service_name=lb.service_name,\n    display_name=\"ingress-8080-gra\",\n    zone=\"gra\",\n    port=80)\nbackend = ovh.iploadbalancing.UdpFarmServer(\"backend\",\n    service_name=lb.service_name,\n    farm_id=farm_name.farm_id,\n    display_name=\"mybackend\",\n    address=\"4.5.6.7\",\n    status=\"active\",\n    port=80)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var lb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n    {\n        ServiceName = \"ip-1.2.3.4\",\n        State = \"ok\",\n    });\n\n    var farmName = new Ovh.IpLoadBalancing.UdpFarm(\"farm_name\", new()\n    {\n        ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n        DisplayName = \"ingress-8080-gra\",\n        Zone = \"gra\",\n        Port = 80,\n    });\n\n    var backend = new Ovh.IpLoadBalancing.UdpFarmServer(\"backend\", new()\n    {\n        ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n        FarmId = farmName.FarmId,\n        DisplayName = \"mybackend\",\n        Address = \"4.5.6.7\",\n        Status = \"active\",\n        Port = 80,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iploadbalancing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tlb, err := iploadbalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\n\t\t\tServiceName: pulumi.StringRef(\"ip-1.2.3.4\"),\n\t\t\tState:       pulumi.StringRef(\"ok\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfarmName, err := iploadbalancing.NewUdpFarm(ctx, \"farm_name\", \u0026iploadbalancing.UdpFarmArgs{\n\t\t\tServiceName: pulumi.String(lb.ServiceName),\n\t\t\tDisplayName: pulumi.String(\"ingress-8080-gra\"),\n\t\t\tZone:        pulumi.String(\"gra\"),\n\t\t\tPort:        pulumi.Float64(80),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iploadbalancing.NewUdpFarmServer(ctx, \"backend\", \u0026iploadbalancing.UdpFarmServerArgs{\n\t\t\tServiceName: pulumi.String(lb.ServiceName),\n\t\t\tFarmId:      farmName.FarmId,\n\t\t\tDisplayName: pulumi.String(\"mybackend\"),\n\t\t\tAddress:     pulumi.String(\"4.5.6.7\"),\n\t\t\tStatus:      pulumi.String(\"active\"),\n\t\t\tPort:        pulumi.Float64(80),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.IpLoadBalancing.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.UdpFarm;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.UdpFarmArgs;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.UdpFarmServer;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.UdpFarmServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var lb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n            .serviceName(\"ip-1.2.3.4\")\n            .state(\"ok\")\n            .build());\n\n        var farmName = new UdpFarm(\"farmName\", UdpFarmArgs.builder()\n            .serviceName(lb.serviceName())\n            .displayName(\"ingress-8080-gra\")\n            .zone(\"gra\")\n            .port(80.0)\n            .build());\n\n        var backend = new UdpFarmServer(\"backend\", UdpFarmServerArgs.builder()\n            .serviceName(lb.serviceName())\n            .farmId(farmName.farmId())\n            .displayName(\"mybackend\")\n            .address(\"4.5.6.7\")\n            .status(\"active\")\n            .port(80.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  farmName:\n    type: ovh:IpLoadBalancing:UdpFarm\n    name: farm_name\n    properties:\n      serviceName: ${lb.serviceName}\n      displayName: ingress-8080-gra\n      zone: gra\n      port: 80\n  backend:\n    type: ovh:IpLoadBalancing:UdpFarmServer\n    properties:\n      serviceName: ${lb.serviceName}\n      farmId: ${farmName.farmId}\n      displayName: mybackend\n      address: 4.5.6.7\n      status: active\n      port: 80\nvariables:\n  lb:\n    fn::invoke:\n      function: ovh:IpLoadBalancing:getIpLoadBalancing\n      arguments:\n        serviceName: ip-1.2.3.4\n        state: ok\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUDP farm server can be imported using the following format `service_name`, the `id` of the farm and the `id` of the server separated by \"/\" e.g.\n\nbash\n\n```sh\n$ pulumi import ovh:IpLoadBalancing/udpFarmServer:UdpFarmServer backend service_name/farm_id/server_id\n```\n\n","properties":{"address":{"type":"string","description":"Address of the backend server (IP from either internal or OVHcloud network)\n"},"backendId":{"type":"number","description":"Synonym for `farm_id`.\n"},"displayName":{"type":"string","description":"Label for the server\n"},"farmId":{"type":"number","description":"ID of the farm this server is attached to\n"},"port":{"type":"number","description":"Port that backend will respond on\n"},"serverId":{"type":"number","description":"Id of your server.\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"status":{"type":"string","description":"backend status - `active` or `inactive`\n"}},"required":["address","backendId","farmId","serverId","serviceName","status"],"inputProperties":{"address":{"type":"string","description":"Address of the backend server (IP from either internal or OVHcloud network)\n"},"displayName":{"type":"string","description":"Label for the server\n"},"farmId":{"type":"number","description":"ID of the farm this server is attached to\n"},"port":{"type":"number","description":"Port that backend will respond on\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"status":{"type":"string","description":"backend status - `active` or `inactive`\n"}},"requiredInputs":["address","farmId","serviceName","status"],"stateInputs":{"description":"Input properties used for looking up and filtering UdpFarmServer resources.\n","properties":{"address":{"type":"string","description":"Address of the backend server (IP from either internal or OVHcloud network)\n"},"backendId":{"type":"number","description":"Synonym for `farm_id`.\n"},"displayName":{"type":"string","description":"Label for the server\n"},"farmId":{"type":"number","description":"ID of the farm this server is attached to\n"},"port":{"type":"number","description":"Port that backend will respond on\n"},"serverId":{"type":"number","description":"Id of your server.\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"status":{"type":"string","description":"backend status - `active` or `inactive`\n"}},"type":"object"}},"ovh:IpLoadBalancing/udpFrontend:UdpFrontend":{"description":"Creates a backend server group (frontend) to be used by loadbalancing frontend(s)\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst lb = ovh.IpLoadBalancing.getIpLoadBalancing({\n    serviceName: \"ip-1.2.3.4\",\n    state: \"ok\",\n});\nconst testFrontend = new ovh.iploadbalancing.UdpFrontend(\"test_frontend\", {\n    serviceName: lb.then(lb =\u003e lb.serviceName),\n    displayName: \"ingress-8080-gra\",\n    zone: \"all\",\n    port: \"10,11\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"ip-1.2.3.4\",\n    state=\"ok\")\ntest_frontend = ovh.iploadbalancing.UdpFrontend(\"test_frontend\",\n    service_name=lb.service_name,\n    display_name=\"ingress-8080-gra\",\n    zone=\"all\",\n    port=\"10,11\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var lb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n    {\n        ServiceName = \"ip-1.2.3.4\",\n        State = \"ok\",\n    });\n\n    var testFrontend = new Ovh.IpLoadBalancing.UdpFrontend(\"test_frontend\", new()\n    {\n        ServiceName = lb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n        DisplayName = \"ingress-8080-gra\",\n        Zone = \"all\",\n        Port = \"10,11\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iploadbalancing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tlb, err := iploadbalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\n\t\t\tServiceName: pulumi.StringRef(\"ip-1.2.3.4\"),\n\t\t\tState:       pulumi.StringRef(\"ok\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iploadbalancing.NewUdpFrontend(ctx, \"test_frontend\", \u0026iploadbalancing.UdpFrontendArgs{\n\t\t\tServiceName: pulumi.String(lb.ServiceName),\n\t\t\tDisplayName: pulumi.String(\"ingress-8080-gra\"),\n\t\t\tZone:        pulumi.String(\"all\"),\n\t\t\tPort:        pulumi.String(\"10,11\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.IpLoadBalancing.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.UdpFrontend;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.UdpFrontendArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var lb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n            .serviceName(\"ip-1.2.3.4\")\n            .state(\"ok\")\n            .build());\n\n        var testFrontend = new UdpFrontend(\"testFrontend\", UdpFrontendArgs.builder()\n            .serviceName(lb.serviceName())\n            .displayName(\"ingress-8080-gra\")\n            .zone(\"all\")\n            .port(\"10,11\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testFrontend:\n    type: ovh:IpLoadBalancing:UdpFrontend\n    name: test_frontend\n    properties:\n      serviceName: ${lb.serviceName}\n      displayName: ingress-8080-gra\n      zone: all\n      port: 10,11\nvariables:\n  lb:\n    fn::invoke:\n      function: ovh:IpLoadBalancing:getIpLoadBalancing\n      arguments:\n        serviceName: ip-1.2.3.4\n        state: ok\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUDP frontend can be imported using the following format `service_name` and the `id` of the frontend separated by \"/\" e.g.\n\nbash\n\n```sh\n$ pulumi import ovh:IpLoadBalancing/udpFrontend:UdpFrontend testfrontend service_name/frontend_id\n```\n\n","properties":{"dedicatedIpfos":{"type":"array","items":{"type":"string"},"description":"Only attach frontend on these ip. No restriction if null. List of Ip blocks.\n"},"defaultFarmId":{"type":"number","description":"Default UDP Farm of your frontend\n"},"disabled":{"type":"boolean","description":"Disable your frontend. Default: 'false'\n"},"displayName":{"type":"string","description":"Human readable name for your frontend\n"},"frontendId":{"type":"number","description":"Id of your frontend\n"},"port":{"type":"string","description":"Port(s) attached to your frontend. Supports single port (numerical value), range (2 dash-delimited increasing ports) and comma-separated list of 'single port' and/or 'range'. Each port must be in the [1;49151] range\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"zone":{"type":"string","description":"Zone where the frontend will be defined (ie. `gra`, `bhs` also supports `all`)\n"}},"required":["disabled","frontendId","port","serviceName","zone"],"inputProperties":{"dedicatedIpfos":{"type":"array","items":{"type":"string"},"description":"Only attach frontend on these ip. No restriction if null. List of Ip blocks.\n"},"defaultFarmId":{"type":"number","description":"Default UDP Farm of your frontend\n"},"disabled":{"type":"boolean","description":"Disable your frontend. Default: 'false'\n"},"displayName":{"type":"string","description":"Human readable name for your frontend\n"},"port":{"type":"string","description":"Port(s) attached to your frontend. Supports single port (numerical value), range (2 dash-delimited increasing ports) and comma-separated list of 'single port' and/or 'range'. Each port must be in the [1;49151] range\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"zone":{"type":"string","description":"Zone where the frontend will be defined (ie. `gra`, `bhs` also supports `all`)\n"}},"requiredInputs":["port","serviceName","zone"],"stateInputs":{"description":"Input properties used for looking up and filtering UdpFrontend resources.\n","properties":{"dedicatedIpfos":{"type":"array","items":{"type":"string"},"description":"Only attach frontend on these ip. No restriction if null. List of Ip blocks.\n"},"defaultFarmId":{"type":"number","description":"Default UDP Farm of your frontend\n"},"disabled":{"type":"boolean","description":"Disable your frontend. Default: 'false'\n"},"displayName":{"type":"string","description":"Human readable name for your frontend\n"},"frontendId":{"type":"number","description":"Id of your frontend\n"},"port":{"type":"string","description":"Port(s) attached to your frontend. Supports single port (numerical value), range (2 dash-delimited increasing ports) and comma-separated list of 'single port' and/or 'range'. Each port must be in the [1;49151] range\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"zone":{"type":"string","description":"Zone where the frontend will be defined (ie. `gra`, `bhs` also supports `all`)\n"}},"type":"object"}},"ovh:IpLoadBalancing/vrackNetwork:VrackNetwork":{"description":"Manage a vrack network for your IP Loadbalancing service.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst iplb = ovh.IpLoadBalancing.getIpLoadBalancing({\n    serviceName: \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n});\nconst vipLb = new ovh.vrack.IpLoadbalancing(\"vip_lb\", {\n    serviceName: \"xxx\",\n    LoadbalancingId: iplb.then(iplb =\u003e iplb.serviceName),\n});\nconst network = new ovh.iploadbalancing.VrackNetwork(\"network\", {\n    serviceName: vipLb.LoadbalancingId,\n    subnet: \"10.0.0.0/16\",\n    vlan: 1,\n    natIp: \"10.0.0.0/27\",\n    displayName: \"mynetwork\",\n});\nconst testFarm = new ovh.iploadbalancing.TcpFarm(\"test_farm\", {\n    serviceName: network.serviceName,\n    displayName: \"mytcpbackends\",\n    port: 80,\n    vrackNetworkId: network.vrackNetworkId,\n    zone: iplb.then(iplb =\u003e iplb.zones?.[0]),\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\niplb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"loadbalancer-xxxxxxxxxxxxxxxxxx\")\nvip_lb = ovh.vrack.IpLoadbalancing(\"vip_lb\",\n    service_name=\"xxx\",\n    loadbalancing_id=iplb.service_name)\nnetwork = ovh.iploadbalancing.VrackNetwork(\"network\",\n    service_name=vip_lb.loadbalancing_id,\n    subnet=\"10.0.0.0/16\",\n    vlan=1,\n    nat_ip=\"10.0.0.0/27\",\n    display_name=\"mynetwork\")\ntest_farm = ovh.iploadbalancing.TcpFarm(\"test_farm\",\n    service_name=network.service_name,\n    display_name=\"mytcpbackends\",\n    port=80,\n    vrack_network_id=network.vrack_network_id,\n    zone=iplb.zones[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 iplb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n    {\n        ServiceName = \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n    });\n\n    var vipLb = new Ovh.Vrack.IpLoadbalancing(\"vip_lb\", new()\n    {\n        ServiceName = \"xxx\",\n        LoadbalancingId = iplb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.ServiceName),\n    });\n\n    var network = new Ovh.IpLoadBalancing.VrackNetwork(\"network\", new()\n    {\n        ServiceName = vipLb.LoadbalancingId,\n        Subnet = \"10.0.0.0/16\",\n        Vlan = 1,\n        NatIp = \"10.0.0.0/27\",\n        DisplayName = \"mynetwork\",\n    });\n\n    var testFarm = new Ovh.IpLoadBalancing.TcpFarm(\"test_farm\", new()\n    {\n        ServiceName = network.ServiceName,\n        DisplayName = \"mytcpbackends\",\n        Port = 80,\n        VrackNetworkId = network.VrackNetworkId,\n        Zone = iplb.Apply(getIpLoadBalancingResult =\u003e getIpLoadBalancingResult.Zones[0]),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iploadbalancing\"\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tiplb, err := iploadbalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\n\t\t\tServiceName: pulumi.StringRef(\"loadbalancer-xxxxxxxxxxxxxxxxxx\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvipLb, err := vrack.NewIpLoadbalancing(ctx, \"vip_lb\", \u0026vrack.IpLoadbalancingArgs{\n\t\t\tServiceName:     pulumi.String(\"xxx\"),\n\t\t\tLoadbalancingId: pulumi.String(iplb.ServiceName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnetwork, err := iploadbalancing.NewVrackNetwork(ctx, \"network\", \u0026iploadbalancing.VrackNetworkArgs{\n\t\t\tServiceName: vipLb.LoadbalancingId,\n\t\t\tSubnet:      pulumi.String(\"10.0.0.0/16\"),\n\t\t\tVlan:        pulumi.Int(1),\n\t\t\tNatIp:       pulumi.String(\"10.0.0.0/27\"),\n\t\t\tDisplayName: pulumi.String(\"mynetwork\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iploadbalancing.NewTcpFarm(ctx, \"test_farm\", \u0026iploadbalancing.TcpFarmArgs{\n\t\t\tServiceName:    network.ServiceName,\n\t\t\tDisplayName:    pulumi.String(\"mytcpbackends\"),\n\t\t\tPort:           pulumi.Int(80),\n\t\t\tVrackNetworkId: network.VrackNetworkId,\n\t\t\tZone:           pulumi.String(iplb.Zones[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.IpLoadBalancing.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport com.ovhcloud.pulumi.ovh.Vrack.IpLoadbalancing;\nimport com.ovhcloud.pulumi.ovh.Vrack.IpLoadbalancingArgs;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.VrackNetwork;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.VrackNetworkArgs;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.TcpFarm;\nimport com.ovhcloud.pulumi.ovh.IpLoadBalancing.TcpFarmArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var iplb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n            .serviceName(\"loadbalancer-xxxxxxxxxxxxxxxxxx\")\n            .build());\n\n        var vipLb = new IpLoadbalancing(\"vipLb\", IpLoadbalancingArgs.builder()\n            .serviceName(\"xxx\")\n            .LoadbalancingId(iplb.serviceName())\n            .build());\n\n        var network = new VrackNetwork(\"network\", VrackNetworkArgs.builder()\n            .serviceName(vipLb.LoadbalancingId())\n            .subnet(\"10.0.0.0/16\")\n            .vlan(1)\n            .natIp(\"10.0.0.0/27\")\n            .displayName(\"mynetwork\")\n            .build());\n\n        var testFarm = new TcpFarm(\"testFarm\", TcpFarmArgs.builder()\n            .serviceName(network.serviceName())\n            .displayName(\"mytcpbackends\")\n            .port(80)\n            .vrackNetworkId(network.vrackNetworkId())\n            .zone(iplb.zones()[0])\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vipLb:\n    type: ovh:Vrack:IpLoadbalancing\n    name: vip_lb\n    properties:\n      serviceName: xxx\n      LoadbalancingId: ${iplb.serviceName}\n  network:\n    type: ovh:IpLoadBalancing:VrackNetwork\n    properties:\n      serviceName: ${vipLb.LoadbalancingId}\n      subnet: 10.0.0.0/16\n      vlan: 1\n      natIp: 10.0.0.0/27\n      displayName: mynetwork\n  testFarm:\n    type: ovh:IpLoadBalancing:TcpFarm\n    name: test_farm\n    properties:\n      serviceName: ${network.serviceName}\n      displayName: mytcpbackends\n      port: 80\n      vrackNetworkId: ${network.vrackNetworkId}\n      zone: ${iplb.zones[0]}\nvariables:\n  iplb:\n    fn::invoke:\n      function: ovh:IpLoadBalancing:getIpLoadBalancing\n      arguments:\n        serviceName: loadbalancer-xxxxxxxxxxxxxxxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAn IP Loadbalancing vRack network can be imported using the `service_name` and `vrack_network_id`, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:IpLoadBalancing/vrackNetwork:VrackNetwork network service_name/vrack_network_id\n```\n\n","properties":{"displayName":{"type":"string","description":"Human readable name for your vrack network\n"},"farmIds":{"type":"array","items":{"type":"integer"},"description":"This attribute is there for documentation purpose only and isnt passed to the OVHcloud API as it may conflicts with http/tcp farms `vrack_network_id` attribute\n"},"natIp":{"type":"string","description":"An IP block used as a pool of IPs by this Load Balancer to connect to the servers in this private network. The blck must be in the private network and reserved for the Load Balancer\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"subnet":{"type":"string","description":"IP block of the private network in the vRack\n"},"vlan":{"type":"integer","description":"VLAN of the private network in the vRack. 0 if the private network is not in a VLAN\n"},"vrackNetworkId":{"type":"integer","description":"(Required) Internal Load Balancer identifier of the vRack private network\n"}},"required":["natIp","serviceName","subnet","vlan","vrackNetworkId"],"inputProperties":{"displayName":{"type":"string","description":"Human readable name for your vrack network\n"},"farmIds":{"type":"array","items":{"type":"integer"},"description":"This attribute is there for documentation purpose only and isnt passed to the OVHcloud API as it may conflicts with http/tcp farms `vrack_network_id` attribute\n"},"natIp":{"type":"string","description":"An IP block used as a pool of IPs by this Load Balancer to connect to the servers in this private network. The blck must be in the private network and reserved for the Load Balancer\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"subnet":{"type":"string","description":"IP block of the private network in the vRack\n"},"vlan":{"type":"integer","description":"VLAN of the private network in the vRack. 0 if the private network is not in a VLAN\n"}},"requiredInputs":["natIp","serviceName","subnet"],"stateInputs":{"description":"Input properties used for looking up and filtering VrackNetwork resources.\n","properties":{"displayName":{"type":"string","description":"Human readable name for your vrack network\n"},"farmIds":{"type":"array","items":{"type":"integer"},"description":"This attribute is there for documentation purpose only and isnt passed to the OVHcloud API as it may conflicts with http/tcp farms `vrack_network_id` attribute\n"},"natIp":{"type":"string","description":"An IP block used as a pool of IPs by this Load Balancer to connect to the servers in this private network. The blck must be in the private network and reserved for the Load Balancer\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"subnet":{"type":"string","description":"IP block of the private network in the vRack\n"},"vlan":{"type":"integer","description":"VLAN of the private network in the vRack. 0 if the private network is not in a VLAN\n"},"vrackNetworkId":{"type":"integer","description":"(Required) Internal Load Balancer identifier of the vRack private network\n"}},"type":"object"}},"ovh:Me/aPIOAuth2Client:APIOAuth2Client":{"description":"Creates an OAuth2 service account.\n\n## Example Usage\n\nAn OAuth2 client for an app hosted at `my-app.com`, that uses the authorization code flow to authenticate.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst myOauth2ClientAuthCode = new ovh.me.APIOAuth2Client(\"my_oauth2_client_auth_code\", {\n    name: \"OAuth2 authorization code service account\",\n    flow: \"AUTHORIZATION_CODE\",\n    description: \"An OAuth2 client using the authorization code flow for my-app.com\",\n    callbackUrls: [\"https://my-app.com/callback\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_oauth2_client_auth_code = ovh.me.APIOAuth2Client(\"my_oauth2_client_auth_code\",\n    name=\"OAuth2 authorization code service account\",\n    flow=\"AUTHORIZATION_CODE\",\n    description=\"An OAuth2 client using the authorization code flow for my-app.com\",\n    callback_urls=[\"https://my-app.com/callback\"])\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 myOauth2ClientAuthCode = new Ovh.Me.APIOAuth2Client(\"my_oauth2_client_auth_code\", new()\n    {\n        Name = \"OAuth2 authorization code service account\",\n        Flow = \"AUTHORIZATION_CODE\",\n        Description = \"An OAuth2 client using the authorization code flow for my-app.com\",\n        CallbackUrls = new[]\n        {\n            \"https://my-app.com/callback\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewAPIOAuth2Client(ctx, \"my_oauth2_client_auth_code\", \u0026me.APIOAuth2ClientArgs{\n\t\t\tName:        pulumi.String(\"OAuth2 authorization code service account\"),\n\t\t\tFlow:        pulumi.String(\"AUTHORIZATION_CODE\"),\n\t\t\tDescription: pulumi.String(\"An OAuth2 client using the authorization code flow for my-app.com\"),\n\t\t\tCallbackUrls: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"https://my-app.com/callback\"),\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.ovhcloud.pulumi.ovh.Me.APIOAuth2Client;\nimport com.ovhcloud.pulumi.ovh.Me.APIOAuth2ClientArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myOauth2ClientAuthCode = new APIOAuth2Client(\"myOauth2ClientAuthCode\", APIOAuth2ClientArgs.builder()\n            .name(\"OAuth2 authorization code service account\")\n            .flow(\"AUTHORIZATION_CODE\")\n            .description(\"An OAuth2 client using the authorization code flow for my-app.com\")\n            .callbackUrls(\"https://my-app.com/callback\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myOauth2ClientAuthCode:\n    type: ovh:Me:APIOAuth2Client\n    name: my_oauth2_client_auth_code\n    properties:\n      name: OAuth2 authorization code service account\n      flow: AUTHORIZATION_CODE\n      description: An OAuth2 client using the authorization code flow for my-app.com\n      callbackUrls:\n        - https://my-app.com/callback\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nAn OAuth2 client for an app hosted at `my-app.com`, that uses the client credentials flow to authenticate.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst myOauth2ClientClientCreds = new ovh.me.APIOAuth2Client(\"my_oauth2_client_client_creds\", {\n    name: \"client credentials service account\",\n    description: \"An OAuth2 client using the client credentials flow for my app\",\n    flow: \"CLIENT_CREDENTIALS\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_oauth2_client_client_creds = ovh.me.APIOAuth2Client(\"my_oauth2_client_client_creds\",\n    name=\"client credentials service account\",\n    description=\"An OAuth2 client using the client credentials flow for my app\",\n    flow=\"CLIENT_CREDENTIALS\")\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 myOauth2ClientClientCreds = new Ovh.Me.APIOAuth2Client(\"my_oauth2_client_client_creds\", new()\n    {\n        Name = \"client credentials service account\",\n        Description = \"An OAuth2 client using the client credentials flow for my app\",\n        Flow = \"CLIENT_CREDENTIALS\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewAPIOAuth2Client(ctx, \"my_oauth2_client_client_creds\", \u0026me.APIOAuth2ClientArgs{\n\t\t\tName:        pulumi.String(\"client credentials service account\"),\n\t\t\tDescription: pulumi.String(\"An OAuth2 client using the client credentials flow for my app\"),\n\t\t\tFlow:        pulumi.String(\"CLIENT_CREDENTIALS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Me.APIOAuth2Client;\nimport com.ovhcloud.pulumi.ovh.Me.APIOAuth2ClientArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myOauth2ClientClientCreds = new APIOAuth2Client(\"myOauth2ClientClientCreds\", APIOAuth2ClientArgs.builder()\n            .name(\"client credentials service account\")\n            .description(\"An OAuth2 client using the client credentials flow for my app\")\n            .flow(\"CLIENT_CREDENTIALS\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myOauth2ClientClientCreds:\n    type: ovh:Me:APIOAuth2Client\n    name: my_oauth2_client_client_creds\n    properties:\n      name: client credentials service account\n      description: An OAuth2 client using the client credentials flow for my app\n      flow: CLIENT_CREDENTIALS\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOAuth2 clients can be imported using their `client_id`:\n\nbash\n\n```sh\n$ pulumi import ovh:Me/aPIOAuth2Client:APIOAuth2Client my_oauth2_client client_id\n```\n\nBecause the client_secret is only available for resources created using terraform, OAuth2 clients can also be imported using a `client_id` and a `client_secret` with a pipe separator:\n\nbash\n\n```sh\n$ pulumi import ovh:Me/aPIOAuth2Client:APIOAuth2Client my_oauth2_client 'client_id|client_secret'\n```\n\n","properties":{"callbackUrls":{"type":"array","items":{"type":"string"},"description":"List of callback urls when configuring the `AUTHORIZATION_CODE` flow.\n"},"clientId":{"type":"string","description":"Client ID of the created service account.\n"},"clientSecret":{"type":"string","description":"Client secret of the created service account.\n","secret":true},"description":{"type":"string","description":"OAuth2 client description.\n"},"flow":{"type":"string","description":"The OAuth2 flow to use. `AUTHORIZATION_CODE` or `CLIENT_CREDENTIALS` are supported at the moment.\n"},"identity":{"type":"string","description":"Identity URN of the service account to be used inside an IAM policy.\n"},"name":{"type":"string","description":"OAuth2 client name.\n"}},"required":["clientId","clientSecret","description","flow","identity","name"],"inputProperties":{"callbackUrls":{"type":"array","items":{"type":"string"},"description":"List of callback urls when configuring the `AUTHORIZATION_CODE` flow.\n"},"description":{"type":"string","description":"OAuth2 client description.\n"},"flow":{"type":"string","description":"The OAuth2 flow to use. `AUTHORIZATION_CODE` or `CLIENT_CREDENTIALS` are supported at the moment.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"OAuth2 client name.\n"}},"requiredInputs":["description","flow"],"stateInputs":{"description":"Input properties used for looking up and filtering APIOAuth2Client resources.\n","properties":{"callbackUrls":{"type":"array","items":{"type":"string"},"description":"List of callback urls when configuring the `AUTHORIZATION_CODE` flow.\n"},"clientId":{"type":"string","description":"Client ID of the created service account.\n"},"clientSecret":{"type":"string","description":"Client secret of the created service account.\n","secret":true},"description":{"type":"string","description":"OAuth2 client description.\n"},"flow":{"type":"string","description":"The OAuth2 flow to use. `AUTHORIZATION_CODE` or `CLIENT_CREDENTIALS` are supported at the moment.\n","willReplaceOnChanges":true},"identity":{"type":"string","description":"Identity URN of the service account to be used inside an IAM policy.\n"},"name":{"type":"string","description":"OAuth2 client name.\n"}},"type":"object"}},"ovh:Me/identityGroup:IdentityGroup":{"description":"Creates an identity group.\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 myGroup = new ovh.me.IdentityGroup(\"my_group\", {\n    description: \"Some custom description\",\n    name: \"my_group_name\",\n    role: \"NONE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_group = ovh.me.IdentityGroup(\"my_group\",\n    description=\"Some custom description\",\n    name=\"my_group_name\",\n    role=\"NONE\")\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 myGroup = new Ovh.Me.IdentityGroup(\"my_group\", new()\n    {\n        Description = \"Some custom description\",\n        Name = \"my_group_name\",\n        Role = \"NONE\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewIdentityGroup(ctx, \"my_group\", \u0026me.IdentityGroupArgs{\n\t\t\tDescription: pulumi.String(\"Some custom description\"),\n\t\t\tName:        pulumi.String(\"my_group_name\"),\n\t\t\tRole:        pulumi.String(\"NONE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Me.IdentityGroup;\nimport com.ovhcloud.pulumi.ovh.Me.IdentityGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myGroup = new IdentityGroup(\"myGroup\", IdentityGroupArgs.builder()\n            .description(\"Some custom description\")\n            .name(\"my_group_name\")\n            .role(\"NONE\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myGroup:\n    type: ovh:Me:IdentityGroup\n    name: my_group\n    properties:\n      description: Some custom description\n      name: my_group_name\n      role: NONE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIdentity groups can be imported using their `name`:\n\nbash\n\n```sh\n$ pulumi import ovh:Me/identityGroup:IdentityGroup my_identity_group name\n```\n\n","properties":{"GroupURN":{"type":"string","description":"URN of the user group, used when writing IAM policies\n"},"creation":{"type":"string","description":"Creation date of this group.\n"},"defaultGroup":{"type":"boolean","description":"Is the group a default and immutable one.\n"},"description":{"type":"string","description":"Group description.\n"},"lastUpdate":{"type":"string","description":"Date of the last update of this group.\n"},"name":{"type":"string","description":"Group name.\n"},"role":{"type":"string","description":"Role associated with the group. Valid roles are ADMIN, REGULAR, UNPRIVILEGED, and NONE.\n"}},"required":["creation","defaultGroup","lastUpdate","name","GroupURN"],"inputProperties":{"description":{"type":"string","description":"Group description.\n"},"name":{"type":"string","description":"Group name.\n","willReplaceOnChanges":true},"role":{"type":"string","description":"Role associated with the group. Valid roles are ADMIN, REGULAR, UNPRIVILEGED, and NONE.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering IdentityGroup resources.\n","properties":{"GroupURN":{"type":"string","description":"URN of the user group, used when writing IAM policies\n"},"creation":{"type":"string","description":"Creation date of this group.\n"},"defaultGroup":{"type":"boolean","description":"Is the group a default and immutable one.\n"},"description":{"type":"string","description":"Group description.\n"},"lastUpdate":{"type":"string","description":"Date of the last update of this group.\n"},"name":{"type":"string","description":"Group name.\n","willReplaceOnChanges":true},"role":{"type":"string","description":"Role associated with the group. Valid roles are ADMIN, REGULAR, UNPRIVILEGED, and NONE.\n"}},"type":"object"}},"ovh:Me/identityUser:IdentityUser":{"description":"Creates an identity user.\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 myUser = new ovh.me.IdentityUser(\"my_user\", {\n    description: \"Some custom description\",\n    email: \"my_login@example.com\",\n    group: \"DEFAULT\",\n    login: \"my_login\",\n    password: \"super-s3cr3t!password\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_user = ovh.me.IdentityUser(\"my_user\",\n    description=\"Some custom description\",\n    email=\"my_login@example.com\",\n    group=\"DEFAULT\",\n    login=\"my_login\",\n    password=\"super-s3cr3t!password\")\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 myUser = new Ovh.Me.IdentityUser(\"my_user\", new()\n    {\n        Description = \"Some custom description\",\n        Email = \"my_login@example.com\",\n        Group = \"DEFAULT\",\n        Login = \"my_login\",\n        Password = \"super-s3cr3t!password\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewIdentityUser(ctx, \"my_user\", \u0026me.IdentityUserArgs{\n\t\t\tDescription: pulumi.String(\"Some custom description\"),\n\t\t\tEmail:       pulumi.String(\"my_login@example.com\"),\n\t\t\tGroup:       pulumi.String(\"DEFAULT\"),\n\t\t\tLogin:       pulumi.String(\"my_login\"),\n\t\t\tPassword:    pulumi.String(\"super-s3cr3t!password\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Me.IdentityUser;\nimport com.ovhcloud.pulumi.ovh.Me.IdentityUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myUser = new IdentityUser(\"myUser\", IdentityUserArgs.builder()\n            .description(\"Some custom description\")\n            .email(\"my_login@example.com\")\n            .group(\"DEFAULT\")\n            .login(\"my_login\")\n            .password(\"super-s3cr3t!password\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myUser:\n    type: ovh:Me:IdentityUser\n    name: my_user\n    properties:\n      description: Some custom description\n      email: my_login@example.com\n      group: DEFAULT\n      login: my_login\n      password: super-s3cr3t!password\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAn identity user can be imported using the `login` E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Me/identityUser:IdentityUser my_user login\n```\n\n","properties":{"UserURN":{"type":"string","description":"URN of the user, used when writing IAM policies\n"},"creation":{"type":"string","description":"Creation date of this user.\n"},"description":{"type":"string","description":"User description.\n"},"email":{"type":"string","description":"User's email.\n"},"group":{"type":"string","description":"User's group.\n"},"lastUpdate":{"type":"string","description":"Last update of this user.\n"},"login":{"type":"string","description":"User's login suffix.\n"},"password":{"type":"string","description":"User's password.\n","secret":true},"passwordLastUpdate":{"type":"string","description":"When the user changed his password for the last time.\n"},"status":{"type":"string","description":"Current user's status.\n"}},"required":["creation","email","lastUpdate","login","password","passwordLastUpdate","status","UserURN"],"inputProperties":{"description":{"type":"string","description":"User description.\n"},"email":{"type":"string","description":"User's email.\n"},"group":{"type":"string","description":"User's group.\n"},"login":{"type":"string","description":"User's login suffix.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"User's password.\n","secret":true}},"requiredInputs":["email","login","password"],"stateInputs":{"description":"Input properties used for looking up and filtering IdentityUser resources.\n","properties":{"UserURN":{"type":"string","description":"URN of the user, used when writing IAM policies\n"},"creation":{"type":"string","description":"Creation date of this user.\n"},"description":{"type":"string","description":"User description.\n"},"email":{"type":"string","description":"User's email.\n"},"group":{"type":"string","description":"User's group.\n"},"lastUpdate":{"type":"string","description":"Last update of this user.\n"},"login":{"type":"string","description":"User's login suffix.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"User's password.\n","secret":true},"passwordLastUpdate":{"type":"string","description":"When the user changed his password for the last time.\n"},"status":{"type":"string","description":"Current user's status.\n"}},"type":"object"}},"ovh:Me/identityUserToken:IdentityUserToken":{"description":"Creates a token for an identity user.\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 user = new ovh.me.IdentityUser(\"user\", {\n    description: \"User description\",\n    email: \"user.email@example.com\",\n    group: \"DEFAULT\",\n    login: \"user_login\",\n    password: \"SecretPassword123\",\n});\nconst token = new ovh.me.IdentityUserToken(\"token\", {\n    userLogin: user.login,\n    name: \"token_name\",\n    description: \"Token description\",\n    expiresAt: \"2030-01-01T00:00:00Z\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nuser = ovh.me.IdentityUser(\"user\",\n    description=\"User description\",\n    email=\"user.email@example.com\",\n    group=\"DEFAULT\",\n    login=\"user_login\",\n    password=\"SecretPassword123\")\ntoken = ovh.me.IdentityUserToken(\"token\",\n    user_login=user.login,\n    name=\"token_name\",\n    description=\"Token description\",\n    expires_at=\"2030-01-01T00:00:00Z\")\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 user = new Ovh.Me.IdentityUser(\"user\", new()\n    {\n        Description = \"User description\",\n        Email = \"user.email@example.com\",\n        Group = \"DEFAULT\",\n        Login = \"user_login\",\n        Password = \"SecretPassword123\",\n    });\n\n    var token = new Ovh.Me.IdentityUserToken(\"token\", new()\n    {\n        UserLogin = user.Login,\n        Name = \"token_name\",\n        Description = \"Token description\",\n        ExpiresAt = \"2030-01-01T00:00:00Z\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tuser, err := me.NewIdentityUser(ctx, \"user\", \u0026me.IdentityUserArgs{\n\t\t\tDescription: pulumi.String(\"User description\"),\n\t\t\tEmail:       pulumi.String(\"user.email@example.com\"),\n\t\t\tGroup:       pulumi.String(\"DEFAULT\"),\n\t\t\tLogin:       pulumi.String(\"user_login\"),\n\t\t\tPassword:    pulumi.String(\"SecretPassword123\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = me.NewIdentityUserToken(ctx, \"token\", \u0026me.IdentityUserTokenArgs{\n\t\t\tUserLogin:   user.Login,\n\t\t\tName:        pulumi.String(\"token_name\"),\n\t\t\tDescription: pulumi.String(\"Token description\"),\n\t\t\tExpiresAt:   pulumi.String(\"2030-01-01T00:00:00Z\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Me.IdentityUser;\nimport com.ovhcloud.pulumi.ovh.Me.IdentityUserArgs;\nimport com.ovhcloud.pulumi.ovh.Me.IdentityUserToken;\nimport com.ovhcloud.pulumi.ovh.Me.IdentityUserTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var user = new IdentityUser(\"user\", IdentityUserArgs.builder()\n            .description(\"User description\")\n            .email(\"user.email@example.com\")\n            .group(\"DEFAULT\")\n            .login(\"user_login\")\n            .password(\"SecretPassword123\")\n            .build());\n\n        var token = new IdentityUserToken(\"token\", IdentityUserTokenArgs.builder()\n            .userLogin(user.login())\n            .name(\"token_name\")\n            .description(\"Token description\")\n            .expiresAt(\"2030-01-01T00:00:00Z\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  user:\n    type: ovh:Me:IdentityUser\n    properties:\n      description: User description\n      email: user.email@example.com\n      group: DEFAULT\n      login: user_login\n      password: SecretPassword123\n  token:\n    type: ovh:Me:IdentityUserToken\n    properties:\n      userLogin: ${user.login}\n      name: token_name\n      description: Token description\n      expiresAt: 2030-01-01T00:00:00Z\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nA user identity token can be imported using the `user_login` and `name`, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Me/identityUserToken:IdentityUserToken token user_login/token_name\n```\n\n","properties":{"creation":{"type":"string","description":"Creation date of this token.\n"},"description":{"type":"string","description":"Token description.\n"},"expiresAt":{"type":"string","description":"Token expiration date.\n"},"expiresIn":{"type":"integer","description":"Token validity duration in seconds.\n"},"lastUsed":{"type":"string","description":"Last use of this token.\n"},"name":{"type":"string","description":"Token name.\n"},"token":{"type":"string","description":"The token value.\n","secret":true},"userLogin":{"type":"string","description":"User's login suffix.\n"}},"required":["creation","description","expiresAt","lastUsed","name","token","userLogin"],"inputProperties":{"description":{"type":"string","description":"Token description.\n"},"expiresAt":{"type":"string","description":"Token expiration date.\n"},"expiresIn":{"type":"integer","description":"Token validity duration in seconds.\n"},"name":{"type":"string","description":"Token name.\n"},"userLogin":{"type":"string","description":"User's login suffix.\n"}},"requiredInputs":["description","userLogin"],"stateInputs":{"description":"Input properties used for looking up and filtering IdentityUserToken resources.\n","properties":{"creation":{"type":"string","description":"Creation date of this token.\n"},"description":{"type":"string","description":"Token description.\n"},"expiresAt":{"type":"string","description":"Token expiration date.\n"},"expiresIn":{"type":"integer","description":"Token validity duration in seconds.\n"},"lastUsed":{"type":"string","description":"Last use of this token.\n"},"name":{"type":"string","description":"Token name.\n"},"token":{"type":"string","description":"The token value.\n","secret":true},"userLogin":{"type":"string","description":"User's login suffix.\n"}},"type":"object"}},"ovh:Okms/credential:Credential":{"description":"Creates a credential for an OVHcloud KMS.\n\n## Import\n\nAn OVHcloud KMS credential can be imported using the `okms_id` and `id`, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Okms/credential:Credential cred okms_id/credential_id\n```\n\n","properties":{"certificatePem":{"type":"string","description":"(String) Certificate PEM of the credential.\n"},"certificateType":{"type":"string","description":"(String) Type of certificate key (`ECDSA` or `RSA`).\n"},"createdAt":{"type":"string","description":"(String) Creation time of the credential\n"},"csr":{"type":"string","description":"Valid Certificate Signing Request\n"},"description":{"type":"string","description":"Description of the credential (max 200)\n"},"expiredAt":{"type":"string","description":"(String) Expiration time of the credential\n"},"fromCsr":{"type":"boolean","description":"(Boolean) Whether the credential was generated from a CSR\n"},"identityUrns":{"type":"array","items":{"type":"string"},"description":"List of identity URNs associated with the credential (max 25)\n"},"name":{"type":"string","description":"Name of the credential (max 50)\n"},"okmsId":{"type":"string","description":"Okms ID\n"},"privateKeyPem":{"type":"string","description":"(String, Sensitive) Private Key PEM of the credential if no CSR is provided\n","secret":true},"status":{"type":"string","description":"(String) Status of the credential\n"},"validity":{"type":"number","description":"Validity in days (default 365, max 365)\n"}},"required":["certificatePem","certificateType","createdAt","csr","description","expiredAt","fromCsr","identityUrns","name","okmsId","privateKeyPem","status","validity"],"inputProperties":{"certificateType":{"type":"string","description":"(String) Type of certificate key (`ECDSA` or `RSA`).\n"},"csr":{"type":"string","description":"Valid Certificate Signing Request\n"},"description":{"type":"string","description":"Description of the credential (max 200)\n"},"identityUrns":{"type":"array","items":{"type":"string"},"description":"List of identity URNs associated with the credential (max 25)\n"},"name":{"type":"string","description":"Name of the credential (max 50)\n"},"okmsId":{"type":"string","description":"Okms ID\n"},"validity":{"type":"number","description":"Validity in days (default 365, max 365)\n"}},"requiredInputs":["identityUrns","okmsId"],"stateInputs":{"description":"Input properties used for looking up and filtering Credential resources.\n","properties":{"certificatePem":{"type":"string","description":"(String) Certificate PEM of the credential.\n"},"certificateType":{"type":"string","description":"(String) Type of certificate key (`ECDSA` or `RSA`).\n"},"createdAt":{"type":"string","description":"(String) Creation time of the credential\n"},"csr":{"type":"string","description":"Valid Certificate Signing Request\n"},"description":{"type":"string","description":"Description of the credential (max 200)\n"},"expiredAt":{"type":"string","description":"(String) Expiration time of the credential\n"},"fromCsr":{"type":"boolean","description":"(Boolean) Whether the credential was generated from a CSR\n"},"identityUrns":{"type":"array","items":{"type":"string"},"description":"List of identity URNs associated with the credential (max 25)\n"},"name":{"type":"string","description":"Name of the credential (max 50)\n"},"okmsId":{"type":"string","description":"Okms ID\n"},"privateKeyPem":{"type":"string","description":"(String, Sensitive) Private Key PEM of the credential if no CSR is provided\n","secret":true},"status":{"type":"string","description":"(String) Status of the credential\n"},"validity":{"type":"number","description":"Validity in days (default 365, max 365)\n"}},"type":"object"}},"ovh:Okms/okms:Okms":{"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 newKms = new ovh.okms.Okms(\"new_kms\", {\n    ovhSubsidiary: \"FR\",\n    region: \"eu-west-rbx\",\n    displayName: \"terraformed KMS\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nnew_kms = ovh.okms.Okms(\"new_kms\",\n    ovh_subsidiary=\"FR\",\n    region=\"eu-west-rbx\",\n    display_name=\"terraformed KMS\")\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 newKms = new Ovh.Okms.Okms(\"new_kms\", new()\n    {\n        OvhSubsidiary = \"FR\",\n        Region = \"eu-west-rbx\",\n        DisplayName = \"terraformed KMS\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/okms\"\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 := okms.NewOkms(ctx, \"new_kms\", \u0026okms.OkmsArgs{\n\t\t\tOvhSubsidiary: pulumi.String(\"FR\"),\n\t\t\tRegion:        pulumi.String(\"eu-west-rbx\"),\n\t\t\tDisplayName:   pulumi.String(\"terraformed KMS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Okms.Okms;\nimport com.ovhcloud.pulumi.ovh.Okms.OkmsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var newKms = new Okms(\"newKms\", OkmsArgs.builder()\n            .ovhSubsidiary(\"FR\")\n            .region(\"eu-west-rbx\")\n            .displayName(\"terraformed KMS\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  newKms:\n    type: ovh:Okms:Okms\n    name: new_kms\n    properties:\n      ovhSubsidiary: FR\n      region: eu-west-rbx\n      displayName: terraformed KMS\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAn OVHcloud KMS can be imported using the `id` E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Okms/okms:Okms new_kms id\n```\n\n","properties":{"displayName":{"type":"string","description":"(String) Resource display name\n"},"iam":{"$ref":"#/types/ovh:Okms/OkmsIam:OkmsIam","description":"(Attributes) IAM resource metadata (see below for nested schema)\n"},"kmipEndpoint":{"type":"string","description":"(String) KMS kmip API endpoint\n"},"ovhSubsidiary":{"type":"string","description":"OVH subsidiaries\n"},"publicCa":{"type":"string","description":"(String) KMS public CA (Certificate Authority)\n"},"region":{"type":"string","description":"KMS region\n"},"restEndpoint":{"type":"string","description":"(String) KMS rest API endpoint\n"},"swaggerEndpoint":{"type":"string","description":"(String) KMS rest API swagger UI\n"}},"required":["displayName","iam","kmipEndpoint","ovhSubsidiary","publicCa","region","restEndpoint","swaggerEndpoint"],"inputProperties":{"displayName":{"type":"string","description":"(String) Resource display name\n"},"ovhSubsidiary":{"type":"string","description":"OVH subsidiaries\n"},"region":{"type":"string","description":"KMS region\n"}},"requiredInputs":["ovhSubsidiary","region"],"stateInputs":{"description":"Input properties used for looking up and filtering Okms resources.\n","properties":{"displayName":{"type":"string","description":"(String) Resource display name\n"},"iam":{"$ref":"#/types/ovh:Okms/OkmsIam:OkmsIam","description":"(Attributes) IAM resource metadata (see below for nested schema)\n"},"kmipEndpoint":{"type":"string","description":"(String) KMS kmip API endpoint\n"},"ovhSubsidiary":{"type":"string","description":"OVH subsidiaries\n"},"publicCa":{"type":"string","description":"(String) KMS public CA (Certificate Authority)\n"},"region":{"type":"string","description":"KMS region\n"},"restEndpoint":{"type":"string","description":"(String) KMS rest API endpoint\n"},"swaggerEndpoint":{"type":"string","description":"(String) KMS rest API swagger UI\n"}},"type":"object"}},"ovh:Okms/secret:Secret":{"description":"Manages a secret stored in OVHcloud KMS.\n\n\u003e WARNING: `version.data` is marked **Sensitive** but still ends up in the state file. To mitigate that, it is recommended to protect your state with encryption and access controls. Avoid committing it to source control.\n\n","properties":{"cas":{"type":"number","description":"Check-and-set guard. Only used on update operations: must equal the current secret version for the update to succeed.\nIgnored on create.\n"},"iam":{"$ref":"#/types/ovh:Okms/SecretIam:SecretIam","description":"IAM resource metadata embedded in services models\n"},"includeData":{"type":"boolean","deprecationMessage":"No effect; will be removed in a future version."},"metadata":{"$ref":"#/types/ovh:Okms/SecretMetadata:SecretMetadata","description":"Create a secret metadata\n"},"okmsId":{"type":"string","description":"Okms ID\n"},"path":{"type":"string","description":"Secret path\n"},"version":{"$ref":"#/types/ovh:Okms/SecretVersion:SecretVersion","description":"Create an OKMS secret version\n"}},"required":["iam","includeData","metadata","okmsId","path","version"],"inputProperties":{"cas":{"type":"number","description":"Check-and-set guard. Only used on update operations: must equal the current secret version for the update to succeed.\nIgnored on create.\n"},"includeData":{"type":"boolean","deprecationMessage":"No effect; will be removed in a future version."},"metadata":{"$ref":"#/types/ovh:Okms/SecretMetadata:SecretMetadata","description":"Create a secret metadata\n"},"okmsId":{"type":"string","description":"Okms ID\n"},"path":{"type":"string","description":"Secret path\n"},"version":{"$ref":"#/types/ovh:Okms/SecretVersion:SecretVersion","description":"Create an OKMS secret version\n"}},"requiredInputs":["okmsId","path","version"],"stateInputs":{"description":"Input properties used for looking up and filtering Secret resources.\n","properties":{"cas":{"type":"number","description":"Check-and-set guard. Only used on update operations: must equal the current secret version for the update to succeed.\nIgnored on create.\n"},"iam":{"$ref":"#/types/ovh:Okms/SecretIam:SecretIam","description":"IAM resource metadata embedded in services models\n"},"includeData":{"type":"boolean","deprecationMessage":"No effect; will be removed in a future version."},"metadata":{"$ref":"#/types/ovh:Okms/SecretMetadata:SecretMetadata","description":"Create a secret metadata\n"},"okmsId":{"type":"string","description":"Okms ID\n"},"path":{"type":"string","description":"Secret path\n"},"version":{"$ref":"#/types/ovh:Okms/SecretVersion:SecretVersion","description":"Create an OKMS secret version\n"}},"type":"object"}},"ovh:Okms/serviceKey:ServiceKey":{"description":"Creates a Service Key in an OVHcloud KMS.\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 keySymetric = new ovh.okms.ServiceKey(\"key_symetric\", {\n    okmsId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    name: \"key_oct\",\n    type: \"oct\",\n    size: 256,\n    operations: [\n        \"encrypt\",\n        \"decrypt\",\n    ],\n});\nconst keyRsa = new ovh.okms.ServiceKey(\"key_rsa\", {\n    okmsId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    name: \"key_rsa\",\n    type: \"RSA\",\n    size: 2048,\n    operations: [\n        \"sign\",\n        \"verify\",\n    ],\n});\nconst keyEcdsa = new ovh.okms.ServiceKey(\"key_ecdsa\", {\n    okmsId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    name: \"key_ecdsa\",\n    type: \"EC\",\n    curve: \"P-256\",\n    operations: [\n        \"sign\",\n        \"verify\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nkey_symetric = ovh.okms.ServiceKey(\"key_symetric\",\n    okms_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    name=\"key_oct\",\n    type=\"oct\",\n    size=256,\n    operations=[\n        \"encrypt\",\n        \"decrypt\",\n    ])\nkey_rsa = ovh.okms.ServiceKey(\"key_rsa\",\n    okms_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    name=\"key_rsa\",\n    type=\"RSA\",\n    size=2048,\n    operations=[\n        \"sign\",\n        \"verify\",\n    ])\nkey_ecdsa = ovh.okms.ServiceKey(\"key_ecdsa\",\n    okms_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    name=\"key_ecdsa\",\n    type=\"EC\",\n    curve=\"P-256\",\n    operations=[\n        \"sign\",\n        \"verify\",\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 keySymetric = new Ovh.Okms.ServiceKey(\"key_symetric\", new()\n    {\n        OkmsId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n        Name = \"key_oct\",\n        Type = \"oct\",\n        Size = 256,\n        Operations = new[]\n        {\n            \"encrypt\",\n            \"decrypt\",\n        },\n    });\n\n    var keyRsa = new Ovh.Okms.ServiceKey(\"key_rsa\", new()\n    {\n        OkmsId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n        Name = \"key_rsa\",\n        Type = \"RSA\",\n        Size = 2048,\n        Operations = new[]\n        {\n            \"sign\",\n            \"verify\",\n        },\n    });\n\n    var keyEcdsa = new Ovh.Okms.ServiceKey(\"key_ecdsa\", new()\n    {\n        OkmsId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n        Name = \"key_ecdsa\",\n        Type = \"EC\",\n        Curve = \"P-256\",\n        Operations = new[]\n        {\n            \"sign\",\n            \"verify\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/okms\"\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 := okms.NewServiceKey(ctx, \"key_symetric\", \u0026okms.ServiceKeyArgs{\n\t\t\tOkmsId: pulumi.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"),\n\t\t\tName:   pulumi.String(\"key_oct\"),\n\t\t\tType:   pulumi.String(\"oct\"),\n\t\t\tSize:   pulumi.Float64(256),\n\t\t\tOperations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"encrypt\"),\n\t\t\t\tpulumi.String(\"decrypt\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = okms.NewServiceKey(ctx, \"key_rsa\", \u0026okms.ServiceKeyArgs{\n\t\t\tOkmsId: pulumi.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"),\n\t\t\tName:   pulumi.String(\"key_rsa\"),\n\t\t\tType:   pulumi.String(\"RSA\"),\n\t\t\tSize:   pulumi.Float64(2048),\n\t\t\tOperations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"sign\"),\n\t\t\t\tpulumi.String(\"verify\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = okms.NewServiceKey(ctx, \"key_ecdsa\", \u0026okms.ServiceKeyArgs{\n\t\t\tOkmsId: pulumi.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"),\n\t\t\tName:   pulumi.String(\"key_ecdsa\"),\n\t\t\tType:   pulumi.String(\"EC\"),\n\t\t\tCurve:  pulumi.String(\"P-256\"),\n\t\t\tOperations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"sign\"),\n\t\t\t\tpulumi.String(\"verify\"),\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.ovhcloud.pulumi.ovh.Okms.ServiceKey;\nimport com.ovhcloud.pulumi.ovh.Okms.ServiceKeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var keySymetric = new ServiceKey(\"keySymetric\", ServiceKeyArgs.builder()\n            .okmsId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n            .name(\"key_oct\")\n            .type(\"oct\")\n            .size(256.0)\n            .operations(            \n                \"encrypt\",\n                \"decrypt\")\n            .build());\n\n        var keyRsa = new ServiceKey(\"keyRsa\", ServiceKeyArgs.builder()\n            .okmsId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n            .name(\"key_rsa\")\n            .type(\"RSA\")\n            .size(2048.0)\n            .operations(            \n                \"sign\",\n                \"verify\")\n            .build());\n\n        var keyEcdsa = new ServiceKey(\"keyEcdsa\", ServiceKeyArgs.builder()\n            .okmsId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n            .name(\"key_ecdsa\")\n            .type(\"EC\")\n            .curve(\"P-256\")\n            .operations(            \n                \"sign\",\n                \"verify\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  keySymetric:\n    type: ovh:Okms:ServiceKey\n    name: key_symetric\n    properties:\n      okmsId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n      name: key_oct\n      type: oct\n      size: 256\n      operations:\n        - encrypt\n        - decrypt\n  keyRsa:\n    type: ovh:Okms:ServiceKey\n    name: key_rsa\n    properties:\n      okmsId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n      name: key_rsa\n      type: RSA\n      size: 2048\n      operations:\n        - sign\n        - verify\n  keyEcdsa:\n    type: ovh:Okms:ServiceKey\n    name: key_ecdsa\n    properties:\n      okmsId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n      name: key_ecdsa\n      type: EC\n      curve: P-256\n      operations:\n        - sign\n        - verify\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"context":{"type":"string","description":"Context of the key\n"},"createdAt":{"type":"string","description":"Creation time of the key\n"},"curve":{"type":"string","description":"Curve type for Elliptic Curve (EC) keys\n"},"deactivationReason":{"type":"string","description":"Key deactivation reason\n"},"name":{"type":"string","description":"Key name\n"},"okmsId":{"type":"string","description":"Okms ID\n"},"operations":{"type":"array","items":{"type":"string"},"description":"The operations for which the key is intended to be used\n"},"size":{"type":"number","description":"Size of the key to be created\n"},"state":{"type":"string","description":"State of the key\n"},"type":{"type":"string","description":"Type of the key to be created\n"}},"required":["context","createdAt","curve","deactivationReason","name","okmsId","operations","size","state","type"],"inputProperties":{"context":{"type":"string","description":"Context of the key\n"},"curve":{"type":"string","description":"Curve type for Elliptic Curve (EC) keys\n"},"name":{"type":"string","description":"Key name\n"},"okmsId":{"type":"string","description":"Okms ID\n"},"operations":{"type":"array","items":{"type":"string"},"description":"The operations for which the key is intended to be used\n"},"size":{"type":"number","description":"Size of the key to be created\n"},"type":{"type":"string","description":"Type of the key to be created\n"}},"requiredInputs":["okmsId","operations","type"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceKey resources.\n","properties":{"context":{"type":"string","description":"Context of the key\n"},"createdAt":{"type":"string","description":"Creation time of the key\n"},"curve":{"type":"string","description":"Curve type for Elliptic Curve (EC) keys\n"},"deactivationReason":{"type":"string","description":"Key deactivation reason\n"},"name":{"type":"string","description":"Key name\n"},"okmsId":{"type":"string","description":"Okms ID\n"},"operations":{"type":"array","items":{"type":"string"},"description":"The operations for which the key is intended to be used\n"},"size":{"type":"number","description":"Size of the key to be created\n"},"state":{"type":"string","description":"State of the key\n"},"type":{"type":"string","description":"Type of the key to be created\n"}},"type":"object"}},"ovh:Okms/serviceKeyJWK:ServiceKeyJWK":{"description":"Import an existing key in the JWK format in an OVHcloud KMS.\n\n","properties":{"context":{"type":"string","description":"Context of the key\n"},"createdAt":{"type":"string","description":"Creation time of the key\n"},"deactivationReason":{"type":"string","description":"Key deactivation reason\n"},"iam":{"$ref":"#/types/ovh:Okms/ServiceKeyJWKIam:ServiceKeyJWKIam","description":"IAM resource metadata\n"},"keys":{"type":"array","items":{"$ref":"#/types/ovh:Okms/ServiceKeyJWKKey:ServiceKeyJWKKey"},"description":"Set of JSON Web Keys to import\n"},"name":{"type":"string","description":"Key name\n"},"okmsId":{"type":"string","description":"Okms ID\n"},"size":{"type":"number","description":"Size of the key to be created\n"},"state":{"type":"string","description":"State of the key\n"},"type":{"type":"string","description":"Type of the key to be created\n"}},"required":["createdAt","deactivationReason","iam","keys","name","okmsId","size","state","type"],"inputProperties":{"context":{"type":"string","description":"Context of the key\n"},"keys":{"type":"array","items":{"$ref":"#/types/ovh:Okms/ServiceKeyJWKKey:ServiceKeyJWKKey"},"description":"Set of JSON Web Keys to import\n"},"name":{"type":"string","description":"Key name\n"},"okmsId":{"type":"string","description":"Okms ID\n"}},"requiredInputs":["keys","okmsId"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceKeyJWK resources.\n","properties":{"context":{"type":"string","description":"Context of the key\n"},"createdAt":{"type":"string","description":"Creation time of the key\n"},"deactivationReason":{"type":"string","description":"Key deactivation reason\n"},"iam":{"$ref":"#/types/ovh:Okms/ServiceKeyJWKIam:ServiceKeyJWKIam","description":"IAM resource metadata\n"},"keys":{"type":"array","items":{"$ref":"#/types/ovh:Okms/ServiceKeyJWKKey:ServiceKeyJWKKey"},"description":"Set of JSON Web Keys to import\n"},"name":{"type":"string","description":"Key name\n"},"okmsId":{"type":"string","description":"Okms ID\n"},"size":{"type":"number","description":"Size of the key to be created\n"},"state":{"type":"string","description":"State of the key\n"},"type":{"type":"string","description":"Type of the key to be created\n"}},"type":"object"}},"ovh:SavingsPlan/savingsPlan:SavingsPlan":{"description":"Create and manage an OVHcloud Savings Plan\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 plan = new ovh.savingsplan.SavingsPlan(\"plan\", {\n    serviceName: \"\u003cpublic cloud project ID\u003e\",\n    flavor: \"Rancher\",\n    period: \"P1M\",\n    size: 2,\n    displayName: \"one_month_rancher_savings_plan\",\n    autoRenewal: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nplan = ovh.savingsplan.SavingsPlan(\"plan\",\n    service_name=\"\u003cpublic cloud project ID\u003e\",\n    flavor=\"Rancher\",\n    period=\"P1M\",\n    size=2,\n    display_name=\"one_month_rancher_savings_plan\",\n    auto_renewal=True)\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 plan = new Ovh.SavingsPlan.SavingsPlan(\"plan\", new()\n    {\n        ServiceName = \"\u003cpublic cloud project ID\u003e\",\n        Flavor = \"Rancher\",\n        Period = \"P1M\",\n        Size = 2,\n        DisplayName = \"one_month_rancher_savings_plan\",\n        AutoRenewal = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/savingsplan\"\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 := savingsplan.NewSavingsPlan(ctx, \"plan\", \u0026savingsplan.SavingsPlanArgs{\n\t\t\tServiceName: pulumi.String(\"\u003cpublic cloud project ID\u003e\"),\n\t\t\tFlavor:      pulumi.String(\"Rancher\"),\n\t\t\tPeriod:      pulumi.String(\"P1M\"),\n\t\t\tSize:        pulumi.Int(2),\n\t\t\tDisplayName: pulumi.String(\"one_month_rancher_savings_plan\"),\n\t\t\tAutoRenewal: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.SavingsPlan.SavingsPlan;\nimport com.ovhcloud.pulumi.ovh.SavingsPlan.SavingsPlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var plan = new SavingsPlan(\"plan\", SavingsPlanArgs.builder()\n            .serviceName(\"\u003cpublic cloud project ID\u003e\")\n            .flavor(\"Rancher\")\n            .period(\"P1M\")\n            .size(2)\n            .displayName(\"one_month_rancher_savings_plan\")\n            .autoRenewal(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  plan:\n    type: ovh:SavingsPlan:SavingsPlan\n    properties:\n      serviceName: \u003cpublic cloud project ID\u003e\n      flavor: Rancher\n      period: P1M\n      size: 2\n      displayName: one_month_rancher_savings_plan\n      autoRenewal: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nA savings plan can be imported using the following format: `service_name` and `id` of the savings plan, separated by \"/\" e.g.\n\nbash\n\n```sh\n$ pulumi import ovh:SavingsPlan/savingsPlan:SavingsPlan plan service_name/savings_plan_id\n```\n\n","properties":{"autoRenewal":{"type":"boolean","description":"Whether Savings Plan should be renewed at the end of the period (defaults to false)\n"},"deploymentType":{"type":"string","description":"Deployment type of the Savings Plan. Can be either `1AZ` or `3AZ`. Defaults to `1AZ` and cannot be set to `3AZ` for Rancher flavors.\n"},"displayName":{"type":"string","description":"Custom display name, used in invoices\n"},"endDate":{"type":"string","description":"End date of the Savings Plan\n"},"flavor":{"type":"string","description":"Savings Plan flavor. The list of available flavors can be retrieved in the next section.\n"},"period":{"type":"string","description":"Periodicity of the Savings Plan\n"},"periodEndAction":{"type":"string","description":"Action performed when reaching the end of the period (controles by the `auto_renewal` parameter)\n"},"periodEndDate":{"type":"string","description":"End date of the current period\n"},"periodStartDate":{"type":"string","description":"Start date of the current period\n"},"serviceId":{"type":"integer","description":"Billing ID of the service\n"},"serviceName":{"type":"string","description":"ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"size":{"type":"integer","description":"Size of the Savings Plan\n"},"startDate":{"type":"string","description":"Start date of the Savings Plan\n"},"status":{"type":"string","description":"Status of the Savings Plan\n"}},"required":["autoRenewal","displayName","endDate","flavor","period","periodEndAction","periodEndDate","periodStartDate","serviceId","serviceName","size","startDate","status"],"inputProperties":{"autoRenewal":{"type":"boolean","description":"Whether Savings Plan should be renewed at the end of the period (defaults to false)\n"},"deploymentType":{"type":"string","description":"Deployment type of the Savings Plan. Can be either `1AZ` or `3AZ`. Defaults to `1AZ` and cannot be set to `3AZ` for Rancher flavors.\n"},"displayName":{"type":"string","description":"Custom display name, used in invoices\n"},"flavor":{"type":"string","description":"Savings Plan flavor. The list of available flavors can be retrieved in the next section.\n","willReplaceOnChanges":true},"period":{"type":"string","description":"Periodicity of the Savings Plan\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"size":{"type":"integer","description":"Size of the Savings Plan\n"}},"requiredInputs":["displayName","flavor","period","size"],"stateInputs":{"description":"Input properties used for looking up and filtering SavingsPlan resources.\n","properties":{"autoRenewal":{"type":"boolean","description":"Whether Savings Plan should be renewed at the end of the period (defaults to false)\n"},"deploymentType":{"type":"string","description":"Deployment type of the Savings Plan. Can be either `1AZ` or `3AZ`. Defaults to `1AZ` and cannot be set to `3AZ` for Rancher flavors.\n"},"displayName":{"type":"string","description":"Custom display name, used in invoices\n"},"endDate":{"type":"string","description":"End date of the Savings Plan\n"},"flavor":{"type":"string","description":"Savings Plan flavor. The list of available flavors can be retrieved in the next section.\n","willReplaceOnChanges":true},"period":{"type":"string","description":"Periodicity of the Savings Plan\n","willReplaceOnChanges":true},"periodEndAction":{"type":"string","description":"Action performed when reaching the end of the period (controles by the `auto_renewal` parameter)\n"},"periodEndDate":{"type":"string","description":"End date of the current period\n"},"periodStartDate":{"type":"string","description":"Start date of the current period\n"},"serviceId":{"type":"integer","description":"Billing ID of the service\n"},"serviceName":{"type":"string","description":"ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"size":{"type":"integer","description":"Size of the Savings Plan\n"},"startDate":{"type":"string","description":"Start date of the Savings Plan\n"},"status":{"type":"string","description":"Status of the Savings Plan\n"}},"type":"object"}},"ovh:Vps/vps:Vps":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  myVps:\n    type: ovh:Vps:Vps\n    name: my_vps\n    properties:\n      displayName: dev_vps\n      imageId: 45b2f222-ab10-44ed-863f-720942762b6f\n      ovhSubsidiary: ${myAccount.ovhSubsidiary}\n      plans:\n        - duration: P1M\n          plan_code: vps-le-2-2-40\n          pricing_mode: default\n          configuration:\n            - label: vps_datacenter\n              value: WAW\n            - label: vps_os\n              value: Debian 13\n      publicSshKey: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDSD76EaLUzJjf70W8W2uU9FzEyl68di67Bd20qtYfBLJpFJuX/RJC9StI1y1RnXXqC1Lf/Yo+yJzvNx0iqLxCX1G7g0XYex74HkgC6a2QeNhp9M56ANZtA3TKKAbkZ1xobfhOPWpq3lEFp7dgJctcILBPL3l6OjKf6NIxHo5yF67Vy4D0nWl5utumNdWhhlX7MtVQooszLyIwPlNO+DzD3ZnJFCt2Z1jdRkhm/Oobtx17CZ+5SN23tgHXS6pLOgM6w30M11zkI510z95IAIHhRT7MbiXICkvG/0qHuSftz1j/CcHFbttNB27dH86vByumfSEgRKaoRkCqrn64IWrSsFr3Smsf7gZWLBlYLliGPyn8Tsr9bT5pRul6yTvVbfZ31RREBr1I0Lp4q++d+fIpa3LtMGRaMb9huJYy8cwW/Vfzbxsqfz9xzjIOFNcYl7J9l4cvz3hgSlai2Jgngw5ShNVlxcIKUdiynZWm09nQudlYNHgor9ID+JACzCfPkUZ8\nvariables:\n  myAccount:\n    fn::invoke:\n      function: ovh:Me:getMe\n      arguments: {}\noutputs:\n  vpsDisplayName: ${myVps.displayName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud VPS database can be imported using the `service_name`, E.g.,\n\nterraform\n\nimport {\n\n  to = ovh_vps.myvps\n\n  id = \"\u003cyour existing VPS service_name\u003e\"\n\n}\n\nYou can then run:\n\npulumi preview -generate-config-out=./vps.tf\n\nThe file `vps.tf` will then contain the imported resource's configuration, that can be copied next to the `import` block above. See https://developer.hashicorp.com/terraform/language/import/generating-configuration for more details.\n\n","properties":{"cluster":{"type":"string","description":"VPS cluster\n"},"displayName":{"type":"string","description":"Custom display name\n"},"doNotSendPassword":{"type":"boolean","description":"Indicates if default password should be set and sent by email. Default false: a password is set and an email is sent\n"},"iam":{"$ref":"#/types/ovh:Vps/VpsIam:VpsIam","description":"IAM resource information\n"},"imageId":{"type":"string","description":"Id of the image to install on the VPS. This attribute is useful to trigger a VPS reinstallation, and during VPS creation if you want to configure a `public_ssh_key`. The available values can be found using this [API call](https://eu.api.ovh.com/console/?section=%2Fvps\u0026branch=v1#get-/vps/-serviceName-/images/available)\n"},"keymap":{"type":"string","description":"KVM keyboard layout on VPS Cloud\n"},"memoryLimit":{"type":"number","description":"RAM of this VPS\n"},"model":{"$ref":"#/types/ovh:Vps/VpsModel:VpsModel","description":"Structure describing characteristics of a VPS model\n"},"monitoringIpBlocks":{"type":"array","items":{"type":"string"},"description":"IP blocks for OVH monitoring servers\n"},"name":{"type":"string","description":"Name of the VPS\n"},"netbootMode":{"type":"string","description":"VPS netboot mode (local┃rescue)\n"},"offerType":{"type":"string","description":"All offers a VPS can have (beta-classic┃classic┃cloud┃cloudram┃game-classic┃lowlat┃ssd)\n"},"order":{"$ref":"#/types/ovh:Vps/VpsOrder:VpsOrder","description":"Details about an Order\n"},"ovhSubsidiary":{"type":"string","description":"OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json](https://eu.api.ovh.com/console-preview/?section=%2Fme\u0026branch=v1#get-/me)\n"},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:Vps/VpsPlanOption:VpsPlanOption"},"description":"Product Plan to order\n"},"plans":{"type":"array","items":{"$ref":"#/types/ovh:Vps/VpsPlan:VpsPlan"},"description":"Product Plan to order\n"},"publicSshKey":{"type":"string","description":"Public SSH key to pre-install on your VPS - if set, then `image_id` must also be set\n"},"serviceName":{"type":"string","description":"The internal name of your VPS offer\n"},"slaMonitoring":{"type":"boolean"},"state":{"type":"string","description":"State of the VPS (backuping┃installing┃maintenance┃rebooting┃rescued┃running┃stopped┃stopping┃upgrading)\n"},"vcore":{"type":"number","description":"Number of vcores\n"},"zone":{"type":"string","description":"OpenStask region where the VPS is located\n"}},"required":["cluster","displayName","doNotSendPassword","iam","keymap","memoryLimit","model","monitoringIpBlocks","name","netbootMode","offerType","order","serviceName","slaMonitoring","state","vcore","zone"],"inputProperties":{"displayName":{"type":"string","description":"Custom display name\n"},"doNotSendPassword":{"type":"boolean","description":"Indicates if default password should be set and sent by email. Default false: a password is set and an email is sent\n"},"imageId":{"type":"string","description":"Id of the image to install on the VPS. This attribute is useful to trigger a VPS reinstallation, and during VPS creation if you want to configure a `public_ssh_key`. The available values can be found using this [API call](https://eu.api.ovh.com/console/?section=%2Fvps\u0026branch=v1#get-/vps/-serviceName-/images/available)\n"},"keymap":{"type":"string","description":"KVM keyboard layout on VPS Cloud\n"},"memoryLimit":{"type":"number","description":"RAM of this VPS\n"},"model":{"$ref":"#/types/ovh:Vps/VpsModel:VpsModel","description":"Structure describing characteristics of a VPS model\n"},"monitoringIpBlocks":{"type":"array","items":{"type":"string"},"description":"IP blocks for OVH monitoring servers\n"},"name":{"type":"string","description":"Name of the VPS\n"},"netbootMode":{"type":"string","description":"VPS netboot mode (local┃rescue)\n"},"offerType":{"type":"string","description":"All offers a VPS can have (beta-classic┃classic┃cloud┃cloudram┃game-classic┃lowlat┃ssd)\n"},"ovhSubsidiary":{"type":"string","description":"OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json](https://eu.api.ovh.com/console-preview/?section=%2Fme\u0026branch=v1#get-/me)\n"},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:Vps/VpsPlanOption:VpsPlanOption"},"description":"Product Plan to order\n"},"plans":{"type":"array","items":{"$ref":"#/types/ovh:Vps/VpsPlan:VpsPlan"},"description":"Product Plan to order\n"},"publicSshKey":{"type":"string","description":"Public SSH key to pre-install on your VPS - if set, then `image_id` must also be set\n"},"slaMonitoring":{"type":"boolean"},"state":{"type":"string","description":"State of the VPS (backuping┃installing┃maintenance┃rebooting┃rescued┃running┃stopped┃stopping┃upgrading)\n"},"vcore":{"type":"number","description":"Number of vcores\n"},"zone":{"type":"string","description":"OpenStask region where the VPS is located\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Vps resources.\n","properties":{"cluster":{"type":"string","description":"VPS cluster\n"},"displayName":{"type":"string","description":"Custom display name\n"},"doNotSendPassword":{"type":"boolean","description":"Indicates if default password should be set and sent by email. Default false: a password is set and an email is sent\n"},"iam":{"$ref":"#/types/ovh:Vps/VpsIam:VpsIam","description":"IAM resource information\n"},"imageId":{"type":"string","description":"Id of the image to install on the VPS. This attribute is useful to trigger a VPS reinstallation, and during VPS creation if you want to configure a `public_ssh_key`. The available values can be found using this [API call](https://eu.api.ovh.com/console/?section=%2Fvps\u0026branch=v1#get-/vps/-serviceName-/images/available)\n"},"keymap":{"type":"string","description":"KVM keyboard layout on VPS Cloud\n"},"memoryLimit":{"type":"number","description":"RAM of this VPS\n"},"model":{"$ref":"#/types/ovh:Vps/VpsModel:VpsModel","description":"Structure describing characteristics of a VPS model\n"},"monitoringIpBlocks":{"type":"array","items":{"type":"string"},"description":"IP blocks for OVH monitoring servers\n"},"name":{"type":"string","description":"Name of the VPS\n"},"netbootMode":{"type":"string","description":"VPS netboot mode (local┃rescue)\n"},"offerType":{"type":"string","description":"All offers a VPS can have (beta-classic┃classic┃cloud┃cloudram┃game-classic┃lowlat┃ssd)\n"},"order":{"$ref":"#/types/ovh:Vps/VpsOrder:VpsOrder","description":"Details about an Order\n"},"ovhSubsidiary":{"type":"string","description":"OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json](https://eu.api.ovh.com/console-preview/?section=%2Fme\u0026branch=v1#get-/me)\n"},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:Vps/VpsPlanOption:VpsPlanOption"},"description":"Product Plan to order\n"},"plans":{"type":"array","items":{"$ref":"#/types/ovh:Vps/VpsPlan:VpsPlan"},"description":"Product Plan to order\n"},"publicSshKey":{"type":"string","description":"Public SSH key to pre-install on your VPS - if set, then `image_id` must also be set\n"},"serviceName":{"type":"string","description":"The internal name of your VPS offer\n"},"slaMonitoring":{"type":"boolean"},"state":{"type":"string","description":"State of the VPS (backuping┃installing┃maintenance┃rebooting┃rescued┃running┃stopped┃stopping┃upgrading)\n"},"vcore":{"type":"number","description":"Number of vcores\n"},"zone":{"type":"string","description":"OpenStask region where the VPS is located\n"}},"type":"object"}},"ovh:Vrack/cloudProject:CloudProject":{"description":"Attach a Public Cloud Project 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 vcp = new ovh.vrack.CloudProject(\"vcp\", {\n    serviceName: \"12345\",\n    projectId: \"67890\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nvcp = ovh.vrack.CloudProject(\"vcp\",\n    service_name=\"12345\",\n    project_id=\"67890\")\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 vcp = new Ovh.Vrack.CloudProject(\"vcp\", new()\n    {\n        ServiceName = \"12345\",\n        ProjectId = \"67890\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewCloudProject(ctx, \"vcp\", \u0026vrack.CloudProjectArgs{\n\t\t\tServiceName: pulumi.String(\"12345\"),\n\t\t\tProjectId:   pulumi.String(\"67890\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Vrack.CloudProject;\nimport com.ovhcloud.pulumi.ovh.Vrack.CloudProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var vcp = new CloudProject(\"vcp\", CloudProjectArgs.builder()\n            .serviceName(\"12345\")\n            .projectId(\"67890\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vcp:\n    type: ovh:Vrack:CloudProject\n    properties:\n      serviceName: '12345'\n      projectId: '67890'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAttachment of a public cloud project and a VRack can be imported using the `service_name` (vRack identifier) and the `project_id` (Cloud Project identifier), separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Vrack/cloudProject:CloudProject myattach service_name/project_id\n```\n\n","properties":{"projectId":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"serviceName":{"type":"string","description":"The service name of the vrack. If omitted, the `OVH_VRACK_SERVICE` environment variable is used.\n"}},"required":["projectId","serviceName"],"inputProperties":{"projectId":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The service name of the vrack. If omitted, the `OVH_VRACK_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering CloudProject resources.\n","properties":{"projectId":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The service name of the vrack. If omitted, the `OVH_VRACK_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:Vrack/dedicatedCloudDatacenter:DedicatedCloudDatacenter":{"description":"Move a Dedicated Cloud Datacenter to a vrack.\n\n## Example Usage\n\n\u003e **WARNING** You have to import the resource first as it cannot be created, see Import section below.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst vrackDedicatedCloudDatacenter = new ovh.vrack.DedicatedCloudDatacenter(\"vrack_dedicated_cloud_datacenter\", {\n    serviceName: \"\u003cvRack service name\u003e\",\n    datacenter: \"\u003cDedicated Cloud Datacenter service name\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nvrack_dedicated_cloud_datacenter = ovh.vrack.DedicatedCloudDatacenter(\"vrack_dedicated_cloud_datacenter\",\n    service_name=\"\u003cvRack service name\u003e\",\n    datacenter=\"\u003cDedicated Cloud Datacenter service name\u003e\")\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 vrackDedicatedCloudDatacenter = new Ovh.Vrack.DedicatedCloudDatacenter(\"vrack_dedicated_cloud_datacenter\", new()\n    {\n        ServiceName = \"\u003cvRack service name\u003e\",\n        Datacenter = \"\u003cDedicated Cloud Datacenter service name\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewDedicatedCloudDatacenter(ctx, \"vrack_dedicated_cloud_datacenter\", \u0026vrack.DedicatedCloudDatacenterArgs{\n\t\t\tServiceName: pulumi.String(\"\u003cvRack service name\u003e\"),\n\t\t\tDatacenter:  pulumi.String(\"\u003cDedicated Cloud Datacenter service name\u003e\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Vrack.DedicatedCloudDatacenter;\nimport com.ovhcloud.pulumi.ovh.Vrack.DedicatedCloudDatacenterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var vrackDedicatedCloudDatacenter = new DedicatedCloudDatacenter(\"vrackDedicatedCloudDatacenter\", DedicatedCloudDatacenterArgs.builder()\n            .serviceName(\"\u003cvRack service name\u003e\")\n            .datacenter(\"\u003cDedicated Cloud Datacenter service name\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vrackDedicatedCloudDatacenter:\n    type: ovh:Vrack:DedicatedCloudDatacenter\n    name: vrack_dedicated_cloud_datacenter\n    properties:\n      serviceName: \u003cvRack service name\u003e\n      datacenter: \u003cDedicated Cloud Datacenter service name\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nA Datacenter will always be in a vRack, first import the resource, this will move the Dedicated Cloud Datacenter to the vRack target.\n\nbash\n\n```sh\n$ pulumi import ovh:Vrack/dedicatedCloudDatacenter:DedicatedCloudDatacenter vrack-dedicatedCloudDatacenter \"\u003cvRack service name\u003e/\u003cDedicated Cloud Datacener service name\u003e/\u003cvRack target service name\u003e\"\n```\n\n","properties":{"datacenter":{"type":"string","description":"Your Dedicated Cloud Datacenter.\n"},"dedicatedCloud":{"type":"string","description":"Your dedicatedCloud name\n"},"serviceName":{"type":"string","description":"The internal name of your vrack\n"},"targetServiceName":{"type":"string","description":"The internal name of your target vrack\n"}},"required":["datacenter","dedicatedCloud","serviceName","targetServiceName"],"inputProperties":{"datacenter":{"type":"string","description":"Your Dedicated Cloud Datacenter.\n"},"serviceName":{"type":"string","description":"The internal name of your vrack\n"}},"requiredInputs":["datacenter","serviceName"],"stateInputs":{"description":"Input properties used for looking up and filtering DedicatedCloudDatacenter resources.\n","properties":{"datacenter":{"type":"string","description":"Your Dedicated Cloud Datacenter.\n"},"dedicatedCloud":{"type":"string","description":"Your dedicatedCloud name\n"},"serviceName":{"type":"string","description":"The internal name of your vrack\n"},"targetServiceName":{"type":"string","description":"The internal name of your target vrack\n"}},"type":"object"}},"ovh:Vrack/dedicatedServer:DedicatedServer":{"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 Dedicated 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    serviceName: \"XXXX\",\n    serverId: \"67890\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nvds = ovh.vrack.DedicatedServer(\"vds\",\n    service_name=\"XXXX\",\n    server_id=\"67890\")\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        ServiceName = \"XXXX\",\n        ServerId = \"67890\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tServiceName: pulumi.String(\"XXXX\"),\n\t\t\tServerId:    pulumi.String(\"67890\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Vrack.DedicatedServer;\nimport com.ovhcloud.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            .serviceName(\"XXXX\")\n            .serverId(\"67890\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vds:\n    type: ovh:Vrack:DedicatedServer\n    properties:\n      serviceName: XXXX\n      serverId: '67890'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nA vRack dedicated server attachment can be imported using the `service_name` and `server_id`, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Vrack/dedicatedServer:DedicatedServer vds service_name/server_id\n```\n\n","properties":{"serverId":{"type":"string","description":"The id of the dedicated server.\n"},"serviceName":{"type":"string","description":"The service name of the vrack. If omitted, the `OVH_VRACK_SERVICE` environment variable is used.\n"}},"required":["serverId","serviceName"],"inputProperties":{"serverId":{"type":"string","description":"The id of the dedicated server.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The service name of the vrack. If omitted, the `OVH_VRACK_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"requiredInputs":["serverId"],"stateInputs":{"description":"Input properties used for looking up and filtering DedicatedServer resources.\n","properties":{"serverId":{"type":"string","description":"The id of the dedicated server.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The service name of the vrack. If omitted, the `OVH_VRACK_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:Vrack/dedicatedServerInterface:DedicatedServerInterface":{"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 Legacy 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\";\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/v2/go/ovh\"\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.ovhcloud.pulumi.ovh.Vrack.DedicatedServerInterface;\nimport com.ovhcloud.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.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      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\n## Import\n\nA vRack dedicated server interface attachment can be imported using the `service_name` and `interface_id`, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Vrack/dedicatedServerInterface:DedicatedServerInterface vdsi service_name/interface_id\n```\n\n","properties":{"interfaceId":{"type":"string","description":"The id of dedicated server network interface.\n"},"serviceName":{"type":"string","description":"The id of the vrack. If omitted, the `OVH_VRACK_SERVICE` environment variable is used.\n"}},"required":["interfaceId","serviceName"],"inputProperties":{"interfaceId":{"type":"string","description":"The id of dedicated server network interface.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the vrack. If omitted, the `OVH_VRACK_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"requiredInputs":["interfaceId"],"stateInputs":{"description":"Input properties used for looking up and filtering DedicatedServerInterface resources.\n","properties":{"interfaceId":{"type":"string","description":"The id of dedicated server network interface.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the vrack. If omitted, the `OVH_VRACK_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:Vrack/ipAddress:IpAddress":{"description":"Attach an IP block 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 myAccount = ovh.Me.getMe({});\nconst myCart = myAccount.then(myAccount =\u003e ovh.Order.getCart({\n    ovhSubsidiary: myAccount.ovhSubsidiary,\n}));\nconst vrack = myCart.then(myCart =\u003e ovh.Order.getCartProductPlan({\n    cartId: myCart.id,\n    priceCapacity: \"renew\",\n    product: \"vrack\",\n    planCode: \"vrack\",\n}));\nconst vrackVrack = new ovh.vrack.Vrack(\"vrack\", {\n    description: myCart.then(myCart =\u003e myCart.description),\n    name: myCart.then(myCart =\u003e myCart.description),\n    ovhSubsidiary: myCart.then(myCart =\u003e myCart.ovhSubsidiary),\n    plan: {\n        duration: vrack.then(vrack =\u003e vrack.selectedPrices?.[0]?.duration),\n        planCode: vrack.then(vrack =\u003e vrack.planCode),\n        pricingMode: vrack.then(vrack =\u003e vrack.selectedPrices?.[0]?.pricingMode),\n    },\n});\nconst ipblock = myCart.then(myCart =\u003e ovh.Order.getCartProductPlan({\n    cartId: myCart.id,\n    priceCapacity: \"renew\",\n    product: \"ip\",\n    planCode: \"ip-v4-s30-ripe\",\n}));\nconst ipblockIpService = new ovh.ip.IpService(\"ipblock\", {\n    ovhSubsidiary: myCart.then(myCart =\u003e myCart.ovhSubsidiary),\n    description: myCart.then(myCart =\u003e myCart.description),\n    plan: {\n        duration: ipblock.then(ipblock =\u003e ipblock.selectedPrices?.[0]?.duration),\n        planCode: ipblock.then(ipblock =\u003e ipblock.planCode),\n        pricingMode: ipblock.then(ipblock =\u003e ipblock.selectedPrices?.[0]?.pricingMode),\n        configurations: [{\n            label: \"country\",\n            value: \"FR\",\n        }],\n    },\n});\nconst vrackBlock = new ovh.vrack.IpAddress(\"vrack_block\", {\n    serviceName: vrackVrack.serviceName,\n    block: ipblockIpService.ip,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_account = ovh.Me.get_me()\nmy_cart = ovh.Order.get_cart(ovh_subsidiary=my_account.ovh_subsidiary)\nvrack = ovh.Order.get_cart_product_plan(cart_id=my_cart.id,\n    price_capacity=\"renew\",\n    product=\"vrack\",\n    plan_code=\"vrack\")\nvrack_vrack = ovh.vrack.Vrack(\"vrack\",\n    description=my_cart.description,\n    name=my_cart.description,\n    ovh_subsidiary=my_cart.ovh_subsidiary,\n    plan={\n        \"duration\": vrack.selected_prices[0].duration,\n        \"plan_code\": vrack.plan_code,\n        \"pricing_mode\": vrack.selected_prices[0].pricing_mode,\n    })\nipblock = ovh.Order.get_cart_product_plan(cart_id=my_cart.id,\n    price_capacity=\"renew\",\n    product=\"ip\",\n    plan_code=\"ip-v4-s30-ripe\")\nipblock_ip_service = ovh.ip.IpService(\"ipblock\",\n    ovh_subsidiary=my_cart.ovh_subsidiary,\n    description=my_cart.description,\n    plan={\n        \"duration\": ipblock.selected_prices[0].duration,\n        \"plan_code\": ipblock.plan_code,\n        \"pricing_mode\": ipblock.selected_prices[0].pricing_mode,\n        \"configurations\": [{\n            \"label\": \"country\",\n            \"value\": \"FR\",\n        }],\n    })\nvrack_block = ovh.vrack.IpAddress(\"vrack_block\",\n    service_name=vrack_vrack.service_name,\n    block=ipblock_ip_service.ip)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myAccount = Ovh.Me.GetMe.Invoke();\n\n    var myCart = Ovh.Order.GetCart.Invoke(new()\n    {\n        OvhSubsidiary = myAccount.Apply(getMeResult =\u003e getMeResult.OvhSubsidiary),\n    });\n\n    var vrack = Ovh.Order.GetCartProductPlan.Invoke(new()\n    {\n        CartId = myCart.Apply(getCartResult =\u003e getCartResult.Id),\n        PriceCapacity = \"renew\",\n        Product = \"vrack\",\n        PlanCode = \"vrack\",\n    });\n\n    var vrackVrack = new Ovh.Vrack.Vrack(\"vrack\", new()\n    {\n        Description = myCart.Apply(getCartResult =\u003e getCartResult.Description),\n        Name = myCart.Apply(getCartResult =\u003e getCartResult.Description),\n        OvhSubsidiary = myCart.Apply(getCartResult =\u003e getCartResult.OvhSubsidiary),\n        Plan = new Ovh.Vrack.Inputs.VrackPlanArgs\n        {\n            Duration = vrack.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.Duration),\n            PlanCode = vrack.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PlanCode),\n            PricingMode = vrack.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.PricingMode),\n        },\n    });\n\n    var ipblock = Ovh.Order.GetCartProductPlan.Invoke(new()\n    {\n        CartId = myCart.Apply(getCartResult =\u003e getCartResult.Id),\n        PriceCapacity = \"renew\",\n        Product = \"ip\",\n        PlanCode = \"ip-v4-s30-ripe\",\n    });\n\n    var ipblockIpService = new Ovh.Ip.IpService(\"ipblock\", new()\n    {\n        OvhSubsidiary = myCart.Apply(getCartResult =\u003e getCartResult.OvhSubsidiary),\n        Description = myCart.Apply(getCartResult =\u003e getCartResult.Description),\n        Plan = new Ovh.Ip.Inputs.IpServicePlanArgs\n        {\n            Duration = ipblock.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.Duration),\n            PlanCode = ipblock.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PlanCode),\n            PricingMode = ipblock.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.PricingMode),\n            Configurations = new[]\n            {\n                new Ovh.Ip.Inputs.IpServicePlanConfigurationArgs\n                {\n                    Label = \"country\",\n                    Value = \"FR\",\n                },\n            },\n        },\n    });\n\n    var vrackBlock = new Ovh.Vrack.IpAddress(\"vrack_block\", new()\n    {\n        ServiceName = vrackVrack.ServiceName,\n        Block = ipblockIpService.Ip,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/ip\"\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/me\"\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/order\"\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/vrack\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyAccount, err := me.GetMe(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyCart, err := order.GetCart(ctx, \u0026order.GetCartArgs{\n\t\t\tOvhSubsidiary: myAccount.OvhSubsidiary,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvrack, err := order.GetCartProductPlan(ctx, \u0026order.GetCartProductPlanArgs{\n\t\t\tCartId:        myCart.Id,\n\t\t\tPriceCapacity: \"renew\",\n\t\t\tProduct:       \"vrack\",\n\t\t\tPlanCode:      \"vrack\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvrackVrack, err := vrack.NewVrack(ctx, \"vrack\", \u0026vrack.VrackArgs{\n\t\t\tDescription:   pulumi.String(myCart.Description),\n\t\t\tName:          pulumi.String(myCart.Description),\n\t\t\tOvhSubsidiary: pulumi.String(myCart.OvhSubsidiary),\n\t\t\tPlan: \u0026vrack.VrackPlanArgs{\n\t\t\t\tDuration:    pulumi.String(vrack.SelectedPrices[0].Duration),\n\t\t\t\tPlanCode:    pulumi.String(vrack.PlanCode),\n\t\t\t\tPricingMode: pulumi.String(vrack.SelectedPrices[0].PricingMode),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tipblock, err := order.GetCartProductPlan(ctx, \u0026order.GetCartProductPlanArgs{\n\t\t\tCartId:        myCart.Id,\n\t\t\tPriceCapacity: \"renew\",\n\t\t\tProduct:       \"ip\",\n\t\t\tPlanCode:      \"ip-v4-s30-ripe\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tipblockIpService, err := ip.NewIpService(ctx, \"ipblock\", \u0026ip.IpServiceArgs{\n\t\t\tOvhSubsidiary: pulumi.String(myCart.OvhSubsidiary),\n\t\t\tDescription:   pulumi.String(myCart.Description),\n\t\t\tPlan: \u0026ip.IpServicePlanArgs{\n\t\t\t\tDuration:    pulumi.String(ipblock.SelectedPrices[0].Duration),\n\t\t\t\tPlanCode:    pulumi.String(ipblock.PlanCode),\n\t\t\t\tPricingMode: pulumi.String(ipblock.SelectedPrices[0].PricingMode),\n\t\t\t\tConfigurations: ip.IpServicePlanConfigurationArray{\n\t\t\t\t\t\u0026ip.IpServicePlanConfigurationArgs{\n\t\t\t\t\t\tLabel: pulumi.String(\"country\"),\n\t\t\t\t\t\tValue: pulumi.String(\"FR\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vrack.NewIpAddress(ctx, \"vrack_block\", \u0026vrack.IpAddressArgs{\n\t\t\tServiceName: vrackVrack.ServiceName,\n\t\t\tBlock:       ipblockIpService.Ip,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.MeFunctions;\nimport com.pulumi.ovh.Order.OrderFunctions;\nimport com.pulumi.ovh.Order.inputs.GetCartArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductPlanArgs;\nimport com.ovhcloud.pulumi.ovh.Vrack.Vrack;\nimport com.ovhcloud.pulumi.ovh.Vrack.VrackArgs;\nimport com.pulumi.ovh.Vrack.inputs.VrackPlanArgs;\nimport com.ovhcloud.pulumi.ovh.Ip.IpService;\nimport com.ovhcloud.pulumi.ovh.Ip.IpServiceArgs;\nimport com.pulumi.ovh.Ip.inputs.IpServicePlanArgs;\nimport com.ovhcloud.pulumi.ovh.Vrack.IpAddress;\nimport com.ovhcloud.pulumi.ovh.Vrack.IpAddressArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myAccount = MeFunctions.getMe(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var myCart = OrderFunctions.getCart(GetCartArgs.builder()\n            .ovhSubsidiary(myAccount.ovhSubsidiary())\n            .build());\n\n        final var vrack = OrderFunctions.getCartProductPlan(GetCartProductPlanArgs.builder()\n            .cartId(myCart.id())\n            .priceCapacity(\"renew\")\n            .product(\"vrack\")\n            .planCode(\"vrack\")\n            .build());\n\n        var vrackVrack = new Vrack(\"vrackVrack\", VrackArgs.builder()\n            .description(myCart.description())\n            .name(myCart.description())\n            .ovhSubsidiary(myCart.ovhSubsidiary())\n            .plan(VrackPlanArgs.builder()\n                .duration(vrack.selectedPrices()[0].duration())\n                .planCode(vrack.planCode())\n                .pricingMode(vrack.selectedPrices()[0].pricingMode())\n                .build())\n            .build());\n\n        final var ipblock = OrderFunctions.getCartProductPlan(GetCartProductPlanArgs.builder()\n            .cartId(myCart.id())\n            .priceCapacity(\"renew\")\n            .product(\"ip\")\n            .planCode(\"ip-v4-s30-ripe\")\n            .build());\n\n        var ipblockIpService = new IpService(\"ipblockIpService\", IpServiceArgs.builder()\n            .ovhSubsidiary(myCart.ovhSubsidiary())\n            .description(myCart.description())\n            .plan(IpServicePlanArgs.builder()\n                .duration(ipblock.selectedPrices()[0].duration())\n                .planCode(ipblock.planCode())\n                .pricingMode(ipblock.selectedPrices()[0].pricingMode())\n                .configurations(IpServicePlanConfigurationArgs.builder()\n                    .label(\"country\")\n                    .value(\"FR\")\n                    .build())\n                .build())\n            .build());\n\n        var vrackBlock = new IpAddress(\"vrackBlock\", IpAddressArgs.builder()\n            .serviceName(vrackVrack.serviceName())\n            .block(ipblockIpService.ip())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vrackVrack:\n    type: ovh:Vrack:Vrack\n    name: vrack\n    properties:\n      description: ${myCart.description}\n      name: ${myCart.description}\n      ovhSubsidiary: ${myCart.ovhSubsidiary}\n      plan:\n        duration: ${vrack.selectedPrices[0].duration}\n        planCode: ${vrack.planCode}\n        pricingMode: ${vrack.selectedPrices[0].pricingMode}\n  ipblockIpService:\n    type: ovh:Ip:IpService\n    name: ipblock\n    properties:\n      ovhSubsidiary: ${myCart.ovhSubsidiary}\n      description: ${myCart.description}\n      plan:\n        duration: ${ipblock.selectedPrices[0].duration}\n        planCode: ${ipblock.planCode}\n        pricingMode: ${ipblock.selectedPrices[0].pricingMode}\n        configurations:\n          - label: country\n            value: FR\n  vrackBlock:\n    type: ovh:Vrack:IpAddress\n    name: vrack_block\n    properties:\n      serviceName: ${vrackVrack.serviceName}\n      block: ${ipblockIpService.ip}\nvariables:\n  myAccount:\n    fn::invoke:\n      function: ovh:Me:getMe\n      arguments: {}\n  myCart:\n    fn::invoke:\n      function: ovh:Order:getCart\n      arguments:\n        ovhSubsidiary: ${myAccount.ovhSubsidiary}\n  vrack:\n    fn::invoke:\n      function: ovh:Order:getCartProductPlan\n      arguments:\n        cartId: ${myCart.id}\n        priceCapacity: renew\n        product: vrack\n        planCode: vrack\n  ipblock:\n    fn::invoke:\n      function: ovh:Order:getCartProductPlan\n      arguments:\n        cartId: ${myCart.id}\n        priceCapacity: renew\n        product: ip\n        planCode: ip-v4-s30-ripe\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nA vRack IP block attachment can be imported using the `service_name` and `block`, separated by \",\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Vrack/ipAddress:IpAddress vrack_block service_name,ip_block\n```\n\n","properties":{"block":{"type":"string","description":"Your IP block.\n"},"gateway":{"type":"string","description":"Your gateway\n"},"ip":{"type":"string","description":"Your IP block\n"},"region":{"type":"string","description":"The region (e.g: eu-west-gra) where want to route your block to.\n"},"serviceName":{"type":"string","description":"The internal name of your vrack\n"},"zone":{"type":"string","description":"Where you want your block announced on the network\n"}},"required":["block","gateway","ip","region","serviceName","zone"],"inputProperties":{"block":{"type":"string","description":"Your IP block.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"The region (e.g: eu-west-gra) where want to route your block to.\n"},"serviceName":{"type":"string","description":"The internal name of your vrack\n","willReplaceOnChanges":true}},"requiredInputs":["block","serviceName"],"stateInputs":{"description":"Input properties used for looking up and filtering IpAddress resources.\n","properties":{"block":{"type":"string","description":"Your IP block.\n","willReplaceOnChanges":true},"gateway":{"type":"string","description":"Your gateway\n"},"ip":{"type":"string","description":"Your IP block\n"},"region":{"type":"string","description":"The region (e.g: eu-west-gra) where want to route your block to.\n"},"serviceName":{"type":"string","description":"The internal name of your vrack\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"Where you want your block announced on the network\n"}},"type":"object"}},"ovh:Vrack/ipLoadbalancing:IpLoadbalancing":{"description":"Attach an IP Load Balancing 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 viplb = new ovh.vrack.IpLoadbalancing(\"viplb\", {\n    serviceName: \"xxx\",\n    LoadbalancingId: \"yyy\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nviplb = ovh.vrack.IpLoadbalancing(\"viplb\",\n    service_name=\"xxx\",\n    loadbalancing_id=\"yyy\")\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 viplb = new Ovh.Vrack.IpLoadbalancing(\"viplb\", new()\n    {\n        ServiceName = \"xxx\",\n        LoadbalancingId = \"yyy\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewIpLoadbalancing(ctx, \"viplb\", \u0026vrack.IpLoadbalancingArgs{\n\t\t\tServiceName:     pulumi.String(\"xxx\"),\n\t\t\tLoadbalancingId: pulumi.String(\"yyy\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Vrack.IpLoadbalancing;\nimport com.ovhcloud.pulumi.ovh.Vrack.IpLoadbalancingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var viplb = new IpLoadbalancing(\"viplb\", IpLoadbalancingArgs.builder()\n            .serviceName(\"xxx\")\n            .LoadbalancingId(\"yyy\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  viplb:\n    type: ovh:Vrack:IpLoadbalancing\n    properties:\n      serviceName: xxx\n      LoadbalancingId: yyy\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nA vRack IP Load Balancing attachment can be imported using the `service_name` and `ip_loadbalancing`, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Vrack/ipLoadbalancing:IpLoadbalancing viplb service_name/ip_loadbalancing\n```\n\n","properties":{"LoadbalancingId":{"type":"string","description":"The id of the IP Load Balancing.\n"},"serviceName":{"type":"string","description":"The id of the vrack.\n"}},"required":["LoadbalancingId","serviceName"],"inputProperties":{"LoadbalancingId":{"type":"string","description":"The id of the IP Load Balancing.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the vrack.\n","willReplaceOnChanges":true}},"requiredInputs":["LoadbalancingId","serviceName"],"stateInputs":{"description":"Input properties used for looking up and filtering IpLoadbalancing resources.\n","properties":{"LoadbalancingId":{"type":"string","description":"The id of the IP Load Balancing.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the vrack.\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:Vrack/ipV6:IpV6":{"description":"Attach an IPv6 block to a VRack.\n\n## Import\n\nAttachment of an IPv6 block and a VRack can be imported using the `service_name` (vRack identifier) and the `block` (IPv6 block), separated by \",\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Vrack/ipV6:IpV6 myattach \"\u003cservice_name\u003e,\u003cblock\u003e\"\n```\n\n","properties":{"block":{"type":"string","description":"Your IPv6 block.\n"},"bridgedSubrange":{"$ref":"#/types/ovh:Vrack/IpV6BridgedSubrange:IpV6BridgedSubrange","description":"Bridged subrange configuration.\n"},"ipv6":{"type":"string","description":"The IPv6 block.\n"},"region":{"type":"string","description":"The region in which the block is routed.\n"},"serviceName":{"type":"string","description":"The internal name of your vrack\n"}},"required":["block","bridgedSubrange","ipv6","region","serviceName"],"inputProperties":{"block":{"type":"string","description":"Your IPv6 block.\n","willReplaceOnChanges":true},"bridgedSubrange":{"$ref":"#/types/ovh:Vrack/IpV6BridgedSubrange:IpV6BridgedSubrange","description":"Bridged subrange configuration.\n"},"serviceName":{"type":"string","description":"The internal name of your vrack\n","willReplaceOnChanges":true}},"requiredInputs":["block","serviceName"],"stateInputs":{"description":"Input properties used for looking up and filtering IpV6 resources.\n","properties":{"block":{"type":"string","description":"Your IPv6 block.\n","willReplaceOnChanges":true},"bridgedSubrange":{"$ref":"#/types/ovh:Vrack/IpV6BridgedSubrange:IpV6BridgedSubrange","description":"Bridged subrange configuration.\n"},"ipv6":{"type":"string","description":"The IPv6 block.\n"},"region":{"type":"string","description":"The region in which the block is routed.\n"},"serviceName":{"type":"string","description":"The internal name of your vrack\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:Vrack/oVHcloudConnect:OVHcloudConnect":{"description":"Attach an OVH Cloud Connect to the 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 vrackOvhcloudconnect = new ovh.vrack.OVHcloudConnect(\"vrack_ovhcloudconnect\", {\n    serviceName: \"\u003cvRack service name\u003e\",\n    ovhCloudConnect: \"\u003cOVH Cloud Connect service name\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nvrack_ovhcloudconnect = ovh.vrack.OVHcloudConnect(\"vrack_ovhcloudconnect\",\n    service_name=\"\u003cvRack service name\u003e\",\n    ovh_cloud_connect=\"\u003cOVH Cloud Connect service name\u003e\")\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 vrackOvhcloudconnect = new Ovh.Vrack.OVHcloudConnect(\"vrack_ovhcloudconnect\", new()\n    {\n        ServiceName = \"\u003cvRack service name\u003e\",\n        OvhCloudConnect = \"\u003cOVH Cloud Connect service name\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewOVHcloudConnect(ctx, \"vrack_ovhcloudconnect\", \u0026vrack.OVHcloudConnectArgs{\n\t\t\tServiceName:     pulumi.String(\"\u003cvRack service name\u003e\"),\n\t\t\tOvhCloudConnect: pulumi.String(\"\u003cOVH Cloud Connect service name\u003e\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Vrack.OVHcloudConnect;\nimport com.ovhcloud.pulumi.ovh.Vrack.OVHcloudConnectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var vrackOvhcloudconnect = new OVHcloudConnect(\"vrackOvhcloudconnect\", OVHcloudConnectArgs.builder()\n            .serviceName(\"\u003cvRack service name\u003e\")\n            .ovhCloudConnect(\"\u003cOVH Cloud Connect service name\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vrackOvhcloudconnect:\n    type: ovh:Vrack:OVHcloudConnect\n    name: vrack_ovhcloudconnect\n    properties:\n      serviceName: \u003cvRack service name\u003e\n      ovhCloudConnect: \u003cOVH Cloud Connect service name\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAttachment of an OVH Cloud Connect and a vRack can be imported using the `service_name` (vRack identifier) and the `ovh_cloud_connect` (OVH Cloud Connect service name), separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Vrack/oVHcloudConnect:OVHcloudConnect myattach \"\u003cservice_name\u003e/\u003cOVH Cloud Connect service name\u003e\"\n```\n\n","properties":{"ovhCloudConnect":{"type":"string","description":"Your OVH Cloud Connect service name.\n"},"serviceName":{"type":"string","description":"The internal name of your vrack\n"}},"required":["ovhCloudConnect","serviceName"],"inputProperties":{"ovhCloudConnect":{"type":"string","description":"Your OVH Cloud Connect service name.\n"},"serviceName":{"type":"string","description":"The internal name of your vrack\n"}},"requiredInputs":["ovhCloudConnect","serviceName"],"stateInputs":{"description":"Input properties used for looking up and filtering OVHcloudConnect resources.\n","properties":{"ovhCloudConnect":{"type":"string","description":"Your OVH Cloud Connect service name.\n"},"serviceName":{"type":"string","description":"The internal name of your vrack\n"}},"type":"object"}},"ovh:Vrack/vrack:Vrack":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst myAccount = ovh.Me.getMe({});\nconst myCart = myAccount.then(myAccount =\u003e ovh.Order.getCart({\n    ovhSubsidiary: myAccount.ovhSubsidiary,\n}));\nconst vrack = myCart.then(myCart =\u003e ovh.Order.getCartProductPlan({\n    cartId: myCart.id,\n    priceCapacity: \"renew\",\n    product: \"vrack\",\n    planCode: \"vrack\",\n}));\nconst vrackVrack = new ovh.vrack.Vrack(\"vrack\", {\n    ovhSubsidiary: myCart.then(myCart =\u003e myCart.ovhSubsidiary),\n    name: \"my-vrack\",\n    description: \"my vrack\",\n    plan: {\n        duration: vrack.then(vrack =\u003e vrack.selectedPrices?.[0]?.duration),\n        planCode: vrack.then(vrack =\u003e vrack.planCode),\n        pricingMode: vrack.then(vrack =\u003e vrack.selectedPrices?.[0]?.pricingMode),\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_account = ovh.Me.get_me()\nmy_cart = ovh.Order.get_cart(ovh_subsidiary=my_account.ovh_subsidiary)\nvrack = ovh.Order.get_cart_product_plan(cart_id=my_cart.id,\n    price_capacity=\"renew\",\n    product=\"vrack\",\n    plan_code=\"vrack\")\nvrack_vrack = ovh.vrack.Vrack(\"vrack\",\n    ovh_subsidiary=my_cart.ovh_subsidiary,\n    name=\"my-vrack\",\n    description=\"my vrack\",\n    plan={\n        \"duration\": vrack.selected_prices[0].duration,\n        \"plan_code\": vrack.plan_code,\n        \"pricing_mode\": vrack.selected_prices[0].pricing_mode,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myAccount = Ovh.Me.GetMe.Invoke();\n\n    var myCart = Ovh.Order.GetCart.Invoke(new()\n    {\n        OvhSubsidiary = myAccount.Apply(getMeResult =\u003e getMeResult.OvhSubsidiary),\n    });\n\n    var vrack = Ovh.Order.GetCartProductPlan.Invoke(new()\n    {\n        CartId = myCart.Apply(getCartResult =\u003e getCartResult.Id),\n        PriceCapacity = \"renew\",\n        Product = \"vrack\",\n        PlanCode = \"vrack\",\n    });\n\n    var vrackVrack = new Ovh.Vrack.Vrack(\"vrack\", new()\n    {\n        OvhSubsidiary = myCart.Apply(getCartResult =\u003e getCartResult.OvhSubsidiary),\n        Name = \"my-vrack\",\n        Description = \"my vrack\",\n        Plan = new Ovh.Vrack.Inputs.VrackPlanArgs\n        {\n            Duration = vrack.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.Duration),\n            PlanCode = vrack.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PlanCode),\n            PricingMode = vrack.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.PricingMode),\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/me\"\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/order\"\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/vrack\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyAccount, err := me.GetMe(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyCart, err := order.GetCart(ctx, \u0026order.GetCartArgs{\n\t\t\tOvhSubsidiary: myAccount.OvhSubsidiary,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvrack, err := order.GetCartProductPlan(ctx, \u0026order.GetCartProductPlanArgs{\n\t\t\tCartId:        myCart.Id,\n\t\t\tPriceCapacity: \"renew\",\n\t\t\tProduct:       \"vrack\",\n\t\t\tPlanCode:      \"vrack\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vrack.NewVrack(ctx, \"vrack\", \u0026vrack.VrackArgs{\n\t\t\tOvhSubsidiary: pulumi.String(myCart.OvhSubsidiary),\n\t\t\tName:          pulumi.String(\"my-vrack\"),\n\t\t\tDescription:   pulumi.String(\"my vrack\"),\n\t\t\tPlan: \u0026vrack.VrackPlanArgs{\n\t\t\t\tDuration:    pulumi.String(vrack.SelectedPrices[0].Duration),\n\t\t\t\tPlanCode:    pulumi.String(vrack.PlanCode),\n\t\t\t\tPricingMode: pulumi.String(vrack.SelectedPrices[0].PricingMode),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.MeFunctions;\nimport com.pulumi.ovh.Order.OrderFunctions;\nimport com.pulumi.ovh.Order.inputs.GetCartArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductPlanArgs;\nimport com.ovhcloud.pulumi.ovh.Vrack.Vrack;\nimport com.ovhcloud.pulumi.ovh.Vrack.VrackArgs;\nimport com.pulumi.ovh.Vrack.inputs.VrackPlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myAccount = MeFunctions.getMe(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var myCart = OrderFunctions.getCart(GetCartArgs.builder()\n            .ovhSubsidiary(myAccount.ovhSubsidiary())\n            .build());\n\n        final var vrack = OrderFunctions.getCartProductPlan(GetCartProductPlanArgs.builder()\n            .cartId(myCart.id())\n            .priceCapacity(\"renew\")\n            .product(\"vrack\")\n            .planCode(\"vrack\")\n            .build());\n\n        var vrackVrack = new Vrack(\"vrackVrack\", VrackArgs.builder()\n            .ovhSubsidiary(myCart.ovhSubsidiary())\n            .name(\"my-vrack\")\n            .description(\"my vrack\")\n            .plan(VrackPlanArgs.builder()\n                .duration(vrack.selectedPrices()[0].duration())\n                .planCode(vrack.planCode())\n                .pricingMode(vrack.selectedPrices()[0].pricingMode())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vrackVrack:\n    type: ovh:Vrack:Vrack\n    name: vrack\n    properties:\n      ovhSubsidiary: ${myCart.ovhSubsidiary}\n      name: my-vrack\n      description: my vrack\n      plan:\n        duration: ${vrack.selectedPrices[0].duration}\n        planCode: ${vrack.planCode}\n        pricingMode: ${vrack.selectedPrices[0].pricingMode}\nvariables:\n  myAccount:\n    fn::invoke:\n      function: ovh:Me:getMe\n      arguments: {}\n  myCart:\n    fn::invoke:\n      function: ovh:Order:getCart\n      arguments:\n        ovhSubsidiary: ${myAccount.ovhSubsidiary}\n  vrack:\n    fn::invoke:\n      function: ovh:Order:getCartProductPlan\n      arguments:\n        cartId: ${myCart.id}\n        priceCapacity: renew\n        product: vrack\n        planCode: vrack\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nA vRack can be imported using the `service_name`. Using the following configuration:\n\nterraform\n\nimport {\n\n  to = ovh_vrack.vrack\n\n  id = \"\u003cservice name\u003e\"\n\n}\n\nYou can then run:\n\nbash\n\n$ pulumi preview -generate-config-out=vrack.tf\n\n$ pulumi up\n\nThe file `vrack.tf` will then contain the imported resource's configuration, that can be copied next to the `import` block above. See https://developer.hashicorp.com/terraform/language/import/generating-configuration for more details.\n\n","properties":{"VrackURN":{"type":"string","description":"The URN of the vrack, used with IAM permissions\n"},"description":{"type":"string","description":"yourvrackdescription\n"},"name":{"type":"string","description":"yourvrackname\n"},"orders":{"type":"array","items":{"$ref":"#/types/ovh:Vrack/VrackOrder:VrackOrder"},"description":"Details about an Order\n"},"ovhSubsidiary":{"type":"string","description":"OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json)\n"},"paymentMean":{"type":"string","description":"Ovh payment mode\n","deprecationMessage":"This field is not anymore used since the API has been deprecated in favor of /payment/mean. Now, the default payment mean is used."},"plan":{"$ref":"#/types/ovh:Vrack/VrackPlan:VrackPlan","description":"Product Plan to order\n"},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:Vrack/VrackPlanOption:VrackPlanOption"},"description":"Product Plan to order\n"},"serviceName":{"type":"string","description":"The internal name of your vrack\n"}},"required":["description","name","orders","ovhSubsidiary","plan","serviceName","VrackURN"],"inputProperties":{"description":{"type":"string","description":"yourvrackdescription\n"},"name":{"type":"string","description":"yourvrackname\n"},"orders":{"type":"array","items":{"$ref":"#/types/ovh:Vrack/VrackOrder:VrackOrder"},"description":"Details about an Order\n"},"ovhSubsidiary":{"type":"string","description":"OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json)\n","willReplaceOnChanges":true},"paymentMean":{"type":"string","description":"Ovh payment mode\n","deprecationMessage":"This field is not anymore used since the API has been deprecated in favor of /payment/mean. Now, the default payment mean is used.","willReplaceOnChanges":true},"plan":{"$ref":"#/types/ovh:Vrack/VrackPlan:VrackPlan","description":"Product Plan to order\n","willReplaceOnChanges":true},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:Vrack/VrackPlanOption:VrackPlanOption"},"description":"Product Plan to order\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Vrack resources.\n","properties":{"VrackURN":{"type":"string","description":"The URN of the vrack, used with IAM permissions\n"},"description":{"type":"string","description":"yourvrackdescription\n"},"name":{"type":"string","description":"yourvrackname\n"},"orders":{"type":"array","items":{"$ref":"#/types/ovh:Vrack/VrackOrder:VrackOrder"},"description":"Details about an Order\n"},"ovhSubsidiary":{"type":"string","description":"OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json)\n","willReplaceOnChanges":true},"paymentMean":{"type":"string","description":"Ovh payment mode\n","deprecationMessage":"This field is not anymore used since the API has been deprecated in favor of /payment/mean. Now, the default payment mean is used.","willReplaceOnChanges":true},"plan":{"$ref":"#/types/ovh:Vrack/VrackPlan:VrackPlan","description":"Product Plan to order\n","willReplaceOnChanges":true},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:Vrack/VrackPlanOption:VrackPlanOption"},"description":"Product Plan to order\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The internal name of your vrack\n"}},"type":"object"}},"ovh:Vrack/vrackDedicatedCloud:VrackDedicatedCloud":{"description":"Attach a Dedicated Cloud to the 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 vrackDedicatedCloud = new ovh.vrack.VrackDedicatedCloud(\"vrack_dedicated_cloud\", {\n    serviceName: \"\u003cvRack service name\u003e\",\n    dedicatedCloud: \"\u003cDedicated Cloud service name\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nvrack_dedicated_cloud = ovh.vrack.VrackDedicatedCloud(\"vrack_dedicated_cloud\",\n    service_name=\"\u003cvRack service name\u003e\",\n    dedicated_cloud=\"\u003cDedicated Cloud service name\u003e\")\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 vrackDedicatedCloud = new Ovh.Vrack.VrackDedicatedCloud(\"vrack_dedicated_cloud\", new()\n    {\n        ServiceName = \"\u003cvRack service name\u003e\",\n        DedicatedCloud = \"\u003cDedicated Cloud service name\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewVrackDedicatedCloud(ctx, \"vrack_dedicated_cloud\", \u0026vrack.VrackDedicatedCloudArgs{\n\t\t\tServiceName:    pulumi.String(\"\u003cvRack service name\u003e\"),\n\t\t\tDedicatedCloud: pulumi.String(\"\u003cDedicated Cloud service name\u003e\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Vrack.VrackDedicatedCloud;\nimport com.ovhcloud.pulumi.ovh.Vrack.VrackDedicatedCloudArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var vrackDedicatedCloud = new VrackDedicatedCloud(\"vrackDedicatedCloud\", VrackDedicatedCloudArgs.builder()\n            .serviceName(\"\u003cvRack service name\u003e\")\n            .dedicatedCloud(\"\u003cDedicated Cloud service name\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vrackDedicatedCloud:\n    type: ovh:Vrack:VrackDedicatedCloud\n    name: vrack_dedicated_cloud\n    properties:\n      serviceName: \u003cvRack service name\u003e\n      dedicatedCloud: \u003cDedicated Cloud service name\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAttachment of a Dedicated Cloud and a vRack can be imported using the `service_name` (vRack identifier) and the `dedicated_cloud` (Dedicated Cloud service name), separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Vrack/vrackDedicatedCloud:VrackDedicatedCloud myattach \"\u003cvRack service name\u003e/\u003cDedicated Cloud service name\u003e\"\n```\n\n","properties":{"dedicatedCloud":{"type":"string","description":"Your Dedicated Cloud service name\n"},"serviceName":{"type":"string","description":"The internal name of your vrack\n"}},"required":["dedicatedCloud","serviceName"],"inputProperties":{"dedicatedCloud":{"type":"string","description":"Your Dedicated Cloud service name\n"},"serviceName":{"type":"string","description":"The internal name of your vrack\n"}},"requiredInputs":["dedicatedCloud","serviceName"],"stateInputs":{"description":"Input properties used for looking up and filtering VrackDedicatedCloud resources.\n","properties":{"dedicatedCloud":{"type":"string","description":"Your Dedicated Cloud service name\n"},"serviceName":{"type":"string","description":"The internal name of your vrack\n"}},"type":"object"}},"ovh:Vrack/vrackservices:Vrackservices":{"description":"Attach a vrackServices to the 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 vrackVrackservices = new ovh.vrack.Vrackservices(\"vrack_vrackservices\", {\n    serviceName: \"\u003cvRack service name\u003e\",\n    vrackServices: \"\u003cvrackServices service name\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nvrack_vrackservices = ovh.vrack.Vrackservices(\"vrack_vrackservices\",\n    service_name=\"\u003cvRack service name\u003e\",\n    vrack_services=\"\u003cvrackServices service name\u003e\")\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 vrackVrackservices = new Ovh.Vrack.Vrackservices(\"vrack_vrackservices\", new()\n    {\n        ServiceName = \"\u003cvRack service name\u003e\",\n        VrackServices = \"\u003cvrackServices service name\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.NewVrackservices(ctx, \"vrack_vrackservices\", \u0026vrack.VrackservicesArgs{\n\t\t\tServiceName:   pulumi.String(\"\u003cvRack service name\u003e\"),\n\t\t\tVrackServices: pulumi.String(\"\u003cvrackServices service name\u003e\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.Vrack.Vrackservices;\nimport com.ovhcloud.pulumi.ovh.Vrack.VrackservicesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var vrackVrackservices = new Vrackservices(\"vrackVrackservices\", VrackservicesArgs.builder()\n            .serviceName(\"\u003cvRack service name\u003e\")\n            .vrackServices(\"\u003cvrackServices service name\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vrackVrackservices:\n    type: ovh:Vrack:Vrackservices\n    name: vrack_vrackservices\n    properties:\n      serviceName: \u003cvRack service name\u003e\n      vrackServices: \u003cvrackServices service name\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAttachment of a vrackServices and a vRack can be imported using the `service_name` (vRack identifier) and the `vrack_services` (vrackServices service name), separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Vrack/vrackservices:Vrackservices myattach \"\u003cservice_name\u003e/\u003cvrackServices service name\u003e\"\n```\n\n","properties":{"serviceName":{"type":"string","description":"The internal name of your vrack\n"},"vrackServices":{"type":"string","description":"Your vrackServices service name.\n"}},"required":["serviceName","vrackServices"],"inputProperties":{"serviceName":{"type":"string","description":"The internal name of your vrack\n","willReplaceOnChanges":true},"vrackServices":{"type":"string","description":"Your vrackServices service name.\n","willReplaceOnChanges":true}},"requiredInputs":["serviceName","vrackServices"],"stateInputs":{"description":"Input properties used for looking up and filtering Vrackservices resources.\n","properties":{"serviceName":{"type":"string","description":"The internal name of your vrack\n","willReplaceOnChanges":true},"vrackServices":{"type":"string","description":"Your vrackServices service name.\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:index/cloudProjectContainerregistryIam:CloudProjectContainerregistryIam":{"description":"Creates an IAM configuration in an OVHcloud Managed Private Registry.\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 registryIam = new ovh.CloudProjectContainerregistryIam(\"registry_iam\", {\n    serviceName: \"XXXXXX\",\n    registryId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n    deleteUsers: false,\n});\nexport const iamEnabled = registryIam.iamEnabled;\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nregistry_iam = ovh.CloudProjectContainerregistryIam(\"registry_iam\",\n    service_name=\"XXXXXX\",\n    registry_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n    delete_users=False)\npulumi.export(\"iamEnabled\", registry_iam.iam_enabled)\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 registryIam = new Ovh.CloudProjectContainerregistryIam(\"registry_iam\", new()\n    {\n        ServiceName = \"XXXXXX\",\n        RegistryId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n        DeleteUsers = false,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"iamEnabled\"] = registryIam.IamEnabled,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tregistryIam, err := ovh.NewCloudProjectContainerregistryIam(ctx, \"registry_iam\", \u0026ovh.CloudProjectContainerregistryIamArgs{\n\t\t\tServiceName: pulumi.String(\"XXXXXX\"),\n\t\t\tRegistryId:  pulumi.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\"),\n\t\t\tDeleteUsers: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"iamEnabled\", registryIam.IamEnabled)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.CloudProjectContainerregistryIam;\nimport com.ovhcloud.pulumi.ovh.CloudProjectContainerregistryIamArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var registryIam = new CloudProjectContainerregistryIam(\"registryIam\", CloudProjectContainerregistryIamArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .registryId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\n            .deleteUsers(false)\n            .build());\n\n        ctx.export(\"iamEnabled\", registryIam.iamEnabled());\n    }\n}\n```\n```yaml\nresources:\n  registryIam:\n    type: ovh:CloudProjectContainerregistryIam\n    name: registry_iam\n    properties:\n      serviceName: XXXXXX\n      registryId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\n      deleteUsers: false\noutputs:\n  iamEnabled: ${registryIam.iamEnabled}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed Private Registry IAM can be imported using the tenant `service_name` and registry id `registry_id` separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:index/cloudProjectContainerregistryIam:CloudProjectContainerregistryIam my-iam service_name/registry_id\n```\n\n","properties":{"deleteUsers":{"type":"boolean","description":"Delete existing users from Harbor. IAM can't be enabled if there is at least one user already created. This parameter is only used at IAM configuration creation. **Changing this value recreates the resource.**\n"},"iamEnabled":{"type":"boolean","description":"Whether IAM is enabled for the registry.\n"},"registryId":{"type":"string","description":"The ID of the Managed Private Registry. **Changing this value recreates the resource.**\n"},"serviceName":{"type":"string","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.**\n"}},"required":["iamEnabled","registryId","serviceName"],"inputProperties":{"deleteUsers":{"type":"boolean","description":"Delete existing users from Harbor. IAM can't be enabled if there is at least one user already created. This parameter is only used at IAM configuration creation. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"registryId":{"type":"string","description":"The ID of the Managed Private Registry. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true}},"requiredInputs":["registryId"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudProjectContainerregistryIam resources.\n","properties":{"deleteUsers":{"type":"boolean","description":"Delete existing users from Harbor. IAM can't be enabled if there is at least one user already created. This parameter is only used at IAM configuration creation. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"iamEnabled":{"type":"boolean","description":"Whether IAM is enabled for the registry.\n"},"registryId":{"type":"string","description":"The ID of the Managed Private Registry. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.**\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:index/cloudProjectDatabaseClickhouseUser:CloudProjectDatabaseClickhouseUser":{"description":"\n\n## Import\n\nOVHcloud Managed Clickhouse clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:index/cloudProjectDatabaseClickhouseUser:CloudProjectDatabaseClickhouseUser my_user service_name/cluster_id/id\n```\n\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n"},"createdAt":{"type":"string","description":"Date of the creation of the user.\n"},"name":{"type":"string","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","description":"(Sensitive) Password of the user.\n","secret":true},"passwordReset":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"roles":{"type":"array","items":{"type":"string"},"description":"Roles the user belongs to.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"status":{"type":"string","description":"Current status of the user.\n"}},"required":["clusterId","createdAt","name","password","roles","serviceName","status"],"inputProperties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"name":{"type":"string","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":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudProjectDatabaseClickhouseUser resources.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"createdAt":{"type":"string","description":"Date of the creation of the user.\n"},"name":{"type":"string","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":{"type":"string","description":"(Sensitive) Password of the user.\n","secret":true},"passwordReset":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"roles":{"type":"array","items":{"type":"string"},"description":"Roles the user belongs to.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Current status of the user.\n"}},"type":"object"}},"ovh:index/cloudProjectDatabaseValkeyUser:CloudProjectDatabaseValkeyUser":{"description":"\n\n## Import\n\nOVHcloud Managed Valkey clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:index/cloudProjectDatabaseValkeyUser:CloudProjectDatabaseValkeyUser my_user service_name/cluster_id/id\n```\n\n","properties":{"categories":{"type":"array","items":{"type":"string"},"description":"Categories of the user.\n"},"channels":{"type":"array","items":{"type":"string"},"description":"Channels of the user.\n"},"clusterId":{"type":"string","description":"Cluster ID.\n"},"commands":{"type":"array","items":{"type":"string"},"description":"Commands of the user.\n"},"createdAt":{"type":"string","description":"Date of the creation of the user.\n"},"keys":{"type":"array","items":{"type":"string"},"description":"Keys of the user.\n"},"name":{"type":"string","description":"Name of the user. A user named \"default\" is mapped with an already created user and reset his password instead of creating a new user.\n"},"password":{"type":"string","description":"(Sensitive) Password of the user.\n","secret":true},"passwordReset":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"status":{"type":"string","description":"Current status of the user.\n"}},"required":["channels","clusterId","createdAt","name","password","serviceName","status"],"inputProperties":{"categories":{"type":"array","items":{"type":"string"},"description":"Categories of the user.\n"},"channels":{"type":"array","items":{"type":"string"},"description":"Channels of the user.\n"},"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"commands":{"type":"array","items":{"type":"string"},"description":"Commands of the user.\n"},"keys":{"type":"array","items":{"type":"string"},"description":"Keys of the user.\n"},"name":{"type":"string","description":"Name of the user. A user named \"default\" is mapped with an already created user and reset his password instead of creating a new user.\n","willReplaceOnChanges":true},"passwordReset":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudProjectDatabaseValkeyUser resources.\n","properties":{"categories":{"type":"array","items":{"type":"string"},"description":"Categories of the user.\n"},"channels":{"type":"array","items":{"type":"string"},"description":"Channels of the user.\n"},"clusterId":{"type":"string","description":"Cluster ID.\n","willReplaceOnChanges":true},"commands":{"type":"array","items":{"type":"string"},"description":"Commands of the user.\n"},"createdAt":{"type":"string","description":"Date of the creation of the user.\n"},"keys":{"type":"array","items":{"type":"string"},"description":"Keys of the user.\n"},"name":{"type":"string","description":"Name of the user. A user named \"default\" is mapped with an already created user and reset his password instead of creating a new user.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"(Sensitive) Password of the user.\n","secret":true},"passwordReset":{"type":"string","description":"Arbitrary string to change to trigger a password update\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Current status of the user.\n"}},"type":"object"}},"ovh:index/cloudProjectSshKey:CloudProjectSshKey":{"description":"Create a SSH key in the given public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst key = new ovh.CloudProjectSshKey(\"key\", {\n    serviceName: \"\u003cpublic cloud project ID\u003e\",\n    publicKey: \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC9xPpdqP3sx2H+gcBm65tJEaUbuifQ1uGkgrWtNY0PRKNNPdy+3yoVOtxk6Vjo4YZ0EU/JhmQfnrK7X7Q5vhqYxmozi0LiTRt0BxgqHJ+4hWTWMIOgr+C2jLx7ZsCReRk+fy5AHr6h0PHQEuXVLXeUy/TDyuY2JPtUZ5jcqvLYgQ== my-key\",\n    name: \"new_key\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nkey = ovh.CloudProjectSshKey(\"key\",\n    service_name=\"\u003cpublic cloud project ID\u003e\",\n    public_key=\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC9xPpdqP3sx2H+gcBm65tJEaUbuifQ1uGkgrWtNY0PRKNNPdy+3yoVOtxk6Vjo4YZ0EU/JhmQfnrK7X7Q5vhqYxmozi0LiTRt0BxgqHJ+4hWTWMIOgr+C2jLx7ZsCReRk+fy5AHr6h0PHQEuXVLXeUy/TDyuY2JPtUZ5jcqvLYgQ== my-key\",\n    name=\"new_key\")\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 key = new Ovh.CloudProjectSshKey(\"key\", new()\n    {\n        ServiceName = \"\u003cpublic cloud project ID\u003e\",\n        PublicKey = \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC9xPpdqP3sx2H+gcBm65tJEaUbuifQ1uGkgrWtNY0PRKNNPdy+3yoVOtxk6Vjo4YZ0EU/JhmQfnrK7X7Q5vhqYxmozi0LiTRt0BxgqHJ+4hWTWMIOgr+C2jLx7ZsCReRk+fy5AHr6h0PHQEuXVLXeUy/TDyuY2JPtUZ5jcqvLYgQ== my-key\",\n        Name = \"new_key\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.NewCloudProjectSshKey(ctx, \"key\", \u0026ovh.CloudProjectSshKeyArgs{\n\t\t\tServiceName: pulumi.String(\"\u003cpublic cloud project ID\u003e\"),\n\t\t\tPublicKey:   pulumi.String(\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC9xPpdqP3sx2H+gcBm65tJEaUbuifQ1uGkgrWtNY0PRKNNPdy+3yoVOtxk6Vjo4YZ0EU/JhmQfnrK7X7Q5vhqYxmozi0LiTRt0BxgqHJ+4hWTWMIOgr+C2jLx7ZsCReRk+fy5AHr6h0PHQEuXVLXeUy/TDyuY2JPtUZ5jcqvLYgQ== my-key\"),\n\t\t\tName:        pulumi.String(\"new_key\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.CloudProjectSshKey;\nimport com.ovhcloud.pulumi.ovh.CloudProjectSshKeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var key = new CloudProjectSshKey(\"key\", CloudProjectSshKeyArgs.builder()\n            .serviceName(\"\u003cpublic cloud project ID\u003e\")\n            .publicKey(\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC9xPpdqP3sx2H+gcBm65tJEaUbuifQ1uGkgrWtNY0PRKNNPdy+3yoVOtxk6Vjo4YZ0EU/JhmQfnrK7X7Q5vhqYxmozi0LiTRt0BxgqHJ+4hWTWMIOgr+C2jLx7ZsCReRk+fy5AHr6h0PHQEuXVLXeUy/TDyuY2JPtUZ5jcqvLYgQ== my-key\")\n            .name(\"new_key\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  key:\n    type: ovh:CloudProjectSshKey\n    properties:\n      serviceName: \u003cpublic cloud project ID\u003e\n      publicKey: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC9xPpdqP3sx2H+gcBm65tJEaUbuifQ1uGkgrWtNY0PRKNNPdy+3yoVOtxk6Vjo4YZ0EU/JhmQfnrK7X7Q5vhqYxmozi0LiTRt0BxgqHJ+4hWTWMIOgr+C2jLx7ZsCReRk+fy5AHr6h0PHQEuXVLXeUy/TDyuY2JPtUZ5jcqvLYgQ== my-key\n      name: new_key\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"fingerPrint":{"type":"string","description":"SSH key fingerprint\n"},"name":{"type":"string","description":"SSH key name\n"},"publicKey":{"type":"string","description":"SSH public key\n"},"region":{"type":"string","description":"Region to create SSH key\n"},"regions":{"type":"array","items":{"type":"string"},"description":"SSH key regions\n"},"serviceName":{"type":"string","description":"Service name. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"required":["fingerPrint","name","publicKey","region","regions"],"inputProperties":{"name":{"type":"string","description":"SSH key name\n"},"publicKey":{"type":"string","description":"SSH public key\n"},"region":{"type":"string","description":"Region to create SSH key\n"},"serviceName":{"type":"string","description":"Service name. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"requiredInputs":["publicKey"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudProjectSshKey resources.\n","properties":{"fingerPrint":{"type":"string","description":"SSH key fingerprint\n"},"name":{"type":"string","description":"SSH key name\n"},"publicKey":{"type":"string","description":"SSH public key\n"},"region":{"type":"string","description":"Region to create SSH key\n"},"regions":{"type":"array","items":{"type":"string"},"description":"SSH key regions\n"},"serviceName":{"type":"string","description":"Service name. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object"}},"ovh:index/cloudProjectStorageObjectBucketLifecycleConfiguration:CloudProjectStorageObjectBucketLifecycleConfiguration":{"description":"Manage the S3™* compatible lifecycle configuration for an OVHcloud Object Storage bucket.\n\n(* S3 is a trademark filed by Amazon Technologies,Inc. OVHcloud's service is not sponsored by, endorsed by, or otherwise affiliated with Amazon Technologies,Inc.)\n\nLifecycle rules let you automatically expire objects, transition them to a cheaper storage class, or clean up incomplete multipart uploads based on age, prefix, tags, or object size.\n\n\u003e **Note:** This resource uses a PUT/DELETE API — there is no separate create vs update endpoint. Creating and updating both call `PUT`. Destroying calls `DELETE` which removes the entire lifecycle configuration from the bucket.\n\n\u003e **Note:** All three identity attributes (`service_name`, `region_name`, `container_name`) require resource replacement if changed.\n\n## Example Usage\n\n### Expire old objects\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst bucket = new ovh.cloudproject.Storage(\"bucket\", {\n    serviceName: \"\u003cpublic cloud project ID\u003e\",\n    regionName: \"GRA\",\n    name: \"my-versioned-bucket\",\n    versioning: {\n        status: \"enabled\",\n    },\n});\nconst lifecycle = new ovh.CloudProjectStorageObjectBucketLifecycleConfiguration(\"lifecycle\", {\n    serviceName: bucket.serviceName,\n    regionName: bucket.regionName,\n    containerName: bucket.name,\n    rules: [{\n        id: \"expire-old-objects\",\n        status: \"enabled\",\n        expiration: {\n            days: 365,\n        },\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nbucket = ovh.cloudproject.Storage(\"bucket\",\n    service_name=\"\u003cpublic cloud project ID\u003e\",\n    region_name=\"GRA\",\n    name=\"my-versioned-bucket\",\n    versioning={\n        \"status\": \"enabled\",\n    })\nlifecycle = ovh.CloudProjectStorageObjectBucketLifecycleConfiguration(\"lifecycle\",\n    service_name=bucket.service_name,\n    region_name=bucket.region_name,\n    container_name=bucket.name,\n    rules=[{\n        \"id\": \"expire-old-objects\",\n        \"status\": \"enabled\",\n        \"expiration\": {\n            \"days\": 365,\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 bucket = new Ovh.CloudProject.Storage(\"bucket\", new()\n    {\n        ServiceName = \"\u003cpublic cloud project ID\u003e\",\n        RegionName = \"GRA\",\n        Name = \"my-versioned-bucket\",\n        Versioning = new Ovh.CloudProject.Inputs.StorageVersioningArgs\n        {\n            Status = \"enabled\",\n        },\n    });\n\n    var lifecycle = new Ovh.CloudProjectStorageObjectBucketLifecycleConfiguration(\"lifecycle\", new()\n    {\n        ServiceName = bucket.ServiceName,\n        RegionName = bucket.RegionName,\n        ContainerName = bucket.Name,\n        Rules = new[]\n        {\n            new Ovh.Inputs.CloudProjectStorageObjectBucketLifecycleConfigurationRuleArgs\n            {\n                Id = \"expire-old-objects\",\n                Status = \"enabled\",\n                Expiration = new Ovh.Inputs.CloudProjectStorageObjectBucketLifecycleConfigurationRuleExpirationArgs\n                {\n                    Days = 365,\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tbucket, err := cloudproject.NewStorage(ctx, \"bucket\", \u0026cloudproject.StorageArgs{\n\t\t\tServiceName: pulumi.String(\"\u003cpublic cloud project ID\u003e\"),\n\t\t\tRegionName:  pulumi.String(\"GRA\"),\n\t\t\tName:        pulumi.String(\"my-versioned-bucket\"),\n\t\t\tVersioning: \u0026cloudproject.StorageVersioningArgs{\n\t\t\t\tStatus: pulumi.String(\"enabled\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ovh.NewCloudProjectStorageObjectBucketLifecycleConfiguration(ctx, \"lifecycle\", \u0026ovh.CloudProjectStorageObjectBucketLifecycleConfigurationArgs{\n\t\t\tServiceName:   bucket.ServiceName,\n\t\t\tRegionName:    bucket.RegionName,\n\t\t\tContainerName: bucket.Name,\n\t\t\tRules: ovh.CloudProjectStorageObjectBucketLifecycleConfigurationRuleArray{\n\t\t\t\t\u0026ovh.CloudProjectStorageObjectBucketLifecycleConfigurationRuleArgs{\n\t\t\t\t\tId:     pulumi.String(\"expire-old-objects\"),\n\t\t\t\t\tStatus: pulumi.String(\"enabled\"),\n\t\t\t\t\tExpiration: \u0026ovh.CloudProjectStorageObjectBucketLifecycleConfigurationRuleExpirationArgs{\n\t\t\t\t\t\tDays: pulumi.Float64(365),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.CloudProject.Storage;\nimport com.ovhcloud.pulumi.ovh.CloudProject.StorageArgs;\nimport com.pulumi.ovh.CloudProject.inputs.StorageVersioningArgs;\nimport com.ovhcloud.pulumi.ovh.CloudProjectStorageObjectBucketLifecycleConfiguration;\nimport com.ovhcloud.pulumi.ovh.CloudProjectStorageObjectBucketLifecycleConfigurationArgs;\nimport com.pulumi.ovh.inputs.CloudProjectStorageObjectBucketLifecycleConfigurationRuleArgs;\nimport com.pulumi.ovh.inputs.CloudProjectStorageObjectBucketLifecycleConfigurationRuleExpirationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var bucket = new Storage(\"bucket\", StorageArgs.builder()\n            .serviceName(\"\u003cpublic cloud project ID\u003e\")\n            .regionName(\"GRA\")\n            .name(\"my-versioned-bucket\")\n            .versioning(StorageVersioningArgs.builder()\n                .status(\"enabled\")\n                .build())\n            .build());\n\n        var lifecycle = new CloudProjectStorageObjectBucketLifecycleConfiguration(\"lifecycle\", CloudProjectStorageObjectBucketLifecycleConfigurationArgs.builder()\n            .serviceName(bucket.serviceName())\n            .regionName(bucket.regionName())\n            .containerName(bucket.name())\n            .rules(CloudProjectStorageObjectBucketLifecycleConfigurationRuleArgs.builder()\n                .id(\"expire-old-objects\")\n                .status(\"enabled\")\n                .expiration(CloudProjectStorageObjectBucketLifecycleConfigurationRuleExpirationArgs.builder()\n                    .days(365.0)\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  bucket:\n    type: ovh:CloudProject:Storage\n    properties:\n      serviceName: \u003cpublic cloud project ID\u003e\n      regionName: GRA\n      name: my-versioned-bucket\n      versioning:\n        status: enabled\n  lifecycle:\n    type: ovh:CloudProjectStorageObjectBucketLifecycleConfiguration\n    properties:\n      serviceName: ${bucket.serviceName}\n      regionName: ${bucket.regionName}\n      containerName: ${bucket.name}\n      rules:\n        - id: expire-old-objects\n          status: enabled\n          expiration:\n            days: 365\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Archive logs\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  lifecycle:\n    type: ovh:CloudProjectStorageObjectBucketLifecycleConfiguration\n    properties:\n      serviceName: \u003cpublic cloud project ID\u003e\n      regionName: GRA\n      containerName: my-bucket\n      rules:\n        - id: transition-to-standard-ia\n          status: enabled\n          filter:\n            prefix: archive/\n          transitions:\n            - days: 90\n              storageClass: STANDARD_IA\n        - id: transition-to-standard-ia-delayed\n          status: enabled\n          filter:\n            prefix: archive/\n          transitions:\n            - days: 180\n              storageClass: DEEP_ARCHIVE\n        - id: expire-logs\n          status: enabled\n          filter:\n            prefix: logs/\n            objectSizeGreaterThan: 1.048576e+06\n          expiration:\n            days: 30\n        - id: abort-multipart\n          status: enabled\n          abort_incomplete_multipart_upload:\n            daysAfterInitiation: 7\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Noncurrent cleaning\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  lifecycle:\n    type: ovh:CloudProjectStorageObjectBucketLifecycleConfiguration\n    properties:\n      serviceName: \u003cpublic cloud project ID\u003e\n      regionName: GRA\n      containerName: my-bucket\n      rules:\n        - id: noncurrent-version-expiration\n          status: enabled\n          noncurrent_version_expiration:\n            noncurrentDays: 30\n            newerNoncurrentVersions: 3\n        - id: noncurrent-version-transition\n          status: enabled\n          noncurrent_version_transitions:\n            - noncurrentDays: 14\n              storageClass: STANDARD_IA\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAn existing lifecycle configuration can be imported using the composite ID `service_name/region_name/container_name`:\n\nbash\n\n```sh\n$ pulumi import ovh:index/cloudProjectStorageObjectBucketLifecycleConfiguration:CloudProjectStorageObjectBucketLifecycleConfiguration lifecycle \"xxxxxxxxxxxx/GRA/my-bucket\"\n```\n\n","properties":{"containerName":{"type":"string","description":"Name of the storage container.\n"},"regionName":{"type":"string","description":"Region name of the storage container.\n"},"rules":{"type":"array","items":{"$ref":"#/types/ovh:index/CloudProjectStorageObjectBucketLifecycleConfigurationRule:CloudProjectStorageObjectBucketLifecycleConfigurationRule"},"description":"List of lifecycle rules.\n"},"serviceName":{"type":"string","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"required":["containerName","regionName","rules","serviceName"],"inputProperties":{"containerName":{"type":"string","description":"Name of the storage container.\n"},"regionName":{"type":"string","description":"Region name of the storage container.\n"},"rules":{"type":"array","items":{"$ref":"#/types/ovh:index/CloudProjectStorageObjectBucketLifecycleConfigurationRule:CloudProjectStorageObjectBucketLifecycleConfigurationRule"},"description":"List of lifecycle rules.\n"},"serviceName":{"type":"string","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"requiredInputs":["containerName","regionName","rules"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudProjectStorageObjectBucketLifecycleConfiguration resources.\n","properties":{"containerName":{"type":"string","description":"Name of the storage container.\n"},"regionName":{"type":"string","description":"Region name of the storage container.\n"},"rules":{"type":"array","items":{"$ref":"#/types/ovh:index/CloudProjectStorageObjectBucketLifecycleConfigurationRule:CloudProjectStorageObjectBucketLifecycleConfigurationRule"},"description":"List of lifecycle rules.\n"},"serviceName":{"type":"string","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object"}},"ovh:index/cloudProjectStorageReplicationJob:CloudProjectStorageReplicationJob":{"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 catchup = new ovh.CloudProjectStorageReplicationJob(\"catchup\", {\n    serviceName: \"xxxxxxxxxxxx\",\n    regionName: \"GRA\",\n    containerName: \"my-source-container\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ncatchup = ovh.CloudProjectStorageReplicationJob(\"catchup\",\n    service_name=\"xxxxxxxxxxxx\",\n    region_name=\"GRA\",\n    container_name=\"my-source-container\")\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 catchup = new Ovh.CloudProjectStorageReplicationJob(\"catchup\", new()\n    {\n        ServiceName = \"xxxxxxxxxxxx\",\n        RegionName = \"GRA\",\n        ContainerName = \"my-source-container\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.NewCloudProjectStorageReplicationJob(ctx, \"catchup\", \u0026ovh.CloudProjectStorageReplicationJobArgs{\n\t\t\tServiceName:   pulumi.String(\"xxxxxxxxxxxx\"),\n\t\t\tRegionName:    pulumi.String(\"GRA\"),\n\t\t\tContainerName: pulumi.String(\"my-source-container\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.CloudProjectStorageReplicationJob;\nimport com.ovhcloud.pulumi.ovh.CloudProjectStorageReplicationJobArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var catchup = new CloudProjectStorageReplicationJob(\"catchup\", CloudProjectStorageReplicationJobArgs.builder()\n            .serviceName(\"xxxxxxxxxxxx\")\n            .regionName(\"GRA\")\n            .containerName(\"my-source-container\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  catchup:\n    type: ovh:CloudProjectStorageReplicationJob\n    properties:\n      serviceName: xxxxxxxxxxxx\n      regionName: GRA\n      containerName: my-source-container\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"containerName":{"type":"string","description":"Name of the storage container\n"},"regionName":{"type":"string","description":"Region name of the storage container\n"},"serviceName":{"type":"string","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"required":["containerName","regionName"],"inputProperties":{"containerName":{"type":"string","description":"Name of the storage container\n"},"regionName":{"type":"string","description":"Region name of the storage container\n"},"serviceName":{"type":"string","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"requiredInputs":["containerName","regionName"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudProjectStorageReplicationJob resources.\n","properties":{"containerName":{"type":"string","description":"Name of the storage container\n"},"regionName":{"type":"string","description":"Region name of the storage container\n"},"serviceName":{"type":"string","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object"}},"ovh:index/domainZoneDynhostRecord:DomainZoneDynhostRecord":{"description":"Create a dynhost record for a given domain zone.\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 dynhostRecord = new ovh.DomainZoneDynhostRecord(\"dynhost_record\", {\n    zoneName: \"mydomain.ovh\",\n    subDomain: \"dynhost\",\n    ip: \"1.2.3.4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ndynhost_record = ovh.DomainZoneDynhostRecord(\"dynhost_record\",\n    zone_name=\"mydomain.ovh\",\n    sub_domain=\"dynhost\",\n    ip=\"1.2.3.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 dynhostRecord = new Ovh.DomainZoneDynhostRecord(\"dynhost_record\", new()\n    {\n        ZoneName = \"mydomain.ovh\",\n        SubDomain = \"dynhost\",\n        Ip = \"1.2.3.4\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.NewDomainZoneDynhostRecord(ctx, \"dynhost_record\", \u0026ovh.DomainZoneDynhostRecordArgs{\n\t\t\tZoneName:  pulumi.String(\"mydomain.ovh\"),\n\t\t\tSubDomain: pulumi.String(\"dynhost\"),\n\t\t\tIp:        pulumi.String(\"1.2.3.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.ovhcloud.pulumi.ovh.DomainZoneDynhostRecord;\nimport com.ovhcloud.pulumi.ovh.DomainZoneDynhostRecordArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var dynhostRecord = new DomainZoneDynhostRecord(\"dynhostRecord\", DomainZoneDynhostRecordArgs.builder()\n            .zoneName(\"mydomain.ovh\")\n            .subDomain(\"dynhost\")\n            .ip(\"1.2.3.4\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  dynhostRecord:\n    type: ovh:DomainZoneDynhostRecord\n    name: dynhost_record\n    properties:\n      zoneName: mydomain.ovh\n      subDomain: dynhost\n      ip: 1.2.3.4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"ip":{"type":"string","description":"Record IP\n"},"subDomain":{"type":"string","description":"Record sub-domain\n"},"ttl":{"type":"number","description":"Record TTL (Time to Live)\n"},"zone":{"type":"string","description":"Record zone\n"},"zoneName":{"type":"string","description":"Zone name\n"}},"required":["ip","subDomain","ttl","zone","zoneName"],"inputProperties":{"ip":{"type":"string","description":"Record IP\n"},"subDomain":{"type":"string","description":"Record sub-domain\n"},"zoneName":{"type":"string","description":"Zone name\n"}},"requiredInputs":["zoneName"],"stateInputs":{"description":"Input properties used for looking up and filtering DomainZoneDynhostRecord resources.\n","properties":{"ip":{"type":"string","description":"Record IP\n"},"subDomain":{"type":"string","description":"Record sub-domain\n"},"ttl":{"type":"number","description":"Record TTL (Time to Live)\n"},"zone":{"type":"string","description":"Record zone\n"},"zoneName":{"type":"string","description":"Zone name\n"}},"type":"object"}},"ovh:index/iamResourceTags:IamResourceTags":{"description":"\n\n## Import\n\nIAM resource tags can be imported using the resource URN:\n\nbash\n\n```sh\n$ pulumi import ovh:index/iamResourceTags:IamResourceTags my_tags \"urn:v1:eu:resource:cloudProject:1234567890abcdef\"\n```\n\nAfter importing, you should update your Terraform configuration to match the imported state. The import will bring in all tags currently applied to the resource, but only tags defined in your configuration will be managed by Terraform.\n\n","properties":{"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags to apply to the resource. Each tag consists of a key-value pair. Tag keys must match the pattern `^[a-zA-Z0-9_.:/=+@-]{1,128}$` (1-128 characters) and values must match `^[a-zA-Z0-9_.:/=+@-]{0,256}$` (0-256 characters). Both keys and values can contain alphanumeric characters, underscores, dots, colons, slashes, equals signs, plus signs, at signs, and hyphens. **Note:** Tags with keys prefixed by `ovh:` are managed by OVH and cannot be set via the API.\n"},"urn":{"type":"string","description":"The URN (Uniform Resource Name) of the resource to manage tags for. Changing this forces a new resource to be created. The URN format is typically `urn:v1:{region}:resource:{resourceType}:{resourceId}`.\n"}},"required":["urn"],"inputProperties":{"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags to apply to the resource. Each tag consists of a key-value pair. Tag keys must match the pattern `^[a-zA-Z0-9_.:/=+@-]{1,128}$` (1-128 characters) and values must match `^[a-zA-Z0-9_.:/=+@-]{0,256}$` (0-256 characters). Both keys and values can contain alphanumeric characters, underscores, dots, colons, slashes, equals signs, plus signs, at signs, and hyphens. **Note:** Tags with keys prefixed by `ovh:` are managed by OVH and cannot be set via the API.\n"},"urn":{"type":"string","description":"The URN (Uniform Resource Name) of the resource to manage tags for. Changing this forces a new resource to be created. The URN format is typically `urn:v1:{region}:resource:{resourceType}:{resourceId}`.\n","willReplaceOnChanges":true}},"requiredInputs":["urn"],"stateInputs":{"description":"Input properties used for looking up and filtering IamResourceTags resources.\n","properties":{"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags to apply to the resource. Each tag consists of a key-value pair. Tag keys must match the pattern `^[a-zA-Z0-9_.:/=+@-]{1,128}$` (1-128 characters) and values must match `^[a-zA-Z0-9_.:/=+@-]{0,256}$` (0-256 characters). Both keys and values can contain alphanumeric characters, underscores, dots, colons, slashes, equals signs, plus signs, at signs, and hyphens. **Note:** Tags with keys prefixed by `ovh:` are managed by OVH and cannot be set via the API.\n"},"urn":{"type":"string","description":"The URN (Uniform Resource Name) of the resource to manage tags for. Changing this forces a new resource to be created. The URN format is typically `urn:v1:{region}:resource:{resourceType}:{resourceId}`.\n","willReplaceOnChanges":true}},"type":"object"}},"ovh:index/ovhcloudConnectPopConfig:OvhcloudConnectPopConfig":{"description":"Creates a pop configuration for an Ovhcloud Connect product.\n\nPlease take a look at the list of available `types` in the `Required` section in order to know the list of available type configurations.\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 occ = ovh.OVHcloud.Connect({\n    serviceName: \"XXX\",\n});\nconst pop = new ovh.OvhcloudConnectPopConfig(\"pop\", {\n    serviceName: occ.then(occ =\u003e occ.serviceName),\n    interfaceId: occ.then(occ =\u003e occ.interfaceLists?.[0]),\n    type: \"l3\",\n    customerBgpArea: 65400,\n    ovhBgpArea: 65401,\n    subnet: \"I.I.I.I/30\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nocc = ovh.OVHcloud.connect(service_name=\"XXX\")\npop = ovh.OvhcloudConnectPopConfig(\"pop\",\n    service_name=occ.service_name,\n    interface_id=occ.interface_lists[0],\n    type=\"l3\",\n    customer_bgp_area=65400,\n    ovh_bgp_area=65401,\n    subnet=\"I.I.I.I/30\")\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 occ = Ovh.OVHcloud.Connect.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n    });\n\n    var pop = new Ovh.OvhcloudConnectPopConfig(\"pop\", new()\n    {\n        ServiceName = occ.Apply(connectResult =\u003e connectResult.ServiceName),\n        InterfaceId = occ.Apply(connectResult =\u003e connectResult.InterfaceLists[0]),\n        Type = \"l3\",\n        CustomerBgpArea = 65400,\n        OvhBgpArea = 65401,\n        Subnet = \"I.I.I.I/30\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/ovhcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tocc, err := ovhcloud.Connect(ctx, \u0026ovhcloud.ConnectArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ovh.NewOvhcloudConnectPopConfig(ctx, \"pop\", \u0026ovh.OvhcloudConnectPopConfigArgs{\n\t\t\tServiceName:     pulumi.String(occ.ServiceName),\n\t\t\tInterfaceId:     pulumi.Float64(occ.InterfaceLists[0]),\n\t\t\tType:            pulumi.String(\"l3\"),\n\t\t\tCustomerBgpArea: pulumi.Float64(65400),\n\t\t\tOvhBgpArea:      pulumi.Float64(65401),\n\t\t\tSubnet:          pulumi.String(\"I.I.I.I/30\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.OVHcloud.OVHcloudFunctions;\nimport com.pulumi.ovh.OVHcloud.inputs.ConnectArgs;\nimport com.ovhcloud.pulumi.ovh.OvhcloudConnectPopConfig;\nimport com.ovhcloud.pulumi.ovh.OvhcloudConnectPopConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 occ = OVHcloudFunctions.Connect(ConnectArgs.builder()\n            .serviceName(\"XXX\")\n            .build());\n\n        var pop = new OvhcloudConnectPopConfig(\"pop\", OvhcloudConnectPopConfigArgs.builder()\n            .serviceName(occ.serviceName())\n            .interfaceId(occ.interfaceLists()[0])\n            .type(\"l3\")\n            .customerBgpArea(65400.0)\n            .ovhBgpArea(65401.0)\n            .subnet(\"I.I.I.I/30\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  pop:\n    type: ovh:OvhcloudConnectPopConfig\n    properties:\n      serviceName: ${occ.serviceName}\n      interfaceId: ${occ.interfaceLists[0]}\n      type: l3\n      customerBgpArea: 65400\n      ovhBgpArea: 65401\n      subnet: I.I.I.I/30\nvariables:\n  occ:\n    fn::invoke:\n      function: ovh:OVHcloud:Connect\n      arguments:\n        serviceName: XXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"customerBgpArea":{"type":"number","description":"Customer Private AS\n"},"interfaceId":{"type":"number","description":"ID of the interface\n"},"ovhBgpArea":{"type":"number","description":"OVH Private AS\n"},"serviceName":{"type":"string","description":"Service name\n"},"status":{"type":"string","description":"Status of the pop configuration\n"},"subnet":{"type":"string","description":"Subnet should be a /30, first IP for OVH, second IP for customer\n"},"type":{"type":"string","description":"Type of the pop configuration\n"}},"required":["customerBgpArea","interfaceId","ovhBgpArea","serviceName","status","subnet","type"],"inputProperties":{"customerBgpArea":{"type":"number","description":"Customer Private AS\n"},"interfaceId":{"type":"number","description":"ID of the interface\n"},"ovhBgpArea":{"type":"number","description":"OVH Private AS\n"},"serviceName":{"type":"string","description":"Service name\n"},"subnet":{"type":"string","description":"Subnet should be a /30, first IP for OVH, second IP for customer\n"},"type":{"type":"string","description":"Type of the pop configuration\n"}},"requiredInputs":["interfaceId","serviceName","type"],"stateInputs":{"description":"Input properties used for looking up and filtering OvhcloudConnectPopConfig resources.\n","properties":{"customerBgpArea":{"type":"number","description":"Customer Private AS\n"},"interfaceId":{"type":"number","description":"ID of the interface\n"},"ovhBgpArea":{"type":"number","description":"OVH Private AS\n"},"serviceName":{"type":"string","description":"Service name\n"},"status":{"type":"string","description":"Status of the pop configuration\n"},"subnet":{"type":"string","description":"Subnet should be a /30, first IP for OVH, second IP for customer\n"},"type":{"type":"string","description":"Type of the pop configuration\n"}},"type":"object"}},"ovh:index/ovhcloudConnectPopDatacenterConfig:OvhcloudConnectPopDatacenterConfig":{"description":"Creates a datacenter configuration for an Ovhcloud Connect product.\n\nFor the `datacenter_id` in the `Required` section, you will need to choose an available datacenter from the data-source `ovh.getOvhcloudConnectDatacenters`.\n\n","properties":{"configPopId":{"type":"number","description":"ID of the pop configuration\n"},"datacenterId":{"type":"number","description":"ID of the datacenter linked\n"},"ovhBgpArea":{"type":"number","description":"OVH Private AS\n"},"serviceName":{"type":"string","description":"Service name\n"},"status":{"type":"string","description":"Status of the pop configuration\n"},"subnet":{"type":"string","description":"Subnet should be a /28 min\n"}},"required":["configPopId","datacenterId","ovhBgpArea","serviceName","status","subnet"],"inputProperties":{"configPopId":{"type":"number","description":"ID of the pop configuration\n"},"datacenterId":{"type":"number","description":"ID of the datacenter linked\n"},"ovhBgpArea":{"type":"number","description":"OVH Private AS\n"},"serviceName":{"type":"string","description":"Service name\n"},"subnet":{"type":"string","description":"Subnet should be a /28 min\n"}},"requiredInputs":["configPopId","datacenterId","serviceName"],"stateInputs":{"description":"Input properties used for looking up and filtering OvhcloudConnectPopDatacenterConfig resources.\n","properties":{"configPopId":{"type":"number","description":"ID of the pop configuration\n"},"datacenterId":{"type":"number","description":"ID of the datacenter linked\n"},"ovhBgpArea":{"type":"number","description":"OVH Private AS\n"},"serviceName":{"type":"string","description":"Service name\n"},"status":{"type":"string","description":"Status of the pop configuration\n"},"subnet":{"type":"string","description":"Subnet should be a /28 min\n"}},"type":"object"}},"ovh:index/ovhcloudConnectPopDatacenterExtraConfig:OvhcloudConnectPopDatacenterExtraConfig":{"description":"Creates an extra datacenter configuration for an Ovhcloud Connect product.\n\nPlease take a look at the list of available `types` in the `Required` section in order to know the list of available type configurations.\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 popCfgs = ovh.getOvhcloudConnectConfigPops({\n    serviceName: \"XXX\",\n});\nconst datacenterCfgs = Promise.all([popCfgs, popCfgs]).then(([popCfgs, popCfgs1]) =\u003e ovh.getOvhcloudConnectConfigPopDatacenters({\n    serviceName: popCfgs.serviceName,\n    configPopId: popCfgs1.popConfigs?.[0]?.id,\n}));\nconst extra = new ovh.OvhcloudConnectPopDatacenterExtraConfig(\"extra\", {\n    serviceName: popCfgs.then(popCfgs =\u003e popCfgs.serviceName),\n    configPopId: popCfgs.then(popCfgs =\u003e popCfgs.popConfigs?.[0]?.id),\n    configDatacenterId: datacenterCfgs.then(datacenterCfgs =\u003e datacenterCfgs.datacenterConfigs?.[0]?.id),\n    type: \"network\",\n    nextHop: \"P.P.P.P\",\n    subnet: \"I.I.I.I/M\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\npop_cfgs = ovh.get_ovhcloud_connect_config_pops(service_name=\"XXX\")\ndatacenter_cfgs = ovh.get_ovhcloud_connect_config_pop_datacenters(service_name=pop_cfgs.service_name,\n    config_pop_id=pop_cfgs.pop_configs[0].id)\nextra = ovh.OvhcloudConnectPopDatacenterExtraConfig(\"extra\",\n    service_name=pop_cfgs.service_name,\n    config_pop_id=pop_cfgs.pop_configs[0].id,\n    config_datacenter_id=datacenter_cfgs.datacenter_configs[0].id,\n    type=\"network\",\n    next_hop=\"P.P.P.P\",\n    subnet=\"I.I.I.I/M\")\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 popCfgs = Ovh.GetOvhcloudConnectConfigPops.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n    });\n\n    var datacenterCfgs = Ovh.GetOvhcloudConnectConfigPopDatacenters.Invoke(new()\n    {\n        ServiceName = popCfgs.Apply(getOvhcloudConnectConfigPopsResult =\u003e getOvhcloudConnectConfigPopsResult.ServiceName),\n        ConfigPopId = popCfgs.Apply(getOvhcloudConnectConfigPopsResult =\u003e getOvhcloudConnectConfigPopsResult.PopConfigs[0]?.Id),\n    });\n\n    var extra = new Ovh.OvhcloudConnectPopDatacenterExtraConfig(\"extra\", new()\n    {\n        ServiceName = popCfgs.Apply(getOvhcloudConnectConfigPopsResult =\u003e getOvhcloudConnectConfigPopsResult.ServiceName),\n        ConfigPopId = popCfgs.Apply(getOvhcloudConnectConfigPopsResult =\u003e getOvhcloudConnectConfigPopsResult.PopConfigs[0]?.Id),\n        ConfigDatacenterId = datacenterCfgs.Apply(getOvhcloudConnectConfigPopDatacentersResult =\u003e getOvhcloudConnectConfigPopDatacentersResult.DatacenterConfigs[0]?.Id),\n        Type = \"network\",\n        NextHop = \"P.P.P.P\",\n        Subnet = \"I.I.I.I/M\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpopCfgs, err := ovh.GetOvhcloudConnectConfigPops(ctx, \u0026ovh.GetOvhcloudConnectConfigPopsArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdatacenterCfgs, err := ovh.GetOvhcloudConnectConfigPopDatacenters(ctx, \u0026ovh.GetOvhcloudConnectConfigPopDatacentersArgs{\n\t\t\tServiceName: popCfgs.ServiceName,\n\t\t\tConfigPopId: popCfgs.PopConfigs[0].Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ovh.NewOvhcloudConnectPopDatacenterExtraConfig(ctx, \"extra\", \u0026ovh.OvhcloudConnectPopDatacenterExtraConfigArgs{\n\t\t\tServiceName:        pulumi.String(popCfgs.ServiceName),\n\t\t\tConfigPopId:        pulumi.Float64(popCfgs.PopConfigs[0].Id),\n\t\t\tConfigDatacenterId: pulumi.Float64(datacenterCfgs.DatacenterConfigs[0].Id),\n\t\t\tType:               pulumi.String(\"network\"),\n\t\t\tNextHop:            pulumi.String(\"P.P.P.P\"),\n\t\t\tSubnet:             pulumi.String(\"I.I.I.I/M\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetOvhcloudConnectConfigPopsArgs;\nimport com.pulumi.ovh.inputs.GetOvhcloudConnectConfigPopDatacentersArgs;\nimport com.ovhcloud.pulumi.ovh.OvhcloudConnectPopDatacenterExtraConfig;\nimport com.ovhcloud.pulumi.ovh.OvhcloudConnectPopDatacenterExtraConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 popCfgs = OvhFunctions.getOvhcloudConnectConfigPops(GetOvhcloudConnectConfigPopsArgs.builder()\n            .serviceName(\"XXX\")\n            .build());\n\n        final var datacenterCfgs = OvhFunctions.getOvhcloudConnectConfigPopDatacenters(GetOvhcloudConnectConfigPopDatacentersArgs.builder()\n            .serviceName(popCfgs.serviceName())\n            .configPopId(popCfgs.popConfigs()[0].id())\n            .build());\n\n        var extra = new OvhcloudConnectPopDatacenterExtraConfig(\"extra\", OvhcloudConnectPopDatacenterExtraConfigArgs.builder()\n            .serviceName(popCfgs.serviceName())\n            .configPopId(popCfgs.popConfigs()[0].id())\n            .configDatacenterId(datacenterCfgs.datacenterConfigs()[0].id())\n            .type(\"network\")\n            .nextHop(\"P.P.P.P\")\n            .subnet(\"I.I.I.I/M\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  extra:\n    type: ovh:OvhcloudConnectPopDatacenterExtraConfig\n    properties:\n      serviceName: ${popCfgs.serviceName}\n      configPopId: ${popCfgs.popConfigs[0].id}\n      configDatacenterId: ${datacenterCfgs.datacenterConfigs[0].id}\n      type: network\n      nextHop: P.P.P.P\n      subnet: I.I.I.I/M\nvariables:\n  popCfgs:\n    fn::invoke:\n      function: ovh:getOvhcloudConnectConfigPops\n      arguments:\n        serviceName: XXX\n  datacenterCfgs:\n    fn::invoke:\n      function: ovh:getOvhcloudConnectConfigPopDatacenters\n      arguments:\n        serviceName: ${popCfgs.serviceName}\n        configPopId: ${popCfgs.popConfigs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"bgpNeighborArea":{"type":"number","description":"BGP AS number\n"},"bgpNeighborIp":{"type":"string","description":"Router IP for BGP\n"},"configDatacenterId":{"type":"number","description":"ID of the datacenter configuration\n"},"configPopId":{"type":"number","description":"ID of the pop configuration\n"},"nextHop":{"type":"string","description":"Static route next hop\n"},"serviceName":{"type":"string","description":"Service name\n"},"status":{"type":"string","description":"Status of the pop configuration\n"},"subnet":{"type":"string","description":"Static route ip\n"},"type":{"type":"string","description":"Type of the configuration\n"}},"required":["bgpNeighborArea","bgpNeighborIp","configDatacenterId","configPopId","nextHop","serviceName","status","subnet","type"],"inputProperties":{"bgpNeighborArea":{"type":"number","description":"BGP AS number\n"},"bgpNeighborIp":{"type":"string","description":"Router IP for BGP\n"},"configDatacenterId":{"type":"number","description":"ID of the datacenter configuration\n"},"configPopId":{"type":"number","description":"ID of the pop configuration\n"},"nextHop":{"type":"string","description":"Static route next hop\n"},"serviceName":{"type":"string","description":"Service name\n"},"subnet":{"type":"string","description":"Static route ip\n"},"type":{"type":"string","description":"Type of the configuration\n"}},"requiredInputs":["configDatacenterId","configPopId","serviceName","type"],"stateInputs":{"description":"Input properties used for looking up and filtering OvhcloudConnectPopDatacenterExtraConfig resources.\n","properties":{"bgpNeighborArea":{"type":"number","description":"BGP AS number\n"},"bgpNeighborIp":{"type":"string","description":"Router IP for BGP\n"},"configDatacenterId":{"type":"number","description":"ID of the datacenter configuration\n"},"configPopId":{"type":"number","description":"ID of the pop configuration\n"},"nextHop":{"type":"string","description":"Static route next hop\n"},"serviceName":{"type":"string","description":"Service name\n"},"status":{"type":"string","description":"Status of the pop configuration\n"},"subnet":{"type":"string","description":"Static route ip\n"},"type":{"type":"string","description":"Type of the configuration\n"}},"type":"object"}},"ovh:index/storageEfs:StorageEfs":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  efs:\n    type: ovh:StorageEfs\n    properties:\n      name: MyEFS\n      ovhSubsidiary: ${myAccount.ovhSubsidiary}\n      plans:\n        - plan_code: enterprise-file-storage-premium-1tb\n          duration: P1M\n          pricing_mode: default\n          configuration:\n            - label: region\n              value: eu-west-gra\n            - label: network\n              value: vrack\nvariables:\n  myAccount:\n    fn::invoke:\n      function: ovh:Me:getMe\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAn Enterprise File Storage service can be imported using its `id`. Using the following configuration:\n\nterraform\n\nimport {\n\n  to = ovh_storage_efs.efs\n\n  id = \"xxx-xxx-xxx-xxx-xxx\"\n\n}\n\nYou can then run:\n\nbash\n\n$ pulumi preview -generate-config-out=efs.tf\n\n$ pulumi up\n\nThe file `efs.tf` will then contain the imported resource's configuration, that can be copied next to the `import` block above. See https://developer.hashicorp.com/terraform/language/import/generating-configuration for more details.\n\n","properties":{"createdAt":{"type":"string","description":"Service creation date\n"},"iam":{"$ref":"#/types/ovh:index/StorageEfsIam:StorageEfsIam","description":"IAM resource metadata\n"},"name":{"type":"string","description":"Custom service display name\n"},"order":{"$ref":"#/types/ovh:index/StorageEfsOrder:StorageEfsOrder","description":"Details about an Order\n"},"ovhSubsidiary":{"type":"string","description":"OVH subsidiaries\n"},"performanceLevel":{"type":"string","description":"Service performance level\n"},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:index/StorageEfsPlanOption:StorageEfsPlanOption"}},"plans":{"type":"array","items":{"$ref":"#/types/ovh:index/StorageEfsPlan:StorageEfsPlan"}},"product":{"type":"string","description":"Product name\n"},"quota":{"type":"number","description":"Service quota\n"},"region":{"type":"string","description":"Service region\n"},"serviceName":{"type":"string","description":"Service name (same as `id`)\n"},"status":{"type":"string","description":"Service status\n"}},"required":["createdAt","iam","name","order","performanceLevel","product","quota","region","serviceName","status"],"inputProperties":{"name":{"type":"string","description":"Custom service display name\n"},"ovhSubsidiary":{"type":"string","description":"OVH subsidiaries\n"},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:index/StorageEfsPlanOption:StorageEfsPlanOption"}},"plans":{"type":"array","items":{"$ref":"#/types/ovh:index/StorageEfsPlan:StorageEfsPlan"}}},"stateInputs":{"description":"Input properties used for looking up and filtering StorageEfs resources.\n","properties":{"createdAt":{"type":"string","description":"Service creation date\n"},"iam":{"$ref":"#/types/ovh:index/StorageEfsIam:StorageEfsIam","description":"IAM resource metadata\n"},"name":{"type":"string","description":"Custom service display name\n"},"order":{"$ref":"#/types/ovh:index/StorageEfsOrder:StorageEfsOrder","description":"Details about an Order\n"},"ovhSubsidiary":{"type":"string","description":"OVH subsidiaries\n"},"performanceLevel":{"type":"string","description":"Service performance level\n"},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:index/StorageEfsPlanOption:StorageEfsPlanOption"}},"plans":{"type":"array","items":{"$ref":"#/types/ovh:index/StorageEfsPlan:StorageEfsPlan"}},"product":{"type":"string","description":"Product name\n"},"quota":{"type":"number","description":"Service quota\n"},"region":{"type":"string","description":"Service region\n"},"serviceName":{"type":"string","description":"Service name (same as `id`)\n"},"status":{"type":"string","description":"Service status\n"}},"type":"object"}},"ovh:index/storageEfsShare:StorageEfsShare":{"description":"Creates a share for an EFS service.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst efs = ovh.getStorageEfs({\n    serviceName: \"XXX\",\n});\nconst share = new ovh.StorageEfsShare(\"share\", {\n    serviceName: efs.then(efs =\u003e efs.serviceName),\n    name: \"share\",\n    description: \"My share\",\n    protocol: \"NFS\",\n    size: 100,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nefs = ovh.get_storage_efs(service_name=\"XXX\")\nshare = ovh.StorageEfsShare(\"share\",\n    service_name=efs.service_name,\n    name=\"share\",\n    description=\"My share\",\n    protocol=\"NFS\",\n    size=100)\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 efs = Ovh.GetStorageEfs.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n    });\n\n    var share = new Ovh.StorageEfsShare(\"share\", new()\n    {\n        ServiceName = efs.Apply(getStorageEfsResult =\u003e getStorageEfsResult.ServiceName),\n        Name = \"share\",\n        Description = \"My share\",\n        Protocol = \"NFS\",\n        Size = 100,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tefs, err := ovh.LookupStorageEfs(ctx, \u0026ovh.LookupStorageEfsArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ovh.NewStorageEfsShare(ctx, \"share\", \u0026ovh.StorageEfsShareArgs{\n\t\t\tServiceName: pulumi.String(efs.ServiceName),\n\t\t\tName:        pulumi.String(\"share\"),\n\t\t\tDescription: pulumi.String(\"My share\"),\n\t\t\tProtocol:    pulumi.String(\"NFS\"),\n\t\t\tSize:        pulumi.Float64(100),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetStorageEfsArgs;\nimport com.ovhcloud.pulumi.ovh.StorageEfsShare;\nimport com.ovhcloud.pulumi.ovh.StorageEfsShareArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 efs = OvhFunctions.getStorageEfs(GetStorageEfsArgs.builder()\n            .serviceName(\"XXX\")\n            .build());\n\n        var share = new StorageEfsShare(\"share\", StorageEfsShareArgs.builder()\n            .serviceName(efs.serviceName())\n            .name(\"share\")\n            .description(\"My share\")\n            .protocol(\"NFS\")\n            .size(100.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  share:\n    type: ovh:StorageEfsShare\n    properties:\n      serviceName: ${efs.serviceName}\n      name: share\n      description: My share\n      protocol: NFS\n      size: 100\nvariables:\n  efs:\n    fn::invoke:\n      function: ovh:getStorageEfs\n      arguments:\n        serviceName: XXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"createdAt":{"type":"string","description":"Share creation date\n"},"description":{"type":"string","description":"Share description\n"},"mountPointName":{"type":"string","description":"User-defined name used to generate human readable access path for the share\n"},"name":{"type":"string","description":"Share name\n"},"protocol":{"type":"string","description":"Share protocol\n"},"serviceName":{"type":"string","description":"Service name\n"},"size":{"type":"number","description":"Share size in Gigabytes\n"},"snapshotId":{"type":"string","description":"Snapshot ID used to create the share\n"},"status":{"type":"string","description":"Share status\n"}},"required":["createdAt","description","mountPointName","name","protocol","serviceName","size","snapshotId","status"],"inputProperties":{"description":{"type":"string","description":"Share description\n"},"mountPointName":{"type":"string","description":"User-defined name used to generate human readable access path for the share\n"},"name":{"type":"string","description":"Share name\n"},"protocol":{"type":"string","description":"Share protocol\n"},"serviceName":{"type":"string","description":"Service name\n"},"size":{"type":"number","description":"Share size in Gigabytes\n"},"snapshotId":{"type":"string","description":"Snapshot ID used to create the share\n"}},"requiredInputs":["protocol","serviceName","size"],"stateInputs":{"description":"Input properties used for looking up and filtering StorageEfsShare resources.\n","properties":{"createdAt":{"type":"string","description":"Share creation date\n"},"description":{"type":"string","description":"Share description\n"},"mountPointName":{"type":"string","description":"User-defined name used to generate human readable access path for the share\n"},"name":{"type":"string","description":"Share name\n"},"protocol":{"type":"string","description":"Share protocol\n"},"serviceName":{"type":"string","description":"Service name\n"},"size":{"type":"number","description":"Share size in Gigabytes\n"},"snapshotId":{"type":"string","description":"Snapshot ID used to create the share\n"},"status":{"type":"string","description":"Share status\n"}},"type":"object"}},"ovh:index/storageEfsShareAcl:StorageEfsShareAcl":{"description":"Creates an ACL rule for an EFS share.\n\nPlease take a look at the list of available `access_level` values in the `Required` section in order to know the list of supported access level configurations.\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 efs = ovh.getStorageEfs({\n    serviceName: \"XXX\",\n});\nconst share = new ovh.StorageEfsShare(\"share\", {\n    serviceName: efs.then(efs =\u003e efs.serviceName),\n    name: \"share\",\n    description: \"My share\",\n    protocol: \"NFS\",\n    size: 100,\n});\nconst acl = new ovh.StorageEfsShareAcl(\"acl\", {\n    serviceName: efs.then(efs =\u003e efs.serviceName),\n    shareId: share.id,\n    accessLevel: \"ro\",\n    accessTo: \"10.0.0.1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nefs = ovh.get_storage_efs(service_name=\"XXX\")\nshare = ovh.StorageEfsShare(\"share\",\n    service_name=efs.service_name,\n    name=\"share\",\n    description=\"My share\",\n    protocol=\"NFS\",\n    size=100)\nacl = ovh.StorageEfsShareAcl(\"acl\",\n    service_name=efs.service_name,\n    share_id=share.id,\n    access_level=\"ro\",\n    access_to=\"10.0.0.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 efs = Ovh.GetStorageEfs.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n    });\n\n    var share = new Ovh.StorageEfsShare(\"share\", new()\n    {\n        ServiceName = efs.Apply(getStorageEfsResult =\u003e getStorageEfsResult.ServiceName),\n        Name = \"share\",\n        Description = \"My share\",\n        Protocol = \"NFS\",\n        Size = 100,\n    });\n\n    var acl = new Ovh.StorageEfsShareAcl(\"acl\", new()\n    {\n        ServiceName = efs.Apply(getStorageEfsResult =\u003e getStorageEfsResult.ServiceName),\n        ShareId = share.Id,\n        AccessLevel = \"ro\",\n        AccessTo = \"10.0.0.1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tefs, err := ovh.LookupStorageEfs(ctx, \u0026ovh.LookupStorageEfsArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tshare, err := ovh.NewStorageEfsShare(ctx, \"share\", \u0026ovh.StorageEfsShareArgs{\n\t\t\tServiceName: pulumi.String(efs.ServiceName),\n\t\t\tName:        pulumi.String(\"share\"),\n\t\t\tDescription: pulumi.String(\"My share\"),\n\t\t\tProtocol:    pulumi.String(\"NFS\"),\n\t\t\tSize:        pulumi.Float64(100),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ovh.NewStorageEfsShareAcl(ctx, \"acl\", \u0026ovh.StorageEfsShareAclArgs{\n\t\t\tServiceName: pulumi.String(efs.ServiceName),\n\t\t\tShareId:     share.ID(),\n\t\t\tAccessLevel: pulumi.String(\"ro\"),\n\t\t\tAccessTo:    pulumi.String(\"10.0.0.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.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetStorageEfsArgs;\nimport com.ovhcloud.pulumi.ovh.StorageEfsShare;\nimport com.ovhcloud.pulumi.ovh.StorageEfsShareArgs;\nimport com.ovhcloud.pulumi.ovh.StorageEfsShareAcl;\nimport com.ovhcloud.pulumi.ovh.StorageEfsShareAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 efs = OvhFunctions.getStorageEfs(GetStorageEfsArgs.builder()\n            .serviceName(\"XXX\")\n            .build());\n\n        var share = new StorageEfsShare(\"share\", StorageEfsShareArgs.builder()\n            .serviceName(efs.serviceName())\n            .name(\"share\")\n            .description(\"My share\")\n            .protocol(\"NFS\")\n            .size(100.0)\n            .build());\n\n        var acl = new StorageEfsShareAcl(\"acl\", StorageEfsShareAclArgs.builder()\n            .serviceName(efs.serviceName())\n            .shareId(share.id())\n            .accessLevel(\"ro\")\n            .accessTo(\"10.0.0.1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  share:\n    type: ovh:StorageEfsShare\n    properties:\n      serviceName: ${efs.serviceName}\n      name: share\n      description: My share\n      protocol: NFS\n      size: 100\n  acl:\n    type: ovh:StorageEfsShareAcl\n    properties:\n      serviceName: ${efs.serviceName}\n      shareId: ${share.id}\n      accessLevel: ro\n      accessTo: 10.0.0.1\nvariables:\n  efs:\n    fn::invoke:\n      function: ovh:getStorageEfs\n      arguments:\n        serviceName: XXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"accessLevel":{"type":"string","description":"Rule access level\n"},"accessTo":{"type":"string","description":"Rule destination\n"},"accessType":{"type":"string","description":"Rule access type\n"},"createdAt":{"type":"string","description":"Rule creation date\n"},"serviceName":{"type":"string","description":"Service name\n"},"shareId":{"type":"string","description":"Share ID\n"},"status":{"type":"string","description":"Rule status\n"}},"required":["accessLevel","accessTo","accessType","createdAt","serviceName","shareId","status"],"inputProperties":{"accessLevel":{"type":"string","description":"Rule access level\n"},"accessTo":{"type":"string","description":"Rule destination\n"},"serviceName":{"type":"string","description":"Service name\n"},"shareId":{"type":"string","description":"Share ID\n"}},"requiredInputs":["accessLevel","accessTo","serviceName","shareId"],"stateInputs":{"description":"Input properties used for looking up and filtering StorageEfsShareAcl resources.\n","properties":{"accessLevel":{"type":"string","description":"Rule access level\n"},"accessTo":{"type":"string","description":"Rule destination\n"},"accessType":{"type":"string","description":"Rule access type\n"},"createdAt":{"type":"string","description":"Rule creation date\n"},"serviceName":{"type":"string","description":"Service name\n"},"shareId":{"type":"string","description":"Share ID\n"},"status":{"type":"string","description":"Rule status\n"}},"type":"object"}},"ovh:index/storageEfsShareSnapshot:StorageEfsShareSnapshot":{"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 time from \"@pulumi/time\";\n\nconst efs = ovh.getStorageEfs({\n    serviceName: \"XXX\",\n});\n// This resource will destroy (at least) 10 seconds after ovh_storage_efs_share_snapshot resource\nconst share = new ovh.StorageEfsShare(\"share\", {\n    serviceName: efs.then(efs =\u003e efs.serviceName),\n    name: \"share\",\n    description: \"My share\",\n    protocol: \"NFS\",\n    size: 100,\n});\n// This resource adds a delay between ovh_storage_efs_share_snapshot and ovh_storage_efs_share resources destruction\nconst wait10Seconds = new time.index.Sleep(\"wait_10_seconds\", {destroyDuration: \"10s\"}, {\n    dependsOn: [share],\n});\nconst snapshot = new ovh.StorageEfsShareSnapshot(\"snapshot\", {\n    serviceName: efs.then(efs =\u003e efs.serviceName),\n    shareId: share.id,\n    name: \"snapshot\",\n    description: \"My snapshot\",\n}, {\n    dependsOn: [wait10Seconds],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\nimport pulumi_time as time\n\nefs = ovh.get_storage_efs(service_name=\"XXX\")\n# This resource will destroy (at least) 10 seconds after ovh_storage_efs_share_snapshot resource\nshare = ovh.StorageEfsShare(\"share\",\n    service_name=efs.service_name,\n    name=\"share\",\n    description=\"My share\",\n    protocol=\"NFS\",\n    size=100)\n# This resource adds a delay between ovh_storage_efs_share_snapshot and ovh_storage_efs_share resources destruction\nwait10_seconds = time.index.Sleep(\"wait_10_seconds\", destroy_duration=10s,\nopts = pulumi.ResourceOptions(depends_on=[share]))\nsnapshot = ovh.StorageEfsShareSnapshot(\"snapshot\",\n    service_name=efs.service_name,\n    share_id=share.id,\n    name=\"snapshot\",\n    description=\"My snapshot\",\n    opts = pulumi.ResourceOptions(depends_on=[wait10_seconds]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\nusing Time = Pulumi.Time;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var efs = Ovh.GetStorageEfs.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n    });\n\n    // This resource will destroy (at least) 10 seconds after ovh_storage_efs_share_snapshot resource\n    var share = new Ovh.StorageEfsShare(\"share\", new()\n    {\n        ServiceName = efs.Apply(getStorageEfsResult =\u003e getStorageEfsResult.ServiceName),\n        Name = \"share\",\n        Description = \"My share\",\n        Protocol = \"NFS\",\n        Size = 100,\n    });\n\n    // This resource adds a delay between ovh_storage_efs_share_snapshot and ovh_storage_efs_share resources destruction\n    var wait10Seconds = new Time.Index.Sleep(\"wait_10_seconds\", new()\n    {\n        DestroyDuration = \"10s\",\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            share,\n        },\n    });\n\n    var snapshot = new Ovh.StorageEfsShareSnapshot(\"snapshot\", new()\n    {\n        ServiceName = efs.Apply(getStorageEfsResult =\u003e getStorageEfsResult.ServiceName),\n        ShareId = share.Id,\n        Name = \"snapshot\",\n        Description = \"My snapshot\",\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            wait10Seconds,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\n\t\"github.com/pulumi/pulumi-time/sdk/go/time\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tefs, err := ovh.LookupStorageEfs(ctx, \u0026ovh.LookupStorageEfsArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// This resource will destroy (at least) 10 seconds after ovh_storage_efs_share_snapshot resource\n\t\tshare, err := ovh.NewStorageEfsShare(ctx, \"share\", \u0026ovh.StorageEfsShareArgs{\n\t\t\tServiceName: pulumi.String(efs.ServiceName),\n\t\t\tName:        pulumi.String(\"share\"),\n\t\t\tDescription: pulumi.String(\"My share\"),\n\t\t\tProtocol:    pulumi.String(\"NFS\"),\n\t\t\tSize:        pulumi.Float64(100),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// This resource adds a delay between ovh_storage_efs_share_snapshot and ovh_storage_efs_share resources destruction\n\t\twait10Seconds, err := time.NewSleep(ctx, \"wait_10_seconds\", \u0026time.SleepArgs{\n\t\t\tDestroyDuration: \"10s\",\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tshare,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ovh.NewStorageEfsShareSnapshot(ctx, \"snapshot\", \u0026ovh.StorageEfsShareSnapshotArgs{\n\t\t\tServiceName: pulumi.String(efs.ServiceName),\n\t\t\tShareId:     share.ID(),\n\t\t\tName:        pulumi.String(\"snapshot\"),\n\t\t\tDescription: pulumi.String(\"My snapshot\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\twait10Seconds,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.GetStorageEfsArgs;\nimport com.ovhcloud.pulumi.ovh.StorageEfsShare;\nimport com.ovhcloud.pulumi.ovh.StorageEfsShareArgs;\nimport com.pulumi.time.sleep;\nimport com.pulumi.time.sleepArgs;\nimport com.ovhcloud.pulumi.ovh.StorageEfsShareSnapshot;\nimport com.ovhcloud.pulumi.ovh.StorageEfsShareSnapshotArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var efs = OvhFunctions.getStorageEfs(GetStorageEfsArgs.builder()\n            .serviceName(\"XXX\")\n            .build());\n\n        // This resource will destroy (at least) 10 seconds after ovh_storage_efs_share_snapshot resource\n        var share = new StorageEfsShare(\"share\", StorageEfsShareArgs.builder()\n            .serviceName(efs.serviceName())\n            .name(\"share\")\n            .description(\"My share\")\n            .protocol(\"NFS\")\n            .size(100.0)\n            .build());\n\n        // This resource adds a delay between ovh_storage_efs_share_snapshot and ovh_storage_efs_share resources destruction\n        var wait10Seconds = new Sleep(\"wait10Seconds\", SleepArgs.builder()\n            .destroyDuration(\"10s\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(List.of(share))\n                .build());\n\n        var snapshot = new StorageEfsShareSnapshot(\"snapshot\", StorageEfsShareSnapshotArgs.builder()\n            .serviceName(efs.serviceName())\n            .shareId(share.id())\n            .name(\"snapshot\")\n            .description(\"My snapshot\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(wait10Seconds)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # This resource will destroy (at least) 10 seconds after ovh_storage_efs_share_snapshot resource\n  share:\n    type: ovh:StorageEfsShare\n    properties:\n      serviceName: ${efs.serviceName}\n      name: share\n      description: My share\n      protocol: NFS\n      size: 100\n  snapshot:\n    type: ovh:StorageEfsShareSnapshot\n    properties:\n      serviceName: ${efs.serviceName}\n      shareId: ${share.id}\n      name: snapshot\n      description: My snapshot\n    options:\n      dependsOn:\n        - ${wait10Seconds}\n  # This resource adds a delay between ovh_storage_efs_share_snapshot and ovh_storage_efs_share resources destruction\n  wait10Seconds:\n    type: time:sleep\n    name: wait_10_seconds\n    properties:\n      destroyDuration: 10s\n    options:\n      dependsOn:\n        - ${share}\nvariables:\n  efs:\n    fn::invoke:\n      function: ovh:getStorageEfs\n      arguments:\n        serviceName: XXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"createdAt":{"type":"string","description":"Snapshot creation date\n"},"description":{"type":"string","description":"Snapshot description\n"},"name":{"type":"string","description":"Snapshot name\n"},"path":{"type":"string","description":"Snapshot path\n"},"serviceName":{"type":"string","description":"Service name\n"},"shareId":{"type":"string","description":"Share ID\n"},"status":{"type":"string","description":"Snapshot status\n"},"type":{"type":"string","description":"Snapshot type\n"}},"required":["createdAt","description","name","path","serviceName","shareId","status","type"],"inputProperties":{"description":{"type":"string","description":"Snapshot description\n"},"name":{"type":"string","description":"Snapshot name\n"},"serviceName":{"type":"string","description":"Service name\n"},"shareId":{"type":"string","description":"Share ID\n"}},"requiredInputs":["serviceName","shareId"],"stateInputs":{"description":"Input properties used for looking up and filtering StorageEfsShareSnapshot resources.\n","properties":{"createdAt":{"type":"string","description":"Snapshot creation date\n"},"description":{"type":"string","description":"Snapshot description\n"},"name":{"type":"string","description":"Snapshot name\n"},"path":{"type":"string","description":"Snapshot path\n"},"serviceName":{"type":"string","description":"Service name\n"},"shareId":{"type":"string","description":"Share ID\n"},"status":{"type":"string","description":"Snapshot status\n"},"type":{"type":"string","description":"Snapshot type\n"}},"type":"object"}},"ovh:index/vrackIpv6RoutedSubrange:VrackIpv6RoutedSubrange":{"description":"Route a subrange of your IP v6 block into your 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 vrackRoutedSubrange = new ovh.VrackIpv6RoutedSubrange(\"vrack_routed_subrange\", {\n    serviceName: \"\u003cvRack service name\u003e\",\n    block: \"\u003cipv6 block\u003e\",\n    routedSubrange: \"\u003crouted subrange\u003e\",\n    nexthop: \"\u003cnexthop\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nvrack_routed_subrange = ovh.VrackIpv6RoutedSubrange(\"vrack_routed_subrange\",\n    service_name=\"\u003cvRack service name\u003e\",\n    block=\"\u003cipv6 block\u003e\",\n    routed_subrange=\"\u003crouted subrange\u003e\",\n    nexthop=\"\u003cnexthop\u003e\")\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 vrackRoutedSubrange = new Ovh.VrackIpv6RoutedSubrange(\"vrack_routed_subrange\", new()\n    {\n        ServiceName = \"\u003cvRack service name\u003e\",\n        Block = \"\u003cipv6 block\u003e\",\n        RoutedSubrange = \"\u003crouted subrange\u003e\",\n        Nexthop = \"\u003cnexthop\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.NewVrackIpv6RoutedSubrange(ctx, \"vrack_routed_subrange\", \u0026ovh.VrackIpv6RoutedSubrangeArgs{\n\t\t\tServiceName:    pulumi.String(\"\u003cvRack service name\u003e\"),\n\t\t\tBlock:          pulumi.String(\"\u003cipv6 block\u003e\"),\n\t\t\tRoutedSubrange: pulumi.String(\"\u003crouted subrange\u003e\"),\n\t\t\tNexthop:        pulumi.String(\"\u003cnexthop\u003e\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.ovhcloud.pulumi.ovh.VrackIpv6RoutedSubrange;\nimport com.ovhcloud.pulumi.ovh.VrackIpv6RoutedSubrangeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var vrackRoutedSubrange = new VrackIpv6RoutedSubrange(\"vrackRoutedSubrange\", VrackIpv6RoutedSubrangeArgs.builder()\n            .serviceName(\"\u003cvRack service name\u003e\")\n            .block(\"\u003cipv6 block\u003e\")\n            .routedSubrange(\"\u003crouted subrange\u003e\")\n            .nexthop(\"\u003cnexthop\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vrackRoutedSubrange:\n    type: ovh:VrackIpv6RoutedSubrange\n    name: vrack_routed_subrange\n    properties:\n      serviceName: \u003cvRack service name\u003e\n      block: \u003cipv6 block\u003e\n      routedSubrange: \u003crouted subrange\u003e\n      nexthop: \u003cnexthop\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRouting of an subrange into your vRack can be imported using the `service_name` (vRack identifier), the `block` (IPv6 block) and the `routed_subrange (IPv6 block)`, separated by \",\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:index/vrackIpv6RoutedSubrange:VrackIpv6RoutedSubrange myroutedsubrange \"\u003cservice_name\u003e,\u003cblock\u003e,\u003crouted_subrange\u003e\"\n```\n\n","properties":{"block":{"type":"string","description":"Your IPv6 block.\n"},"nexthop":{"type":"string","description":"Next-hop IPv6 address (e.g., 2001:41d0:1:1994::1)\n"},"routedSubrange":{"type":"string","description":"The subrange to route into your vRack, IPv6 CIDR notation (e.g., 2001:41d0::/128)\n"},"serviceName":{"type":"string","description":"The internal name of your vrack\n"}},"required":["block","nexthop","routedSubrange","serviceName"],"inputProperties":{"block":{"type":"string","description":"Your IPv6 block.\n"},"nexthop":{"type":"string","description":"Next-hop IPv6 address (e.g., 2001:41d0:1:1994::1)\n"},"routedSubrange":{"type":"string","description":"The subrange to route into your vRack, IPv6 CIDR notation (e.g., 2001:41d0::/128)\n"},"serviceName":{"type":"string","description":"The internal name of your vrack\n"}},"requiredInputs":["block","nexthop","routedSubrange","serviceName"],"stateInputs":{"description":"Input properties used for looking up and filtering VrackIpv6RoutedSubrange resources.\n","properties":{"block":{"type":"string","description":"Your IPv6 block.\n"},"nexthop":{"type":"string","description":"Next-hop IPv6 address (e.g., 2001:41d0:1:1994::1)\n"},"routedSubrange":{"type":"string","description":"The subrange to route into your vRack, IPv6 CIDR notation (e.g., 2001:41d0::/128)\n"},"serviceName":{"type":"string","description":"The internal name of your vrack\n"}},"type":"object"}},"ovh:index/vrackservices:Vrackservices":{"description":"## Example Usage\n\n### Example 1 - Simple Vrack Services order\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  my-vrackservices:\n    type: ovh:Vrackservices\n    properties:\n      ovhSubsidiary: ${myaccount.ovhSubsidiary}\n      plans:\n        - plan_code: vrack-services\n          duration: P1M\n          pricing_mode: default\n          configuration:\n            - label: region_name\n              value: ${region}\n      targetSpec:\n        subnets: []\nvariables:\n  region: eu-west-lim\n  myaccount:\n    fn::invoke:\n      function: ovh:Me:getMe\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example 2 - Vrack Services basic configuration\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  my-vrackservices:\n    type: ovh:Vrackservices\n    properties:\n      ovhSubsidiary: ${myaccount.ovhSubsidiary}\n      plans:\n        - plan_code: vrack-services\n          duration: P1M\n          pricing_mode: default\n          configuration:\n            - label: region_name\n              value: ${region}\n      targetSpec:\n        subnets:\n          - cidr: 192.168.0.0/24\n            serviceRange:\n              cidr: 192.168.0.0/29\n            serviceEndpoints: []\nvariables:\n  region: eu-west-lim\n  myaccount:\n    fn::invoke:\n      function: ovh:Me:getMe\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example 3 - Vrack Services associated to a vRack\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  my-vrackservices:\n    type: ovh:Vrackservices\n    properties:\n      ovhSubsidiary: ${myaccount.ovhSubsidiary}\n      plans:\n        - plan_code: vrack-services\n          duration: P1M\n          pricing_mode: default\n          configuration:\n            - label: region_name\n              value: ${region}\n      targetSpec:\n        subnets: []\n  vrack-vrackservices-binding:\n    type: ovh:Vrack:Vrackservices\n    properties:\n      serviceName: ${vrackName}\n      vrackServices: ${[\"my-vrackservices\"].id}\nvariables:\n  region: eu-west-lim\n  vrackName: pn-000000\n  myaccount:\n    fn::invoke:\n      function: ovh:Me:getMe\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example 4 - Vrack Services configuration with a managed service\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  my-vrackservices:\n    type: ovh:Vrackservices\n    properties:\n      ovhSubsidiary: ${myaccount.ovhSubsidiary}\n      plans:\n        - plan_code: vrack-services\n          duration: P1M\n          pricing_mode: default\n          configuration:\n            - label: region_name\n              value: ${region}\n      targetSpec:\n        subnets:\n          - cidr: 192.168.0.0/24\n            displayName: my.subnet\n            serviceRange:\n              cidr: 192.168.0.0/29\n            vlan: 30\n            serviceEndpoints:\n              - managedServiceUrn: ${[\"my-efs\"].iam.urn}\nvariables:\n  region: eu-west-lim\n  efsName: example-efs-service-name-000e75d3d4c1\n  myaccount:\n    fn::invoke:\n      function: ovh:Me:getMe\n      arguments: {}\n  my-efs:\n    fn::invoke:\n      function: ovh:getStorageEfs\n      arguments:\n        serviceName: ${efsName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example 5 - Vrack Services complete configuration\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  my-vrackservices:\n    type: ovh:Vrackservices\n    properties:\n      ovhSubsidiary: ${myaccount.ovhSubsidiary}\n      plans:\n        - plan_code: vrack-services\n          duration: P1M\n          pricing_mode: default\n          configuration:\n            - label: region_name\n              value: ${region}\n      targetSpec:\n        subnets:\n          - cidr: 192.168.0.0/24\n            displayName: my.subnet\n            serviceRange:\n              cidr: 192.168.0.0/29\n            vlan: 30\n            serviceEndpoints:\n              - managedServiceUrn: ${[\"my-efs\"].iam.urn}\n  vrack-vrackservices-binding:\n    type: ovh:Vrack:Vrackservices\n    properties:\n      serviceName: ${vrackName}\n      vrackServices: ${[\"my-vrackservices\"].id}\nvariables:\n  region: eu-west-lim\n  efsName: example-efs-service-name-000e75d3d4c1\n  vrackName: pn-000000\n  myaccount:\n    fn::invoke:\n      function: ovh:Me:getMe\n      arguments: {}\n  my-efs:\n    fn::invoke:\n      function: ovh:getStorageEfs\n      arguments:\n        serviceName: ${efsName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nA VrackServices can be imported using the `id`. Using the following configuration:\n\nterraform\n\nimport {\n\n  to = ovh_vrackservices.vrackservices\n\n  id = \"vrs-xxx-xxx-xxx-xxx\"\n\n}\n\nYou can then run:\n\nbash\n\n$ pulumi preview -generate-config-out=vrackservices.tf\n\n$ pulumi up\n\nThe file `vrackservices.tf` will then contain the imported resource's configuration, that can be copied next to the `import` block above. See https://developer.hashicorp.com/terraform/language/import/generating-configuration for more details.\n\n","properties":{"checksum":{"type":"string","description":"Computed hash used to control concurrent modification requests. Here, it represents the target specification value the request is based on\n"},"createdAt":{"type":"string","description":"Date of the vRack Services delivery\n"},"currentState":{"$ref":"#/types/ovh:index/VrackservicesCurrentState:VrackservicesCurrentState","description":"Current configuration applied to the vRack Services\n"},"currentTasks":{"type":"array","items":{"$ref":"#/types/ovh:index/VrackservicesCurrentTask:VrackservicesCurrentTask"},"description":"Asynchronous operations ongoing on the vRack Services\n"},"iam":{"$ref":"#/types/ovh:index/VrackservicesIam:VrackservicesIam","description":"IAM resource metadata\n"},"order":{"$ref":"#/types/ovh:index/VrackservicesOrder:VrackservicesOrder","description":"Details about an Order\n"},"ovhSubsidiary":{"type":"string","description":"OVH subsidiaries\n"},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:index/VrackservicesPlanOption:VrackservicesPlanOption"}},"plans":{"type":"array","items":{"$ref":"#/types/ovh:index/VrackservicesPlan:VrackservicesPlan"}},"resourceStatus":{"type":"string","description":"Reflects the readiness of the vRack Services. A new target specification request will be accepted only in `READY` status\n"},"targetSpec":{"$ref":"#/types/ovh:index/VrackservicesTargetSpec:VrackservicesTargetSpec","description":"Target specification of the vRack Services\n"},"updatedAt":{"type":"string","description":"Date of the Last vRack Services update\n"}},"required":["checksum","createdAt","currentState","currentTasks","iam","order","resourceStatus","targetSpec","updatedAt"],"inputProperties":{"ovhSubsidiary":{"type":"string","description":"OVH subsidiaries\n"},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:index/VrackservicesPlanOption:VrackservicesPlanOption"}},"plans":{"type":"array","items":{"$ref":"#/types/ovh:index/VrackservicesPlan:VrackservicesPlan"}},"targetSpec":{"$ref":"#/types/ovh:index/VrackservicesTargetSpec:VrackservicesTargetSpec","description":"Target specification of the vRack Services\n"}},"requiredInputs":["targetSpec"],"stateInputs":{"description":"Input properties used for looking up and filtering Vrackservices resources.\n","properties":{"checksum":{"type":"string","description":"Computed hash used to control concurrent modification requests. Here, it represents the target specification value the request is based on\n"},"createdAt":{"type":"string","description":"Date of the vRack Services delivery\n"},"currentState":{"$ref":"#/types/ovh:index/VrackservicesCurrentState:VrackservicesCurrentState","description":"Current configuration applied to the vRack Services\n"},"currentTasks":{"type":"array","items":{"$ref":"#/types/ovh:index/VrackservicesCurrentTask:VrackservicesCurrentTask"},"description":"Asynchronous operations ongoing on the vRack Services\n"},"iam":{"$ref":"#/types/ovh:index/VrackservicesIam:VrackservicesIam","description":"IAM resource metadata\n"},"order":{"$ref":"#/types/ovh:index/VrackservicesOrder:VrackservicesOrder","description":"Details about an Order\n"},"ovhSubsidiary":{"type":"string","description":"OVH subsidiaries\n"},"planOptions":{"type":"array","items":{"$ref":"#/types/ovh:index/VrackservicesPlanOption:VrackservicesPlanOption"}},"plans":{"type":"array","items":{"$ref":"#/types/ovh:index/VrackservicesPlan:VrackservicesPlan"}},"resourceStatus":{"type":"string","description":"Reflects the readiness of the vRack Services. A new target specification request will be accepted only in `READY` status\n"},"targetSpec":{"$ref":"#/types/ovh:index/VrackservicesTargetSpec:VrackservicesTargetSpec","description":"Target specification of the vRack Services\n"},"updatedAt":{"type":"string","description":"Date of the Last vRack Services update\n"}},"type":"object"}}},"functions":{"ovh:Cloud/getProject:getProject":{"description":"Get the details of a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst project = ovh.Cloud.getProject({\n    serviceName: \"XXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nproject = ovh.Cloud.get_project(service_name=\"XXX\")\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 project = Ovh.Cloud.GetProject.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloud\"\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 := cloud.GetProject(ctx, \u0026cloud.GetProjectArgs{\n\t\t\tServiceName: \"XXX\",\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.Cloud.CloudFunctions;\nimport com.pulumi.ovh.Cloud.inputs.GetProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var project = CloudFunctions.getProject(GetProjectArgs.builder()\n            .serviceName(\"XXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  project:\n    fn::invoke:\n      function: ovh:Cloud:getProject\n      arguments:\n        serviceName: XXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProject.\n","properties":{"serviceName":{"type":"string","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getProject.\n","properties":{"access":{"description":"Project access\n","type":"string"},"creationDate":{"description":"Project creation date\n","type":"string"},"description":{"description":"Description of your project\n","type":"string"},"expiration":{"description":"Expiration date of your project. After this date, your project will be deleted\n","type":"string"},"iam":{"$ref":"#/types/ovh:Cloud/getProjectIam:getProjectIam","description":"IAM resource information\n"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"manualQuota":{"description":"Manual quota prevent automatic quota upgrade\n","type":"boolean"},"orderId":{"description":"Project order ID\n","type":"number"},"planCode":{"description":"Order plan code\n","type":"string"},"projectId":{"description":"Project ID\n","type":"string"},"projectName":{"description":"Project name\n","type":"string"},"serviceName":{"description":"ID of the public cloud project\n","type":"string"},"status":{"description":"Current status\n","type":"string"},"unleash":{"description":"Project unleashed\n","type":"boolean"}},"required":["access","creationDate","description","expiration","iam","manualQuota","orderId","planCode","projectId","projectName","serviceName","status","unleash","id"],"type":"object"}},"ovh:Cloud/getProjects:getProjects":{"description":"Get the details of your public cloud projects.\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 projects = ovh.Cloud.getProjects({});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nprojects = ovh.Cloud.get_projects()\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 projects = Ovh.Cloud.GetProjects.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloud\"\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 := cloud.GetProjects(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Cloud.CloudFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 projects = CloudFunctions.getProjects(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n    }\n}\n```\n```yaml\nvariables:\n  projects:\n    fn::invoke:\n      function: ovh:Cloud:getProjects\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getProjects.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"projects":{"items":{"$ref":"#/types/ovh:Cloud/getProjectsProject:getProjectsProject"},"type":"array"}},"required":["projects","id"],"type":"object"}},"ovh:CloudProject/getCapabilitiesContainerFilter:getCapabilitiesContainerFilter":{"description":"Use this data source to filter the list of container registry capabilities associated with a public cloud project to match one and only one capability.\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 capability = ovh.CloudProject.getCapabilitiesContainerFilter({\n    serviceName: \"XXXXXX\",\n    region: \"GRA\",\n    planName: \"SMALL\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ncapability = ovh.CloudProject.get_capabilities_container_filter(service_name=\"XXXXXX\",\n    region=\"GRA\",\n    plan_name=\"SMALL\")\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 capability = Ovh.CloudProject.GetCapabilitiesContainerFilter.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        Region = \"GRA\",\n        PlanName = \"SMALL\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetCapabilitiesContainerFilter(ctx, \u0026cloudproject.GetCapabilitiesContainerFilterArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tRegion:      \"GRA\",\n\t\t\tPlanName:    \"SMALL\",\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.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetCapabilitiesContainerFilterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 capability = CloudProjectFunctions.getCapabilitiesContainerFilter(GetCapabilitiesContainerFilterArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .region(\"GRA\")\n            .planName(\"SMALL\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  capability:\n    fn::invoke:\n      function: ovh:CloudProject:getCapabilitiesContainerFilter\n      arguments:\n        serviceName: XXXXXX\n        region: GRA\n        planName: SMALL\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCapabilitiesContainerFilter.\n","properties":{"planName":{"type":"string","description":"The plan name. It can be 'SMALL', 'MEDIUM' or 'LARGE'.\n"},"region":{"type":"string","description":"The region name\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["planName","region","serviceName"]},"outputs":{"description":"A collection of values returned by getCapabilitiesContainerFilter.\n","properties":{"code":{"description":"Plan code from the catalog\n","type":"string"},"createdAt":{"description":"Plan creation date\n","type":"string"},"features":{"description":"Features of the plan\n","items":{"$ref":"#/types/ovh:CloudProject/getCapabilitiesContainerFilterFeature:getCapabilitiesContainerFilterFeature"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"name":{"description":"Plan name\n","type":"string"},"planName":{"type":"string"},"region":{"type":"string"},"registryLimits":{"description":"Container registry limits\n","items":{"$ref":"#/types/ovh:CloudProject/getCapabilitiesContainerFilterRegistryLimit:getCapabilitiesContainerFilterRegistryLimit"},"type":"array"},"serviceName":{"type":"string"},"updatedAt":{"description":"Plan last update date\n","type":"string"}},"required":["code","createdAt","features","name","planName","region","registryLimits","serviceName","updatedAt","id"],"type":"object"}},"ovh:CloudProject/getCapabilitiesContainerRegistry:getCapabilitiesContainerRegistry":{"description":"Use this data source to get the container registry capabilities of a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst capabilities = ovh.CloudProject.getCapabilitiesContainerRegistry({\n    serviceName: \"XXXXXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ncapabilities = ovh.CloudProject.get_capabilities_container_registry(service_name=\"XXXXXX\")\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 capabilities = Ovh.CloudProject.GetCapabilitiesContainerRegistry.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetCapabilitiesContainerRegistry(ctx, \u0026cloudproject.GetCapabilitiesContainerRegistryArgs{\n\t\t\tServiceName: \"XXXXXX\",\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.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetCapabilitiesContainerRegistryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 capabilities = CloudProjectFunctions.getCapabilitiesContainerRegistry(GetCapabilitiesContainerRegistryArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  capabilities:\n    fn::invoke:\n      function: ovh:CloudProject:getCapabilitiesContainerRegistry\n      arguments:\n        serviceName: XXXXXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCapabilitiesContainerRegistry.\n","properties":{"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getCapabilitiesContainerRegistry.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"results":{"description":"List of container registry capability for a single region\n","items":{"$ref":"#/types/ovh:CloudProject/getCapabilitiesContainerRegistryResult:getCapabilitiesContainerRegistryResult"},"type":"array"},"serviceName":{"type":"string"}},"required":["results","serviceName","id"],"type":"object"}},"ovh:CloudProject/getContainerRegistries:getContainerRegistries":{"description":"Use this data source to get the container registries of a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst registries = ovh.CloudProject.getContainerRegistries({\n    serviceName: \"XXXXXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nregistries = ovh.CloudProject.get_container_registries(service_name=\"XXXXXX\")\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 registries = Ovh.CloudProject.GetContainerRegistries.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetContainerRegistries(ctx, \u0026cloudproject.GetContainerRegistriesArgs{\n\t\t\tServiceName: \"XXXXXX\",\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.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetContainerRegistriesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 registries = CloudProjectFunctions.getContainerRegistries(GetContainerRegistriesArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  registries:\n    fn::invoke:\n      function: ovh:CloudProject:getContainerRegistries\n      arguments:\n        serviceName: XXXXXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getContainerRegistries.\n","properties":{"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getContainerRegistries.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"results":{"description":"The list of container registries associated with the project.\n","items":{"$ref":"#/types/ovh:CloudProject/getContainerRegistriesResult:getContainerRegistriesResult"},"type":"array"},"serviceName":{"type":"string"}},"required":["results","serviceName","id"],"type":"object"}},"ovh:CloudProject/getContainerRegistry:getContainerRegistry":{"description":"Use this data source to get information about a container registry associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst myRegistry = ovh.CloudProject.getContainerRegistry({\n    serviceName: \"XXXXXX\",\n    registryId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_registry = ovh.CloudProject.get_container_registry(service_name=\"XXXXXX\",\n    registry_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\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 myRegistry = Ovh.CloudProject.GetContainerRegistry.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        RegistryId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudproject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudproject.GetContainerRegistry(ctx, \u0026cloudproject.GetContainerRegistryArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tRegistryId:  \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetContainerRegistryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myRegistry = CloudProjectFunctions.getContainerRegistry(GetContainerRegistryArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .registryId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myRegistry:\n    fn::invoke:\n      function: ovh:CloudProject:getContainerRegistry\n      arguments:\n        serviceName: XXXXXX\n        registryId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getContainerRegistry.\n","properties":{"registryId":{"type":"string","description":"Registry ID\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["registryId","serviceName"]},"outputs":{"description":"A collection of values returned by getContainerRegistry.\n","properties":{"createdAt":{"description":"Registry creation date\n","type":"string"},"iamEnabled":{"description":"OVHCloud IAM enabled\n","type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"name":{"description":"Registry name\n","type":"string"},"projectId":{"description":"Project ID of your registry\n","type":"string"},"region":{"description":"Region of the registry\n","type":"string"},"registryId":{"type":"string"},"serviceName":{"type":"string"},"size":{"description":"Current size of the registry (bytes)\n","type":"integer"},"status":{"description":"Registry status\n","type":"string"},"updatedAt":{"description":"Registry last update date\n","type":"string"},"url":{"description":"Access url of the registry\n","type":"string"},"version":{"description":"Version of your registry\n","type":"string"}},"required":["createdAt","iamEnabled","name","projectId","region","registryId","serviceName","size","status","updatedAt","url","version","id"],"type":"object"}},"ovh:CloudProject/getContainerRegistryIPRestrictionsManagement:getContainerRegistryIPRestrictionsManagement":{"description":"Use this data source to get the list of Management IP Restrictions of a container registry associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst mgtIprestrictionsData = ovh.CloudProject.getContainerRegistryIPRestrictionsManagement({\n    serviceName: \"XXXXXX\",\n    registryId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n});\nexport const myIpRestrictions = mgtIprestrictionsData.then(mgtIprestrictionsData =\u003e mgtIprestrictionsData.ipRestrictions);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmgt_iprestrictions_data = ovh.CloudProject.get_container_registry_ip_restrictions_management(service_name=\"XXXXXX\",\n    registry_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\npulumi.export(\"myIpRestrictions\", mgt_iprestrictions_data.ip_restrictions)\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 mgtIprestrictionsData = Ovh.CloudProject.GetContainerRegistryIPRestrictionsManagement.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        RegistryId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"myIpRestrictions\"] = mgtIprestrictionsData.Apply(getContainerRegistryIPRestrictionsManagementResult =\u003e getContainerRegistryIPRestrictionsManagementResult.IpRestrictions),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tmgtIprestrictionsData, err := cloudproject.GetContainerRegistryIPRestrictionsManagement(ctx, \u0026cloudproject.GetContainerRegistryIPRestrictionsManagementArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tRegistryId:  \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"myIpRestrictions\", mgtIprestrictionsData.IpRestrictions)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetContainerRegistryIPRestrictionsManagementArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 mgtIprestrictionsData = CloudProjectFunctions.getContainerRegistryIPRestrictionsManagement(GetContainerRegistryIPRestrictionsManagementArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .registryId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\n            .build());\n\n        ctx.export(\"myIpRestrictions\", mgtIprestrictionsData.ipRestrictions());\n    }\n}\n```\n```yaml\nvariables:\n  mgtIprestrictionsData:\n    fn::invoke:\n      function: ovh:CloudProject:getContainerRegistryIPRestrictionsManagement\n      arguments:\n        serviceName: XXXXXX\n        registryId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\noutputs:\n  myIpRestrictions: ${mgtIprestrictionsData.ipRestrictions}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getContainerRegistryIPRestrictionsManagement.\n","properties":{"registryId":{"type":"string","description":"The id of the Managed Private Registry.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["registryId","serviceName"]},"outputs":{"description":"A collection of values returned by getContainerRegistryIPRestrictionsManagement.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"ipRestrictions":{"description":"IP restrictions applied on Harbor UI and API.\n","items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array"},"registryId":{"description":"The ID of the Managed Private Registry.\n","type":"string"},"serviceName":{"description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","type":"string"}},"required":["ipRestrictions","registryId","serviceName","id"],"type":"object"}},"ovh:CloudProject/getContainerRegistryIPRestrictionsRegistry:getContainerRegistryIPRestrictionsRegistry":{"description":"Use this data source to get the list of Registry IP Restrictions of a container registry associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst myIprestrictionsData = ovh.CloudProject.getContainerRegistryIPRestrictionsRegistry({\n    serviceName: \"XXXXXX\",\n    registryId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n});\nexport const myIpRestrictions = myIprestrictionsData.then(myIprestrictionsData =\u003e myIprestrictionsData.ipRestrictions);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_iprestrictions_data = ovh.CloudProject.get_container_registry_ip_restrictions_registry(service_name=\"XXXXXX\",\n    registry_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\npulumi.export(\"myIpRestrictions\", my_iprestrictions_data.ip_restrictions)\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 myIprestrictionsData = Ovh.CloudProject.GetContainerRegistryIPRestrictionsRegistry.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        RegistryId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"myIpRestrictions\"] = myIprestrictionsData.Apply(getContainerRegistryIPRestrictionsRegistryResult =\u003e getContainerRegistryIPRestrictionsRegistryResult.IpRestrictions),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tmyIprestrictionsData, err := cloudproject.GetContainerRegistryIPRestrictionsRegistry(ctx, \u0026cloudproject.GetContainerRegistryIPRestrictionsRegistryArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tRegistryId:  \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"myIpRestrictions\", myIprestrictionsData.IpRestrictions)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetContainerRegistryIPRestrictionsRegistryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myIprestrictionsData = CloudProjectFunctions.getContainerRegistryIPRestrictionsRegistry(GetContainerRegistryIPRestrictionsRegistryArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .registryId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\n            .build());\n\n        ctx.export(\"myIpRestrictions\", myIprestrictionsData.ipRestrictions());\n    }\n}\n```\n```yaml\nvariables:\n  myIprestrictionsData:\n    fn::invoke:\n      function: ovh:CloudProject:getContainerRegistryIPRestrictionsRegistry\n      arguments:\n        serviceName: XXXXXX\n        registryId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\noutputs:\n  myIpRestrictions: ${myIprestrictionsData.ipRestrictions}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getContainerRegistryIPRestrictionsRegistry.\n","properties":{"registryId":{"type":"string","description":"The id of the Managed Private Registry.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["registryId","serviceName"]},"outputs":{"description":"A collection of values returned by getContainerRegistryIPRestrictionsRegistry.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"ipRestrictions":{"description":"IP restrictions applied on artifact manager component.\n","items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array"},"registryId":{"description":"The ID of the Managed Private Registry.\n","type":"string"},"serviceName":{"description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","type":"string"}},"required":["ipRestrictions","registryId","serviceName","id"],"type":"object"}},"ovh:CloudProject/getContainerRegistryOIDC:getContainerRegistryOIDC":{"description":"Use this data source to get a OVHcloud Managed Private Registry OIDC.\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\nexport = async () =\u003e {\n    const myOidc = await ovh.CloudProject.getContainerRegistryOIDC({\n        serviceName: \"XXXXXX\",\n        registryId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n    });\n    return {\n        \"oidc-client-id\": myOidc.oidcClientId,\n    };\n}\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_oidc = ovh.CloudProject.get_container_registry_oidc(service_name=\"XXXXXX\",\n    registry_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\npulumi.export(\"oidc-client-id\", my_oidc.oidc_client_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myOidc = Ovh.CloudProject.GetContainerRegistryOIDC.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        RegistryId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"oidc-client-id\"] = myOidc.Apply(getContainerRegistryOIDCResult =\u003e getContainerRegistryOIDCResult.OidcClientId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tmyOidc, err := cloudproject.GetContainerRegistryOIDC(ctx, \u0026cloudproject.GetContainerRegistryOIDCArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tRegistryId:  \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"oidc-client-id\", myOidc.OidcClientId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetContainerRegistryOIDCArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myOidc = CloudProjectFunctions.getContainerRegistryOIDC(GetContainerRegistryOIDCArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .registryId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\n            .build());\n\n        ctx.export(\"oidc-client-id\", myOidc.oidcClientId());\n    }\n}\n```\n```yaml\nvariables:\n  myOidc:\n    fn::invoke:\n      function: ovh:CloudProject:getContainerRegistryOIDC\n      arguments:\n        serviceName: XXXXXX\n        registryId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\noutputs:\n  oidc-client-id: ${myOidc.oidcClientId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getContainerRegistryOIDC.\n","properties":{"oidcAdminGroup":{"type":"string","description":"Specify an OIDC admin group name. All OIDC users in this group will have harbor admin privilege. Keep it blank if you do not want to.\n"},"oidcAutoOnboard":{"type":"boolean","description":"Skip the onboarding screen, so user cannot change its username. Username is provided from ID Token.\n"},"oidcClientId":{"type":"string","description":"The client ID with which Harbor is registered as client application with the OIDC provider.\n"},"oidcEndpoint":{"type":"string","description":"The URL of an OIDC-compliant server.\n"},"oidcGroupFilter":{"type":"string"},"oidcGroupsClaim":{"type":"string","description":"The name of Claim in the ID token whose value is the list of group names.\n"},"oidcName":{"type":"string","description":"The name of the OIDC provider.\n"},"oidcScope":{"type":"string","description":"The scope sent to OIDC server during authentication. It's a comma-separated string that must contain 'openid' and usually also contains 'profile' and 'email'. To obtain refresh tokens it should also contain 'offline_access'.\n"},"oidcUserClaim":{"type":"string","description":"The name of the claim in the ID Token where the username is retrieved from. If not specified, it will default to 'name' (only useful when automatic Onboarding is enabled).\n"},"oidcVerifyCert":{"type":"boolean","description":"Set it to `false` if your OIDC server is hosted via self-signed certificate.\n"},"registryId":{"type":"string","description":"The id of the Managed Private Registry.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"type":"object","required":["registryId","serviceName"]},"outputs":{"description":"A collection of values returned by getContainerRegistryOIDC.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"oidcAdminGroup":{"description":"Specify an OIDC admin group name. All OIDC users in this group will have harbor admin privilege. Keep it blank if you do not want to.\n","type":"string"},"oidcAutoOnboard":{"description":"Skip the onboarding screen, so user cannot change its username. Username is provided from ID Token.\n","type":"boolean"},"oidcClientId":{"description":"The client ID with which Harbor is registered as client application with the OIDC provider.\n","type":"string"},"oidcEndpoint":{"description":"The URL of an OIDC-compliant server.\n","type":"string"},"oidcGroupFilter":{"type":"string"},"oidcGroupsClaim":{"description":"The name of Claim in the ID token whose value is the list of group names.\n","type":"string"},"oidcName":{"description":"The name of the OIDC provider.\n","type":"string"},"oidcScope":{"description":"The scope sent to OIDC server during authentication. It's a comma-separated string that must contain 'openid' and usually also contains 'profile' and 'email'. To obtain refresh tokens it should also contain 'offline_access'.\n","type":"string"},"oidcUserClaim":{"description":"The name of the claim in the ID Token where the username is retrieved from. If not specified, it will default to 'name' (only useful when automatic Onboarding is enabled).\n","type":"string"},"oidcVerifyCert":{"description":"Set it to `false` if your OIDC server is hosted via self-signed certificate.\n","type":"boolean"},"registryId":{"description":"The ID of the Managed Private Registry.\n","type":"string"},"serviceName":{"description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","type":"string"}},"required":["registryId","serviceName","id"],"type":"object"}},"ovh:CloudProject/getContainerRegistryUsers:getContainerRegistryUsers":{"description":"Use this data source to get the list of users of a container registry associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst myRegistry = ovh.CloudProject.getContainerRegistry({\n    serviceName: \"XXXXXX\",\n    registryId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n});\nconst users = ovh.CloudProject.getContainerRegistryUsers({\n    serviceName: myRegistryOvhCloudProjectContainerregistry.serviceName,\n    registryId: myRegistryOvhCloudProjectContainerregistry.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_registry = ovh.CloudProject.get_container_registry(service_name=\"XXXXXX\",\n    registry_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\nusers = ovh.CloudProject.get_container_registry_users(service_name=my_registry_ovh_cloud_project_containerregistry[\"serviceName\"],\n    registry_id=my_registry_ovh_cloud_project_containerregistry[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myRegistry = Ovh.CloudProject.GetContainerRegistry.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        RegistryId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n    });\n\n    var users = Ovh.CloudProject.GetContainerRegistryUsers.Invoke(new()\n    {\n        ServiceName = myRegistryOvhCloudProjectContainerregistry.ServiceName,\n        RegistryId = myRegistryOvhCloudProjectContainerregistry.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudproject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudproject.GetContainerRegistry(ctx, \u0026cloudproject.GetContainerRegistryArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tRegistryId:  \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudproject.GetContainerRegistryUsers(ctx, \u0026cloudproject.GetContainerRegistryUsersArgs{\n\t\t\tServiceName: myRegistryOvhCloudProjectContainerregistry.ServiceName,\n\t\t\tRegistryId:  myRegistryOvhCloudProjectContainerregistry.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetContainerRegistryArgs;\nimport com.pulumi.ovh.CloudProject.inputs.GetContainerRegistryUsersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myRegistry = CloudProjectFunctions.getContainerRegistry(GetContainerRegistryArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .registryId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\n            .build());\n\n        final var users = CloudProjectFunctions.getContainerRegistryUsers(GetContainerRegistryUsersArgs.builder()\n            .serviceName(myRegistryOvhCloudProjectContainerregistry.serviceName())\n            .registryId(myRegistryOvhCloudProjectContainerregistry.id())\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myRegistry:\n    fn::invoke:\n      function: ovh:CloudProject:getContainerRegistry\n      arguments:\n        serviceName: XXXXXX\n        registryId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\n  users:\n    fn::invoke:\n      function: ovh:CloudProject:getContainerRegistryUsers\n      arguments:\n        serviceName: ${myRegistryOvhCloudProjectContainerregistry.serviceName}\n        registryId: ${myRegistryOvhCloudProjectContainerregistry.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getContainerRegistryUsers.\n","properties":{"registryId":{"type":"string","description":"Registry ID\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["registryId","serviceName"]},"outputs":{"description":"A collection of values returned by getContainerRegistryUsers.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"registryId":{"type":"string"},"results":{"description":"The list of users of the container registry associated with the project.\n","items":{"$ref":"#/types/ovh:CloudProject/getContainerRegistryUsersResult:getContainerRegistryUsersResult"},"type":"array"},"serviceName":{"type":"string"}},"required":["registryId","results","serviceName","id"],"type":"object"}},"ovh:CloudProject/getFailoverIpAttach:getFailoverIpAttach":{"description":"Use this data source to get the details of a failover IP address of a service in a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst myFailoverIp = ovh.CloudProject.getFailoverIpAttach({\n    serviceName: \"XXXXXX\",\n    ip: \"XXXXXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_failover_ip = ovh.CloudProject.get_failover_ip_attach(service_name=\"XXXXXX\",\n    ip=\"XXXXXX\")\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 myFailoverIp = Ovh.CloudProject.GetFailoverIpAttach.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        Ip = \"XXXXXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetFailoverIpAttach(ctx, \u0026cloudproject.GetFailoverIpAttachArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tIp:          pulumi.StringRef(\"XXXXXX\"),\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.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetFailoverIpAttachArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myFailoverIp = CloudProjectFunctions.getFailoverIpAttach(GetFailoverIpAttachArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .ip(\"XXXXXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myFailoverIp:\n    fn::invoke:\n      function: ovh:CloudProject:getFailoverIpAttach\n      arguments:\n        serviceName: XXXXXX\n        ip: XXXXXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFailoverIpAttach.\n","properties":{"block":{"type":"string","description":"The IP block\n* `continentCode` - The Ip continent\n"},"continentCode":{"type":"string"},"geoLoc":{"type":"string"},"ip":{"type":"string","description":"The failover ip address to query\n"},"routedTo":{"type":"string","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getFailoverIpAttach.\n","properties":{"block":{"description":"The IP block\n* `continentCode` - The Ip continent\n","type":"string"},"continentCode":{"type":"string"},"geoLoc":{"type":"string"},"id":{"description":"The Ip id\n","type":"string"},"ip":{"description":"The Ip Address\n","type":"string"},"progress":{"description":"Current operation progress in percent\n* `routedTo` - Instance where ip is routed to\n","type":"integer"},"routedTo":{"type":"string"},"serviceName":{"type":"string"},"status":{"description":"Ip status, can be `ok` or `operationPending`\n* `subType` - IP sub type, can be `cloud` or `ovh`\n","type":"string"},"subType":{"type":"string"}},"required":["block","continentCode","geoLoc","id","ip","progress","routedTo","serviceName","status","subType"],"type":"object"}},"ovh:CloudProject/getFlavors:getFlavors":{"description":"Retrieves the available flavors on the given public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst flavors = ovh.CloudProject.getFlavors({\n    serviceName: \"YYYY\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nflavors = ovh.CloudProject.get_flavors(service_name=\"YYYY\")\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 flavors = Ovh.CloudProject.GetFlavors.Invoke(new()\n    {\n        ServiceName = \"YYYY\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetFlavors(ctx, \u0026cloudproject.GetFlavorsArgs{\n\t\t\tServiceName: \"YYYY\",\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.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetFlavorsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 flavors = CloudProjectFunctions.getFlavors(GetFlavorsArgs.builder()\n            .serviceName(\"YYYY\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  flavors:\n    fn::invoke:\n      function: ovh:CloudProject:getFlavors\n      arguments:\n        serviceName: YYYY\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFlavors.\n","properties":{"nameFilter":{"type":"string","description":"Filter flavors using the given name (strict equality, e.g. b2-7)\n"},"region":{"type":"string","description":"Flavor region\n"},"serviceName":{"type":"string","description":"Service name\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getFlavors.\n","properties":{"flavors":{"items":{"$ref":"#/types/ovh:CloudProject/getFlavorsFlavor:getFlavorsFlavor"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"nameFilter":{"description":"Filter flavors using the given name (strict equality, e.g. b2-7)\n","type":"string"},"region":{"description":"Flavor region\n","type":"string"},"serviceName":{"description":"Service name\n","type":"string"}},"required":["flavors","region","serviceName","id"],"type":"object"}},"ovh:CloudProject/getFloatingIPs:getFloatingIPs":{"description":"Use this data source to get the floating IPs of a public cloud project.\n\n## Example Usage\n\nTo get information of floating IPs:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nvariables:\n  ips:\n    fn::invoke:\n      function: ovh:CloudProject:getFloatingIPs\n      arguments:\n        serviceName: YYYY\n        region: XXXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFloatingIPs.\n","properties":{"regionName":{"type":"string","description":"Public cloud region name\n"},"serviceName":{"type":"string","description":"The id of the public cloud project\n"}},"type":"object","required":["regionName","serviceName"]},"outputs":{"description":"A collection of values returned by getFloatingIPs.\n","properties":{"cloudProjectFloatingips":{"items":{"$ref":"#/types/ovh:CloudProject/getFloatingIPsCloudProjectFloatingip:getFloatingIPsCloudProjectFloatingip"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"regionName":{"description":"Floating IP region\n","type":"string"},"serviceName":{"type":"string"}},"required":["cloudProjectFloatingips","regionName","serviceName","id"],"type":"object"}},"ovh:CloudProject/getGatewayInterface:getGatewayInterface":{"description":"Use this datasource to get a public cloud project Gateway Interface.\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 _interface = ovh.CloudProject.getGatewayInterface({\n    serviceName: \"XXXXXX\",\n    region: \"GRA11\",\n    id: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n    interfaceId: \"yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyy\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ninterface = ovh.CloudProject.get_gateway_interface(service_name=\"XXXXXX\",\n    region=\"GRA11\",\n    id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n    interface_id=\"yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyy\")\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 @interface = Ovh.CloudProject.GetGatewayInterface.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        Region = \"GRA11\",\n        Id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n        InterfaceId = \"yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyy\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetGatewayInterface(ctx, \u0026cloudproject.GetGatewayInterfaceArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tRegion:      \"GRA11\",\n\t\t\tId:          \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n\t\t\tInterfaceId: \"yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyy\",\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.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetGatewayInterfaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 interface = CloudProjectFunctions.getGatewayInterface(GetGatewayInterfaceArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .region(\"GRA11\")\n            .id(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\n            .interfaceId(\"yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyy\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  interface:\n    fn::invoke:\n      function: ovh:CloudProject:getGatewayInterface\n      arguments:\n        serviceName: XXXXXX\n        region: GRA11\n        id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\n        interfaceId: yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyy\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGatewayInterface.\n","properties":{"id":{"type":"string","description":"ID of the gateway\n"},"interfaceId":{"type":"string","description":"ID of the interface\n"},"region":{"type":"string","description":"Region of the gateway\n"},"serviceName":{"type":"string","description":"ID of the cloud project\n"}},"type":"object","required":["id","interfaceId","region","serviceName"]},"outputs":{"description":"A collection of values returned by getGatewayInterface.\n","properties":{"id":{"description":"ID of the gateway\n","type":"string"},"interfaceId":{"description":"ID of the interface\n","type":"string"},"ip":{"description":"IP of the interface\n","type":"string"},"networkId":{"description":"Network ID of the interface\n","type":"string"},"region":{"description":"Region of the gateway\n","type":"string"},"serviceName":{"description":"ID of the cloud project\n","type":"string"},"subnetId":{"description":"ID of the subnet to add\n","type":"string"}},"required":["id","interfaceId","ip","networkId","region","serviceName","subnetId"],"type":"object"}},"ovh:CloudProject/getImage:getImage":{"description":"Get information about an image in the given public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst image = ovh.CloudProject.getImage({\n    serviceName: \"\u003cpublic cloud project ID\u003e\",\n    imageId: \"\u003cimage ID\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nimage = ovh.CloudProject.get_image(service_name=\"\u003cpublic cloud project ID\u003e\",\n    image_id=\"\u003cimage ID\u003e\")\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 image = Ovh.CloudProject.GetImage.Invoke(new()\n    {\n        ServiceName = \"\u003cpublic cloud project ID\u003e\",\n        ImageId = \"\u003cimage ID\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetImage(ctx, \u0026cloudproject.GetImageArgs{\n\t\t\tServiceName: \"\u003cpublic cloud project ID\u003e\",\n\t\t\tImageId:     \"\u003cimage ID\u003e\",\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.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 image = CloudProjectFunctions.getImage(GetImageArgs.builder()\n            .serviceName(\"\u003cpublic cloud project ID\u003e\")\n            .imageId(\"\u003cimage ID\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  image:\n    fn::invoke:\n      function: ovh:CloudProject:getImage\n      arguments:\n        serviceName: \u003cpublic cloud project ID\u003e\n        imageId: \u003cimage ID\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getImage.\n","properties":{"imageId":{"type":"string","description":"Image ID\n"},"serviceName":{"type":"string","description":"Public cloud project ID\n"}},"type":"object","required":["imageId","serviceName"]},"outputs":{"description":"A collection of values returned by getImage.\n","properties":{"creationDate":{"description":"Image creation date\n","type":"string"},"flavorType":{"description":"Image usable only for this type of flavor if not null\n","type":"string"},"id":{"description":"Image ID\n","type":"string"},"imageId":{"description":"Image ID\n","type":"string"},"minDisk":{"description":"Minimum disks required to use image\n","type":"number"},"minRam":{"description":"Minimum RAM required to use image\n","type":"number"},"name":{"description":"Image name\n","type":"string"},"planCode":{"description":"Order plan code\n","type":"string"},"region":{"description":"Image region\n","type":"string"},"serviceName":{"description":"Public cloud project ID\n","type":"string"},"size":{"description":"Image size (in GiB)\n","type":"number"},"status":{"description":"Image status\n","type":"string"},"tags":{"description":"Tags about the image\n","items":{"type":"string"},"type":"array"},"type":{"description":"Image type\n","type":"string"},"user":{"description":"User to connect with\n","type":"string"},"visibility":{"description":"Image visibility\n","type":"string"}},"required":["creationDate","flavorType","id","imageId","minDisk","minRam","name","planCode","region","serviceName","size","status","tags","type","user","visibility"],"type":"object"}},"ovh:CloudProject/getImages:getImages":{"description":"Get available images in the given public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst images = ovh.CloudProject.getImages({\n    serviceName: \"\u003cpublic cloud project ID\u003e\",\n    region: \"WAW1\",\n    osType: \"linux\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nimages = ovh.CloudProject.get_images(service_name=\"\u003cpublic cloud project ID\u003e\",\n    region=\"WAW1\",\n    os_type=\"linux\")\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 images = Ovh.CloudProject.GetImages.Invoke(new()\n    {\n        ServiceName = \"\u003cpublic cloud project ID\u003e\",\n        Region = \"WAW1\",\n        OsType = \"linux\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetImages(ctx, \u0026cloudproject.GetImagesArgs{\n\t\t\tServiceName: \"\u003cpublic cloud project ID\u003e\",\n\t\t\tRegion:      pulumi.StringRef(\"WAW1\"),\n\t\t\tOsType:      pulumi.StringRef(\"linux\"),\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.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetImagesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 images = CloudProjectFunctions.getImages(GetImagesArgs.builder()\n            .serviceName(\"\u003cpublic cloud project ID\u003e\")\n            .region(\"WAW1\")\n            .osType(\"linux\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  images:\n    fn::invoke:\n      function: ovh:CloudProject:getImages\n      arguments:\n        serviceName: \u003cpublic cloud project ID\u003e\n        region: WAW1\n        osType: linux\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getImages.\n","properties":{"flavorType":{"type":"string","description":"Get compatible images with flavor type\n"},"osType":{"type":"string","description":"Image OS (Allowed values: baremetal-linux ┃ bsd ┃ linux ┃ windows)\n"},"region":{"type":"string","description":"Image region\n"},"serviceName":{"type":"string","description":"Public cloud project ID\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getImages.\n","properties":{"flavorType":{"description":"Get compatible images with flavor type\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"images":{"items":{"$ref":"#/types/ovh:CloudProject/getImagesImage:getImagesImage"},"type":"array"},"osType":{"description":"Image OS (Allowed values: baremetal-linux ┃ bsd ┃ linux ┃ windows)\n","type":"string"},"region":{"description":"Image region\n","type":"string"},"serviceName":{"description":"Public cloud project ID\n","type":"string"}},"required":["flavorType","images","osType","region","serviceName","id"],"type":"object"}},"ovh:CloudProject/getInstance:getInstance":{"description":"**This datasource uses a Beta API** Use this data source to get the instance of a public cloud project.\n\n## Example Usage\n\nTo get information of an instance:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst instance = ovh.CloudProject.getInstance({\n    serviceName: \"YYYY\",\n    region: \"XXXX\",\n    instanceId: \"ZZZZZ\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ninstance = ovh.CloudProject.get_instance(service_name=\"YYYY\",\n    region=\"XXXX\",\n    instance_id=\"ZZZZZ\")\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 instance = Ovh.CloudProject.GetInstance.Invoke(new()\n    {\n        ServiceName = \"YYYY\",\n        Region = \"XXXX\",\n        InstanceId = \"ZZZZZ\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetInstance(ctx, \u0026cloudproject.GetInstanceArgs{\n\t\t\tServiceName: \"YYYY\",\n\t\t\tRegion:      \"XXXX\",\n\t\t\tInstanceId:  \"ZZZZZ\",\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.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var instance = CloudProjectFunctions.getInstance(GetInstanceArgs.builder()\n            .serviceName(\"YYYY\")\n            .region(\"XXXX\")\n            .instanceId(\"ZZZZZ\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  instance:\n    fn::invoke:\n      function: ovh:CloudProject:getInstance\n      arguments:\n        serviceName: YYYY\n        region: XXXX\n        instanceId: ZZZZZ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstance.\n","properties":{"instanceId":{"type":"string","description":"Instance id\n"},"region":{"type":"string","description":"Instance region\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used\n"}},"type":"object","required":["instanceId","region","serviceName"]},"outputs":{"description":"A collection of values returned by getInstance.\n","properties":{"addresses":{"description":"Instance IP addresses\n","items":{"$ref":"#/types/ovh:CloudProject/getInstanceAddress:getInstanceAddress"},"type":"array"},"attachedVolumes":{"description":"Volumes attached to the instance\n","items":{"$ref":"#/types/ovh:CloudProject/getInstanceAttachedVolume:getInstanceAttachedVolume"},"type":"array"},"availabilityZone":{"description":"Availability zone of the instance\n","type":"string"},"flavorId":{"description":"Flavor id\n","type":"string"},"flavorName":{"description":"Flavor name\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"imageId":{"description":"Image id\n","type":"string"},"instanceId":{"type":"string"},"name":{"description":"Instance name\n","type":"string"},"region":{"type":"string"},"serviceName":{"type":"string"},"sshKey":{"description":"SSH Keypair\n","type":"string"},"status":{"description":"Instance status\n","type":"string"},"taskState":{"description":"Instance task state\n","type":"string"}},"required":["addresses","attachedVolumes","availabilityZone","flavorId","flavorName","imageId","instanceId","name","region","serviceName","sshKey","status","taskState","id"],"type":"object"}},"ovh:CloudProject/getInstances:getInstances":{"description":"**This datasource uses a Beta API**\n\nUse this data source to get the list of instances in a region of a public cloud project.\n\n## Example Usage\n\nTo list your instances:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst instance = ovh.CloudProject.getInstances({\n    serviceName: \"YYYY\",\n    region: \"XXXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ninstance = ovh.CloudProject.get_instances(service_name=\"YYYY\",\n    region=\"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 instance = Ovh.CloudProject.GetInstances.Invoke(new()\n    {\n        ServiceName = \"YYYY\",\n        Region = \"XXXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetInstances(ctx, \u0026cloudproject.GetInstancesArgs{\n\t\t\tServiceName: \"YYYY\",\n\t\t\tRegion:      \"XXXX\",\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.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 instance = CloudProjectFunctions.getInstances(GetInstancesArgs.builder()\n            .serviceName(\"YYYY\")\n            .region(\"XXXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  instance:\n    fn::invoke:\n      function: ovh:CloudProject:getInstances\n      arguments:\n        serviceName: YYYY\n        region: XXXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"region":{"type":"string","description":"Instance region.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["region","serviceName"]},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"instances":{"description":"List of instances\n","items":{"$ref":"#/types/ovh:CloudProject/getInstancesInstance:getInstancesInstance"},"type":"array"},"region":{"type":"string"},"serviceName":{"type":"string"}},"required":["instances","region","serviceName","id"],"type":"object"}},"ovh:CloudProject/getKube:getKube":{"description":"Use this data source to get a OVHcloud Managed Kubernetes Service cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst myKubeCluster = ovh.CloudProject.getKube({\n    serviceName: \"XXXXXX\",\n    kubeId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n});\nexport const version = myKubeCluster.then(myKubeCluster =\u003e myKubeCluster.version);\nexport const kubeconfig = myKubeCluster.then(myKubeCluster =\u003e myKubeCluster.kubeconfig);\nexport const kubeHost = myKubeCluster.then(myKubeCluster =\u003e myKubeCluster.kubeconfigAttributes?.[0]?.host);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_kube_cluster = ovh.CloudProject.get_kube(service_name=\"XXXXXX\",\n    kube_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\npulumi.export(\"version\", my_kube_cluster.version)\npulumi.export(\"kubeconfig\", my_kube_cluster.kubeconfig)\npulumi.export(\"kubeHost\", my_kube_cluster.kubeconfig_attributes[0].host)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myKubeCluster = Ovh.CloudProject.GetKube.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        KubeId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"version\"] = myKubeCluster.Apply(getKubeResult =\u003e getKubeResult.Version),\n        [\"kubeconfig\"] = myKubeCluster.Apply(getKubeResult =\u003e getKubeResult.Kubeconfig),\n        [\"kubeHost\"] = myKubeCluster.Apply(getKubeResult =\u003e getKubeResult.KubeconfigAttributes[0]?.Host),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tmyKubeCluster, err := cloudproject.GetKube(ctx, \u0026cloudproject.GetKubeArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tKubeId:      \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"version\", myKubeCluster.Version)\n\t\tctx.Export(\"kubeconfig\", myKubeCluster.Kubeconfig)\n\t\tctx.Export(\"kubeHost\", myKubeCluster.KubeconfigAttributes[0].Host)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetKubeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myKubeCluster = CloudProjectFunctions.getKube(GetKubeArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .kubeId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\n            .build());\n\n        ctx.export(\"version\", myKubeCluster.version());\n        ctx.export(\"kubeconfig\", myKubeCluster.kubeconfig());\n        ctx.export(\"kubeHost\", myKubeCluster.kubeconfigAttributes()[0].host());\n    }\n}\n```\n```yaml\nvariables:\n  myKubeCluster:\n    fn::invoke:\n      function: ovh:CloudProject:getKube\n      arguments:\n        serviceName: XXXXXX\n        kubeId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\noutputs:\n  version: ${myKubeCluster.version}\n  kubeconfig: ${myKubeCluster.kubeconfig}\n  kubeHost: ${myKubeCluster.kubeconfigAttributes[0].host}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKube.\n","properties":{"customizationApiservers":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/getKubeCustomizationApiserver:getKubeCustomizationApiserver"},"description":"Kubernetes API server customization\n"},"customizationKubeProxy":{"$ref":"#/types/ovh:CloudProject/getKubeCustomizationKubeProxy:getKubeCustomizationKubeProxy","description":"Kubernetes kube-proxy customization\n"},"customizations":{"type":"array","items":{"$ref":"#/types/ovh:CloudProject/getKubeCustomization:getKubeCustomization"},"description":"**Deprecated** (Optional) Use `customization_apiserver` and `customization_kube_proxy` instead. Kubernetes cluster customization\n","deprecationMessage":"Use customization_apiserver instead"},"kubeId":{"type":"string","description":"The id of the managed kubernetes cluster.\n"},"kubeProxyMode":{"type":"string","description":"Selected mode for kube-proxy.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the managed kubernetes cluster.\n"},"plan":{"type":"string","description":"Plan of the managed kubernetes cluster.\n"},"region":{"type":"string","description":"The OVHcloud public cloud region ID of the managed kubernetes cluster.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"updatePolicy":{"type":"string","description":"Cluster update policy. Choose between [ALWAYS_UPDATE,MINIMAL_DOWNTIME,NEVER_UPDATE]'.\n"},"version":{"type":"string","description":"Kubernetes version of the managed kubernetes cluster.\n"}},"type":"object","required":["kubeId","serviceName"]},"outputs":{"description":"A collection of values returned by getKube.\n","properties":{"controlPlaneIsUpToDate":{"description":"True if control-plane is up-to-date.\n","type":"boolean"},"customizationApiservers":{"description":"Kubernetes API server customization\n","items":{"$ref":"#/types/ovh:CloudProject/getKubeCustomizationApiserver:getKubeCustomizationApiserver"},"type":"array"},"customizationKubeProxy":{"$ref":"#/types/ovh:CloudProject/getKubeCustomizationKubeProxy:getKubeCustomizationKubeProxy","description":"Kubernetes kube-proxy customization\n"},"customizations":{"deprecationMessage":"Use customization_apiserver instead","description":"**Deprecated** (Optional) Use `customization_apiserver` and `customization_kube_proxy` instead. Kubernetes cluster customization\n","items":{"$ref":"#/types/ovh:CloudProject/getKubeCustomization:getKubeCustomization"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"isUpToDate":{"description":"True if all nodes and control-plane are up-to-date.\n","type":"boolean"},"kubeId":{"description":"See Argument Reference above.\n","type":"string"},"kubeProxyMode":{"description":"Selected mode for kube-proxy.\n","type":"string"},"kubeconfig":{"description":"(Sensitive) Raw kubeconfig file content for connecting to the cluster.\n","secret":true,"type":"string"},"kubeconfigAttributes":{"description":"(Sensitive) Structured kubeconfig data for connecting to the cluster.\n","items":{"$ref":"#/types/ovh:CloudProject/getKubeKubeconfigAttribute:getKubeKubeconfigAttribute"},"secret":true,"type":"array"},"loadBalancersSubnetId":{"description":"Openstack private network (or vRack) ID to use for load balancers.\n","type":"string"},"name":{"description":"The name of the managed kubernetes cluster.\n","type":"string"},"nextUpgradeVersions":{"description":"Kubernetes versions available for upgrade.\n","items":{"type":"string"},"type":"array"},"nodesSubnetId":{"description":"Openstack private network (or vRack) ID to use for nodes.\n","type":"string"},"nodesUrl":{"description":"Cluster nodes URL.\n","type":"string"},"plan":{"description":"Plan of the managed kubernetes cluster.\n","type":"string"},"privateNetworkId":{"description":"OpenStack private network (or vrack) ID to use.\n","type":"string"},"region":{"description":"The OVHcloud public cloud region ID of the managed kubernetes cluster.\n","type":"string"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"},"status":{"description":"Cluster status. Should be normally set to 'READY'.\n","type":"string"},"updatePolicy":{"description":"Cluster update policy. Choose between [ALWAYS_UPDATE,MINIMAL_DOWNTIME,NEVER_UPDATE]'.\n","type":"string"},"url":{"description":"Management URL of your cluster.\n","type":"string"},"version":{"description":"Kubernetes version of the managed kubernetes cluster.\n","type":"string"}},"required":["controlPlaneIsUpToDate","customizations","customizationApiservers","isUpToDate","kubeId","kubeconfig","kubeconfigAttributes","loadBalancersSubnetId","nextUpgradeVersions","nodesSubnetId","nodesUrl","privateNetworkId","serviceName","status","url","id"],"type":"object"}},"ovh:CloudProject/getKubeIpRestrictions:getKubeIpRestrictions":{"description":"Use this data source to get a OVHcloud Managed Kubernetes Service cluster IP restrictions.\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 ipRestrictions = ovh.CloudProject.getKubeIpRestrictions({\n    serviceName: \"XXXXXX\",\n    kubeId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n});\nexport const ips = ipRestrictions.then(ipRestrictions =\u003e ipRestrictions.ips);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nip_restrictions = ovh.CloudProject.get_kube_ip_restrictions(service_name=\"XXXXXX\",\n    kube_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\npulumi.export(\"ips\", ip_restrictions.ips)\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 ipRestrictions = Ovh.CloudProject.GetKubeIpRestrictions.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        KubeId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ips\"] = ipRestrictions.Apply(getKubeIpRestrictionsResult =\u003e getKubeIpRestrictionsResult.Ips),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tipRestrictions, err := cloudproject.GetKubeIpRestrictions(ctx, \u0026cloudproject.GetKubeIpRestrictionsArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tKubeId:      \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ips\", ipRestrictions.Ips)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetKubeIpRestrictionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 ipRestrictions = CloudProjectFunctions.getKubeIpRestrictions(GetKubeIpRestrictionsArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .kubeId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\n            .build());\n\n        ctx.export(\"ips\", ipRestrictions.ips());\n    }\n}\n```\n```yaml\nvariables:\n  ipRestrictions:\n    fn::invoke:\n      function: ovh:CloudProject:getKubeIpRestrictions\n      arguments:\n        serviceName: XXXXXX\n        kubeId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\noutputs:\n  ips: ${ipRestrictions.ips}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKubeIpRestrictions.\n","properties":{"kubeId":{"type":"string","description":"The id of the managed kubernetes cluster.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"type":"object","required":["kubeId","serviceName"]},"outputs":{"description":"A collection of values returned by getKubeIpRestrictions.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"ips":{"description":"The list of CIDRs that restricts the access to the API server.\n","items":{"type":"string"},"type":"array"},"kubeId":{"description":"See Argument Reference above.\n","type":"string"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"}},"required":["ips","kubeId","serviceName","id"],"type":"object"}},"ovh:CloudProject/getKubeNodePool:getKubeNodePool":{"description":"Use this data source to get a OVHcloud Managed Kubernetes node pool.\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 nodepool = ovh.CloudProject.getKubeNodePool({\n    serviceName: \"XXXXXX\",\n    kubeId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxx\",\n    name: \"xxxxxx\",\n});\nexport const maxNodes = nodepool.then(nodepool =\u003e nodepool.maxNodes);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nnodepool = ovh.CloudProject.get_kube_node_pool(service_name=\"XXXXXX\",\n    kube_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxx\",\n    name=\"xxxxxx\")\npulumi.export(\"maxNodes\", nodepool.max_nodes)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var nodepool = Ovh.CloudProject.GetKubeNodePool.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        KubeId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxx\",\n        Name = \"xxxxxx\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"maxNodes\"] = nodepool.Apply(getKubeNodePoolResult =\u003e getKubeNodePoolResult.MaxNodes),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tnodepool, err := cloudproject.GetKubeNodePool(ctx, \u0026cloudproject.GetKubeNodePoolArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tKubeId:      \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxx\",\n\t\t\tName:        \"xxxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"maxNodes\", nodepool.MaxNodes)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetKubeNodePoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 nodepool = CloudProjectFunctions.getKubeNodePool(GetKubeNodePoolArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .kubeId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxx\")\n            .name(\"xxxxxx\")\n            .build());\n\n        ctx.export(\"maxNodes\", nodepool.maxNodes());\n    }\n}\n```\n```yaml\nvariables:\n  nodepool:\n    fn::invoke:\n      function: ovh:CloudProject:getKubeNodePool\n      arguments:\n        serviceName: XXXXXX\n        kubeId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxx\n        name: xxxxxx\noutputs:\n  maxNodes: ${nodepool.maxNodes}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKubeNodePool.\n","properties":{"availabilityZones":{"type":"array","items":{"type":"string"},"description":"list of availability zones to associate the pool - **mandatory for multi-zone** cluster - only one zone is supported at the moment.\n"},"kubeId":{"type":"string","description":"The id of the managed kubernetes cluster.\n"},"name":{"type":"string","description":"The name of the node pool.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"template":{"$ref":"#/types/ovh:CloudProject/getKubeNodePoolTemplate:getKubeNodePoolTemplate"}},"type":"object","required":["kubeId","name","serviceName"]},"outputs":{"description":"A collection of values returned by getKubeNodePool.\n","properties":{"antiAffinity":{"description":"(Optional) should the pool use the anti-affinity feature. Default to `false`.\n","type":"boolean"},"autoscale":{"description":"(Optional) Enable auto-scaling for the pool. Default to `false`.\n","type":"boolean"},"autoscalingScaleDownUnneededTimeSeconds":{"description":"(Optional) scaleDownUnneededTimeSeconds autoscaling parameter How long a node should be unneeded before it is eligible for scale down\n","type":"integer"},"autoscalingScaleDownUnreadyTimeSeconds":{"description":"(Optional) scaleDownUnreadyTimeSeconds autoscaling parameter How long an unready node should be unneeded before it is eligible for scale down\n","type":"integer"},"autoscalingScaleDownUtilizationThreshold":{"description":"(Optional) scaleDownUtilizationThreshold autoscaling parameter Node utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down\n","type":"number"},"availabilityZones":{"description":"list of availability zones to associate the pool - **mandatory for multi-zone** cluster - only one zone is supported at the moment.\n","items":{"type":"string"},"type":"array"},"availableNodes":{"description":"Number of nodes which are actually ready in the pool\n","type":"integer"},"createdAt":{"description":"Creation date\n","type":"string"},"currentNodes":{"description":"Number of nodes present in the pool\n","type":"integer"},"desiredNodes":{"description":"Number of nodes you desire in the pool\n","type":"integer"},"flavor":{"description":"Flavor name\n","type":"string"},"flavorName":{"description":"a valid OVHcloud public cloud flavor ID in which the nodes will be started. Ex: \"b2-7\". Changing this value recreates the resource. You can find the list of flavor IDs: https://www.ovhcloud.com/fr/public-cloud/prices/\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"kubeId":{"description":"See Argument Reference above.\n","type":"string"},"maxNodes":{"description":"maximum number of nodes allowed in the pool. Setting `desired_nodes` over this value will raise an error.\n","type":"integer"},"minNodes":{"description":"minimum number of nodes allowed in the pool. Setting `desired_nodes` under this value will raise an error.\n","type":"integer"},"monthlyBilled":{"description":"(Optional) should the nodes be billed on a monthly basis. Default to `false`.\n","type":"boolean"},"name":{"description":"(Optional) The name of the nodepool. Changing this value recreates the resource. Warning: \"_\" char is not allowed!\n","type":"string"},"projectId":{"description":"Project id\n","type":"string"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"},"sizeStatus":{"description":"Status describing the state between number of nodes wanted and available ones\n","type":"string"},"status":{"description":"Current status\n","type":"string"},"template":{"$ref":"#/types/ovh:CloudProject/getKubeNodePoolTemplate:getKubeNodePoolTemplate"},"upToDateNodes":{"description":"Number of nodes with the latest version installed in the pool\n","type":"integer"},"updatedAt":{"description":"Last update date\n","type":"string"}},"required":["antiAffinity","autoscale","autoscalingScaleDownUnneededTimeSeconds","autoscalingScaleDownUnreadyTimeSeconds","autoscalingScaleDownUtilizationThreshold","availableNodes","createdAt","currentNodes","desiredNodes","flavor","flavorName","kubeId","maxNodes","minNodes","monthlyBilled","name","projectId","serviceName","sizeStatus","status","upToDateNodes","updatedAt","id"],"type":"object"}},"ovh:CloudProject/getKubeNodePoolNodes:getKubeNodePoolNodes":{"description":"Use this data source to get a list of OVHcloud Managed Kubernetes nodes in a specific node pool.\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\nexport = async () =\u003e {\n    const nodes = await ovh.CloudProject.getKubeNodePoolNodes({\n        serviceName: \"XXXXXX\",\n        kubeId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxx\",\n        name: \"XXXXXX\",\n    });\n    return {\n        nodes: nodes,\n    };\n}\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nnodes = ovh.CloudProject.get_kube_node_pool_nodes(service_name=\"XXXXXX\",\n    kube_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxx\",\n    name=\"XXXXXX\")\npulumi.export(\"nodes\", nodes)\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 nodes = Ovh.CloudProject.GetKubeNodePoolNodes.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        KubeId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxx\",\n        Name = \"XXXXXX\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"nodes\"] = nodes,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tnodes, err := cloudproject.GetKubeNodePoolNodes(ctx, \u0026cloudproject.GetKubeNodePoolNodesArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tKubeId:      \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxx\",\n\t\t\tName:        \"XXXXXX\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"nodes\", nodes)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetKubeNodePoolNodesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 nodes = CloudProjectFunctions.getKubeNodePoolNodes(GetKubeNodePoolNodesArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .kubeId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxx\")\n            .name(\"XXXXXX\")\n            .build());\n\n        ctx.export(\"nodes\", nodes);\n    }\n}\n```\n```yaml\nvariables:\n  nodes:\n    fn::invoke:\n      function: ovh:CloudProject:getKubeNodePoolNodes\n      arguments:\n        serviceName: XXXXXX\n        kubeId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxx\n        name: XXXXXX\noutputs:\n  nodes: ${nodes}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKubeNodePoolNodes.\n","properties":{"kubeId":{"type":"string","description":"The ID of the managed kubernetes cluster.\n"},"name":{"type":"string","description":"Name of the node pool from which we want the nodes.\n"},"serviceName":{"type":"string","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["kubeId","name","serviceName"]},"outputs":{"description":"A collection of values returned by getKubeNodePoolNodes.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"kubeId":{"description":"See Argument Reference above.\n","type":"string"},"name":{"description":"Name of the node.\n","type":"string"},"nodes":{"description":"List of all nodes composing the kubernetes cluster.\n","items":{"$ref":"#/types/ovh:CloudProject/getKubeNodePoolNodesNode:getKubeNodePoolNodesNode"},"type":"array"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"}},"required":["kubeId","name","nodes","serviceName","id"],"type":"object"}},"ovh:CloudProject/getKubeNodes:getKubeNodes":{"description":"Use this data source to get a list of OVHcloud Managed Kubernetes nodes.\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\nexport = async () =\u003e {\n    const nodes = await ovh.CloudProject.getKubeNodes({\n        serviceName: \"XXXXXX\",\n        kubeId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxx\",\n    });\n    return {\n        nodes: nodes,\n    };\n}\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nnodes = ovh.CloudProject.get_kube_nodes(service_name=\"XXXXXX\",\n    kube_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxx\")\npulumi.export(\"nodes\", nodes)\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 nodes = Ovh.CloudProject.GetKubeNodes.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        KubeId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxx\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"nodes\"] = nodes,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tnodes, err := cloudproject.GetKubeNodes(ctx, \u0026cloudproject.GetKubeNodesArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tKubeId:      \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"nodes\", nodes)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetKubeNodesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 nodes = CloudProjectFunctions.getKubeNodes(GetKubeNodesArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .kubeId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxx\")\n            .build());\n\n        ctx.export(\"nodes\", nodes);\n    }\n}\n```\n```yaml\nvariables:\n  nodes:\n    fn::invoke:\n      function: ovh:CloudProject:getKubeNodes\n      arguments:\n        serviceName: XXXXXX\n        kubeId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxx\noutputs:\n  nodes: ${nodes}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKubeNodes.\n","properties":{"kubeId":{"type":"string","description":"The ID of the managed kubernetes cluster.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["kubeId","serviceName"]},"outputs":{"description":"A collection of values returned by getKubeNodes.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"kubeId":{"description":"See Argument Reference above.\n","type":"string"},"nodes":{"description":"List of all nodes composing the kubernetes cluster\n","items":{"$ref":"#/types/ovh:CloudProject/getKubeNodesNode:getKubeNodesNode"},"type":"array"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"}},"required":["kubeId","nodes","serviceName","id"],"type":"object"}},"ovh:CloudProject/getKubeOidc:getKubeOidc":{"description":"Use this data source to get a OVHcloud Managed Kubernetes Service cluster OIDC.\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\nexport = async () =\u003e {\n    const oidc = await ovh.CloudProject.getKubeOidc({\n        serviceName: \"XXXXXX\",\n        kubeId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n    });\n    return {\n        \"oidc-val\": oidc.clientId,\n    };\n}\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\noidc = ovh.CloudProject.get_kube_oidc(service_name=\"XXXXXX\",\n    kube_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\npulumi.export(\"oidc-val\", oidc.client_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var oidc = Ovh.CloudProject.GetKubeOidc.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        KubeId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"oidc-val\"] = oidc.Apply(getKubeOidcResult =\u003e getKubeOidcResult.ClientId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\toidc, err := cloudproject.GetKubeOidc(ctx, \u0026cloudproject.GetKubeOidcArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tKubeId:      \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"oidc-val\", oidc.ClientId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetKubeOidcArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 oidc = CloudProjectFunctions.getKubeOidc(GetKubeOidcArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .kubeId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\n            .build());\n\n        ctx.export(\"oidc-val\", oidc.clientId());\n    }\n}\n```\n```yaml\nvariables:\n  oidc:\n    fn::invoke:\n      function: ovh:CloudProject:getKubeOidc\n      arguments:\n        serviceName: XXXXXX\n        kubeId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\noutputs:\n  oidc-val: ${oidc.clientId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKubeOidc.\n","properties":{"clientId":{"type":"string","description":"The OIDC client ID.\n"},"issuerUrl":{"type":"string","description":"The OIDC issuer url.\n"},"kubeId":{"type":"string","description":"The id of the managed kubernetes cluster.\n","willReplaceOnChanges":true},"oidcCaContent":{"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","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","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","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","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"type":"object","required":["kubeId","serviceName"]},"outputs":{"description":"A collection of values returned by getKubeOidc.\n","properties":{"clientId":{"description":"The OIDC client ID.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"issuerUrl":{"description":"The OIDC issuer url.\n","type":"string"},"kubeId":{"description":"See Argument Reference above.\n","type":"string"},"oidcCaContent":{"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","type":"string"},"oidcGroupsClaims":{"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","items":{"type":"string"},"type":"array"},"oidcGroupsPrefix":{"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","type":"string"},"oidcRequiredClaims":{"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","items":{"type":"string"},"type":"array"},"oidcSigningAlgs":{"description":"Array of signing algorithms accepted. Default is \\\"RS256\\\".\n","items":{"type":"string"},"type":"array"},"oidcUsernameClaim":{"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","type":"string"},"oidcUsernamePrefix":{"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","type":"string"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"}},"required":["kubeId","serviceName","id"],"type":"object"}},"ovh:CloudProject/getLoadBalancer:getLoadBalancer":{"description":"Get the details of a public cloud project loadbalancer.\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\nexport = async () =\u003e {\n    const lb = await ovh.CloudProject.getLoadBalancer({\n        serviceName: \"XXXXXX\",\n        regionName: \"XXX\",\n        id: \"XXX\",\n    });\n    return {\n        lb: lb,\n    };\n}\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.CloudProject.get_load_balancer(service_name=\"XXXXXX\",\n    region_name=\"XXX\",\n    id=\"XXX\")\npulumi.export(\"lb\", lb)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var lb = Ovh.CloudProject.GetLoadBalancer.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        RegionName = \"XXX\",\n        Id = \"XXX\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"lb\"] = lb,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tlb, err := cloudproject.GetLoadBalancer(ctx, \u0026cloudproject.GetLoadBalancerArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tRegionName:  \"XXX\",\n\t\t\tId:          \"XXX\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"lb\", lb)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetLoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var lb = CloudProjectFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .regionName(\"XXX\")\n            .id(\"XXX\")\n            .build());\n\n        ctx.export(\"lb\", lb);\n    }\n}\n```\n```yaml\nvariables:\n  lb:\n    fn::invoke:\n      function: ovh:CloudProject:getLoadBalancer\n      arguments:\n        serviceName: XXXXXX\n        regionName: XXX\n        id: XXX\noutputs:\n  lb: ${lb}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLoadBalancer.\n","properties":{"id":{"type":"string","description":"ID of the loadbalancer\n"},"regionName":{"type":"string","description":"Region of the loadbalancer.\n"},"serviceName":{"type":"string","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["id","regionName","serviceName"]},"outputs":{"description":"A collection of values returned by getLoadBalancer.\n","properties":{"createdAt":{"description":"Date of creation of the loadbalancer\n","type":"string"},"flavorId":{"description":"ID of the flavor\n","type":"string"},"floatingIp":{"$ref":"#/types/ovh:CloudProject/getLoadBalancerFloatingIp:getLoadBalancerFloatingIp","description":"Information about the floating IP\n"},"id":{"description":"ID of the floating IP\n","type":"string"},"name":{"description":"Name of the loadbalancer\n","type":"string"},"operatingStatus":{"description":"Operating status of the loadbalancer\n","type":"string"},"provisioningStatus":{"description":"Provisioning status of the loadbalancer\n","type":"string"},"regionName":{"description":"Region of the loadbalancer\n","type":"string"},"serviceName":{"description":"ID of the public cloud project\n","type":"string"},"updatedAt":{"description":"Last update date of the loadbalancer\n","type":"string"},"vipAddress":{"description":"IP address of the Virtual IP\n","type":"string"},"vipNetworkId":{"description":"Openstack ID of the network for the Virtual IP\n","type":"string"},"vipSubnetId":{"description":"ID of the subnet for the Virtual IP\n","type":"string"}},"required":["createdAt","flavorId","floatingIp","id","name","operatingStatus","provisioningStatus","regionName","serviceName","updatedAt","vipAddress","vipNetworkId","vipSubnetId"],"type":"object"}},"ovh:CloudProject/getLoadBalancerFlavors:getLoadBalancerFlavors":{"description":"List loadbalancer flavors in the given public cloud region.\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 flavors = ovh.CloudProject.getLoadBalancerFlavors({\n    serviceName: \"\u003cpublic cloud project ID\u003e\",\n    regionName: \"GRA9\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nflavors = ovh.CloudProject.get_load_balancer_flavors(service_name=\"\u003cpublic cloud project ID\u003e\",\n    region_name=\"GRA9\")\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 flavors = Ovh.CloudProject.GetLoadBalancerFlavors.Invoke(new()\n    {\n        ServiceName = \"\u003cpublic cloud project ID\u003e\",\n        RegionName = \"GRA9\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetLoadBalancerFlavors(ctx, \u0026cloudproject.GetLoadBalancerFlavorsArgs{\n\t\t\tServiceName: \"\u003cpublic cloud project ID\u003e\",\n\t\t\tRegionName:  \"GRA9\",\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.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetLoadBalancerFlavorsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 flavors = CloudProjectFunctions.getLoadBalancerFlavors(GetLoadBalancerFlavorsArgs.builder()\n            .serviceName(\"\u003cpublic cloud project ID\u003e\")\n            .regionName(\"GRA9\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  flavors:\n    fn::invoke:\n      function: ovh:CloudProject:getLoadBalancerFlavors\n      arguments:\n        serviceName: \u003cpublic cloud project ID\u003e\n        regionName: GRA9\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLoadBalancerFlavors.\n","properties":{"regionName":{"type":"string","description":"Region name\n"},"serviceName":{"type":"string","description":"Service name\n"}},"type":"object","required":["regionName","serviceName"]},"outputs":{"description":"A collection of values returned by getLoadBalancerFlavors.\n","properties":{"flavors":{"items":{"$ref":"#/types/ovh:CloudProject/getLoadBalancerFlavorsFlavor:getLoadBalancerFlavorsFlavor"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"regionName":{"description":"Region name\n","type":"string"},"serviceName":{"description":"Service name\n","type":"string"}},"required":["flavors","regionName","serviceName","id"],"type":"object"}},"ovh:CloudProject/getLoadBalancers:getLoadBalancers":{"description":"List your public cloud loadbalancers.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nexport = async () =\u003e {\n    const lbs = await ovh.CloudProject.getLoadBalancers({\n        serviceName: \"XXXXXX\",\n        regionName: \"XXX\",\n    });\n    return {\n        lbs: lbs,\n    };\n}\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlbs = ovh.CloudProject.get_load_balancers(service_name=\"XXXXXX\",\n    region_name=\"XXX\")\npulumi.export(\"lbs\", lbs)\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 lbs = Ovh.CloudProject.GetLoadBalancers.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        RegionName = \"XXX\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"lbs\"] = lbs,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tlbs, err := cloudproject.GetLoadBalancers(ctx, \u0026cloudproject.GetLoadBalancersArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tRegionName:  \"XXX\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"lbs\", lbs)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetLoadBalancersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 lbs = CloudProjectFunctions.getLoadBalancers(GetLoadBalancersArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .regionName(\"XXX\")\n            .build());\n\n        ctx.export(\"lbs\", lbs);\n    }\n}\n```\n```yaml\nvariables:\n  lbs:\n    fn::invoke:\n      function: ovh:CloudProject:getLoadBalancers\n      arguments:\n        serviceName: XXXXXX\n        regionName: XXX\noutputs:\n  lbs: ${lbs}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLoadBalancers.\n","properties":{"regionName":{"type":"string","description":"Region of the loadbalancers.\n"},"serviceName":{"type":"string","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["regionName","serviceName"]},"outputs":{"description":"A collection of values returned by getLoadBalancers.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"loadbalancers":{"description":"List of loadbalancer\n","items":{"$ref":"#/types/ovh:CloudProject/getLoadBalancersLoadbalancer:getLoadBalancersLoadbalancer"},"type":"array"},"regionName":{"description":"Region of the loadbalancers\n","type":"string"},"serviceName":{"description":"ID of the public cloud project\n","type":"string"}},"required":["loadbalancers","regionName","serviceName","id"],"type":"object"}},"ovh:CloudProject/getM3dbNamespace:getM3dbNamespace":{"description":"Use this data source to get information about a namespace of a M3DB cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst m3dbNamespace = ovh.CloudProject.getM3dbNamespace({\n    serviceName: \"XXX\",\n    clusterId: \"YYY\",\n    name: \"ZZZ\",\n});\nexport const m3dbnamespaceType = m3dbNamespace.then(m3dbNamespace =\u003e m3dbNamespace.type);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nm3db_namespace = ovh.CloudProject.get_m3db_namespace(service_name=\"XXX\",\n    cluster_id=\"YYY\",\n    name=\"ZZZ\")\npulumi.export(\"m3dbnamespaceType\", m3db_namespace.type)\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 m3dbNamespace = Ovh.CloudProject.GetM3dbNamespace.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        ClusterId = \"YYY\",\n        Name = \"ZZZ\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"m3dbnamespaceType\"] = m3dbNamespace.Apply(getM3dbNamespaceResult =\u003e getM3dbNamespaceResult.Type),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tm3dbNamespace, err := cloudproject.GetM3dbNamespace(ctx, \u0026cloudproject.GetM3dbNamespaceArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tClusterId:   \"YYY\",\n\t\t\tName:        \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"m3dbnamespaceType\", m3dbNamespace.Type)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetM3dbNamespaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 m3dbNamespace = CloudProjectFunctions.getM3dbNamespace(GetM3dbNamespaceArgs.builder()\n            .serviceName(\"XXX\")\n            .clusterId(\"YYY\")\n            .name(\"ZZZ\")\n            .build());\n\n        ctx.export(\"m3dbnamespaceType\", m3dbNamespace.type());\n    }\n}\n```\n```yaml\nvariables:\n  m3dbNamespace:\n    fn::invoke:\n      function: ovh:CloudProject:getM3dbNamespace\n      arguments:\n        serviceName: XXX\n        clusterId: YYY\n        name: ZZZ\noutputs:\n  m3dbnamespaceType: ${m3dbNamespace.type}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getM3dbNamespace.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"name":{"type":"string","description":"Name of the namespace.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","name","serviceName"]},"outputs":{"description":"A collection of values returned by getM3dbNamespace.\n","properties":{"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"name":{"description":"See Argument Reference above.\n","type":"string"},"resolution":{"description":"Resolution for an aggregated namespace.\n","type":"string"},"retentionBlockDataExpirationDuration":{"description":"Controls how long we wait before expiring stale data.\n","type":"string"},"retentionBlockSizeDuration":{"description":"Controls how long to keep a block in memory before flushing to a fileset on disk.\n","type":"string"},"retentionBufferFutureDuration":{"description":"Controls how far into the future writes to the namespace will be accepted.\n","type":"string"},"retentionBufferPastDuration":{"description":"Controls how far into the past writes to the namespace will be accepted.\n","type":"string"},"retentionPeriodDuration":{"description":"Controls the duration of time that M3DB will retain data for the namespace.\n","type":"string"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"},"snapshotEnabled":{"description":"SDefines whether M3db will create snapshot files for this namespace.\n","type":"boolean"},"type":{"description":"Type of namespace.\n","type":"string"},"writesToCommitLogEnabled":{"description":"Defines whether M3DB will include writes to this namespace in the commit log.\n","type":"boolean"}},"required":["clusterId","name","resolution","retentionBlockDataExpirationDuration","retentionBlockSizeDuration","retentionBufferFutureDuration","retentionBufferPastDuration","retentionPeriodDuration","serviceName","snapshotEnabled","type","writesToCommitLogEnabled","id"],"type":"object"}},"ovh:CloudProject/getM3dbNamespaces:getM3dbNamespaces":{"description":"Use this data source to get the list of namespaces of a M3DB cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst namespaces = ovh.CloudProject.getM3dbNamespaces({\n    serviceName: \"XXX\",\n    clusterId: \"YYY\",\n});\nexport const namespaceIds = namespaces.then(namespaces =\u003e namespaces.namespaceIds);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nnamespaces = ovh.CloudProject.get_m3db_namespaces(service_name=\"XXX\",\n    cluster_id=\"YYY\")\npulumi.export(\"namespaceIds\", namespaces.namespace_ids)\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 namespaces = Ovh.CloudProject.GetM3dbNamespaces.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        ClusterId = \"YYY\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"namespaceIds\"] = namespaces.Apply(getM3dbNamespacesResult =\u003e getM3dbNamespacesResult.NamespaceIds),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tnamespaces, err := cloudproject.GetM3dbNamespaces(ctx, \u0026cloudproject.GetM3dbNamespacesArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tClusterId:   \"YYY\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"namespaceIds\", namespaces.NamespaceIds)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetM3dbNamespacesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 namespaces = CloudProjectFunctions.getM3dbNamespaces(GetM3dbNamespacesArgs.builder()\n            .serviceName(\"XXX\")\n            .clusterId(\"YYY\")\n            .build());\n\n        ctx.export(\"namespaceIds\", namespaces.namespaceIds());\n    }\n}\n```\n```yaml\nvariables:\n  namespaces:\n    fn::invoke:\n      function: ovh:CloudProject:getM3dbNamespaces\n      arguments:\n        serviceName: XXX\n        clusterId: YYY\noutputs:\n  namespaceIds: ${namespaces.namespaceIds}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getM3dbNamespaces.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","serviceName"]},"outputs":{"description":"A collection of values returned by getM3dbNamespaces.\n","properties":{"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"namespaceIds":{"description":"The list of namespaces ids of the M3DB cluster associated with the project.\n","items":{"type":"string"},"type":"array"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"}},"required":["clusterId","namespaceIds","serviceName","id"],"type":"object"}},"ovh:CloudProject/getM3dbUser:getM3dbUser":{"description":"Use this data source to get information about a user of a M3DB cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst m3dbUser = ovh.CloudProject.getM3dbUser({\n    serviceName: \"XXX\",\n    clusterId: \"YYY\",\n    name: \"ZZZ\",\n});\nexport const m3dbUserGroup = m3dbUser.then(m3dbUser =\u003e m3dbUser.group);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nm3db_user = ovh.CloudProject.get_m3db_user(service_name=\"XXX\",\n    cluster_id=\"YYY\",\n    name=\"ZZZ\")\npulumi.export(\"m3dbUserGroup\", m3db_user.group)\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 m3dbUser = Ovh.CloudProject.GetM3dbUser.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        ClusterId = \"YYY\",\n        Name = \"ZZZ\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"m3dbUserGroup\"] = m3dbUser.Apply(getM3dbUserResult =\u003e getM3dbUserResult.Group),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tm3dbUser, err := cloudproject.GetM3dbUser(ctx, \u0026cloudproject.GetM3dbUserArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tClusterId:   \"YYY\",\n\t\t\tName:        \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"m3dbUserGroup\", m3dbUser.Group)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetM3dbUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 m3dbUser = CloudProjectFunctions.getM3dbUser(GetM3dbUserArgs.builder()\n            .serviceName(\"XXX\")\n            .clusterId(\"YYY\")\n            .name(\"ZZZ\")\n            .build());\n\n        ctx.export(\"m3dbUserGroup\", m3dbUser.group());\n    }\n}\n```\n```yaml\nvariables:\n  m3dbUser:\n    fn::invoke:\n      function: ovh:CloudProject:getM3dbUser\n      arguments:\n        serviceName: XXX\n        clusterId: YYY\n        name: ZZZ\noutputs:\n  m3dbUserGroup: ${m3dbUser.group}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getM3dbUser.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"name":{"type":"string","description":"Name of the user.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","name","serviceName"]},"outputs":{"description":"A collection of values returned by getM3dbUser.\n","properties":{"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"createdAt":{"description":"Date of the creation of the user.\n","type":"string"},"group":{"description":"See Argument Reference above.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"name":{"description":"See Argument Reference above.\n","type":"string"},"serviceName":{"description":"Current status of the user.\n","type":"string"},"status":{"description":"Current status of the user.\n","type":"string"}},"required":["clusterId","createdAt","group","name","serviceName","status","id"],"type":"object"}},"ovh:CloudProject/getMongoDbPrometheus:getMongoDbPrometheus":{"description":"Use this data source to get information about a prometheus of a MongoDB cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst prometheus = ovh.CloudProject.getMongoDbPrometheus({\n    serviceName: \"XXX\",\n    clusterId: \"ZZZ\",\n});\nexport const name = prometheus.then(prometheus =\u003e prometheus.username);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nprometheus = ovh.CloudProject.get_mongo_db_prometheus(service_name=\"XXX\",\n    cluster_id=\"ZZZ\")\npulumi.export(\"name\", prometheus.username)\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 prometheus = Ovh.CloudProject.GetMongoDbPrometheus.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        ClusterId = \"ZZZ\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"name\"] = prometheus.Apply(getMongoDbPrometheusResult =\u003e getMongoDbPrometheusResult.Username),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tprometheus, err := cloudproject.GetMongoDbPrometheus(ctx, \u0026cloudproject.GetMongoDbPrometheusArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tClusterId:   \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"name\", prometheus.Username)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetMongoDbPrometheusArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 prometheus = CloudProjectFunctions.getMongoDbPrometheus(GetMongoDbPrometheusArgs.builder()\n            .serviceName(\"XXX\")\n            .clusterId(\"ZZZ\")\n            .build());\n\n        ctx.export(\"name\", prometheus.username());\n    }\n}\n```\n```yaml\nvariables:\n  prometheus:\n    fn::invoke:\n      function: ovh:CloudProject:getMongoDbPrometheus\n      arguments:\n        serviceName: XXX\n        clusterId: ZZZ\noutputs:\n  name: ${prometheus.username}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getMongoDbPrometheus.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","serviceName"]},"outputs":{"description":"A collection of values returned by getMongoDbPrometheus.\n","properties":{"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"},"srvDomain":{"description":"Name of the srv domain endpoint.\n","type":"string"},"username":{"description":"name of the prometheus user.\n","type":"string"}},"required":["clusterId","serviceName","srvDomain","username","id"],"type":"object"}},"ovh:CloudProject/getMongoDbUser:getMongoDbUser":{"description":"Use this data source to get information about a user of a mongodb cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst mongoUser = ovh.CloudProject.getMongoDbUser({\n    serviceName: \"XXX\",\n    clusterId: \"YYY\",\n    name: \"ZZZ@admin\",\n});\nexport const mongoUserRoles = mongoUser.then(mongoUser =\u003e mongoUser.roles);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmongo_user = ovh.CloudProject.get_mongo_db_user(service_name=\"XXX\",\n    cluster_id=\"YYY\",\n    name=\"ZZZ@admin\")\npulumi.export(\"mongoUserRoles\", mongo_user.roles)\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 mongoUser = Ovh.CloudProject.GetMongoDbUser.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        ClusterId = \"YYY\",\n        Name = \"ZZZ@admin\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"mongoUserRoles\"] = mongoUser.Apply(getMongoDbUserResult =\u003e getMongoDbUserResult.Roles),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tmongoUser, err := cloudproject.GetMongoDbUser(ctx, \u0026cloudproject.GetMongoDbUserArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tClusterId:   \"YYY\",\n\t\t\tName:        \"ZZZ@admin\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"mongoUserRoles\", mongoUser.Roles)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetMongoDbUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 mongoUser = CloudProjectFunctions.getMongoDbUser(GetMongoDbUserArgs.builder()\n            .serviceName(\"XXX\")\n            .clusterId(\"YYY\")\n            .name(\"ZZZ@admin\")\n            .build());\n\n        ctx.export(\"mongoUserRoles\", mongoUser.roles());\n    }\n}\n```\n```yaml\nvariables:\n  mongoUser:\n    fn::invoke:\n      function: ovh:CloudProject:getMongoDbUser\n      arguments:\n        serviceName: XXX\n        clusterId: YYY\n        name: ZZZ@admin\noutputs:\n  mongoUserRoles: ${mongoUser.roles}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getMongoDbUser.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"name":{"type":"string","description":"Name of the user with the authentication database in the format name@authDB, for example: johndoe@admin\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","name","serviceName"]},"outputs":{"description":"A collection of values returned by getMongoDbUser.\n","properties":{"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"createdAt":{"description":"Date of the creation of the user.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"name":{"description":"See Argument Reference above.\n","type":"string"},"roles":{"description":"Roles the user belongs to\n","items":{"type":"string"},"type":"array"},"serviceName":{"description":"Current status of the user.\n","type":"string"},"status":{"description":"Current status of the user.\n","type":"string"}},"required":["clusterId","createdAt","name","roles","serviceName","status","id"],"type":"object"}},"ovh:CloudProject/getNetworkPrivate:getNetworkPrivate":{"description":"Get the details of a public cloud project private network.\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\nexport = async () =\u003e {\n    const _private = await ovh.CloudProject.getNetworkPrivate({\n        serviceName: \"XXXXXX\",\n        networkId: \"XXX\",\n    });\n    return {\n        \"private\": _private,\n    };\n}\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nprivate = ovh.CloudProject.get_network_private(service_name=\"XXXXXX\",\n    network_id=\"XXX\")\npulumi.export(\"private\", private)\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 @private = Ovh.CloudProject.GetNetworkPrivate.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        NetworkId = \"XXX\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"private\"] = @private,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tprivate, err := cloudproject.GetNetworkPrivate(ctx, \u0026cloudproject.GetNetworkPrivateArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tNetworkId:   \"XXX\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"private\", private)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetNetworkPrivateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 private = CloudProjectFunctions.getNetworkPrivate(GetNetworkPrivateArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .networkId(\"XXX\")\n            .build());\n\n        ctx.export(\"private\", private_);\n    }\n}\n```\n```yaml\nvariables:\n  private:\n    fn::invoke:\n      function: ovh:CloudProject:getNetworkPrivate\n      arguments:\n        serviceName: XXXXXX\n        networkId: XXX\noutputs:\n  private: ${private}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNetworkPrivate.\n","properties":{"networkId":{"type":"string","description":"ID of the network\n"},"serviceName":{"type":"string","description":"The ID of the public cloud project.\n"}},"type":"object","required":["networkId","serviceName"]},"outputs":{"description":"A collection of values returned by getNetworkPrivate.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"name":{"description":"Name of the network\n","type":"string"},"networkId":{"description":"ID of the network\n","type":"string"},"regions":{"description":"Information about the private network in the openstack region\n","items":{"$ref":"#/types/ovh:CloudProject/getNetworkPrivateRegion:getNetworkPrivateRegion"},"type":"array"},"regionsOpenstackIds":{"additionalProperties":{"type":"string"},"description":"A map with region name as key, and region-specific openstack id as value\n","type":"object"},"serviceName":{"description":"ID of the public cloud project\n","type":"string"},"status":{"description":"Status of the network\n","type":"string"},"type":{"description":"Type of the network\n","type":"string"},"vlanId":{"description":"VLAN ID of the network\n","type":"number"}},"required":["name","networkId","regions","regionsOpenstackIds","serviceName","status","type","vlanId","id"],"type":"object"}},"ovh:CloudProject/getNetworkPrivateSubnets:getNetworkPrivateSubnets":{"description":"List public cloud project subnets of a private network.\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\nexport = async () =\u003e {\n    const _private = await ovh.CloudProject.getNetworkPrivateSubnets({\n        serviceName: \"XXXXXX\",\n        networkId: \"XXXXXX\",\n    });\n    return {\n        \"private\": _private,\n    };\n}\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nprivate = ovh.CloudProject.get_network_private_subnets(service_name=\"XXXXXX\",\n    network_id=\"XXXXXX\")\npulumi.export(\"private\", private)\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 @private = Ovh.CloudProject.GetNetworkPrivateSubnets.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        NetworkId = \"XXXXXX\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"private\"] = @private,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tprivate, err := cloudproject.GetNetworkPrivateSubnets(ctx, \u0026cloudproject.GetNetworkPrivateSubnetsArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tNetworkId:   \"XXXXXX\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"private\", private)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetNetworkPrivateSubnetsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 private = CloudProjectFunctions.getNetworkPrivateSubnets(GetNetworkPrivateSubnetsArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .networkId(\"XXXXXX\")\n            .build());\n\n        ctx.export(\"private\", private_);\n    }\n}\n```\n```yaml\nvariables:\n  private:\n    fn::invoke:\n      function: ovh:CloudProject:getNetworkPrivateSubnets\n      arguments:\n        serviceName: XXXXXX\n        networkId: XXXXXX\noutputs:\n  private: ${private}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNetworkPrivateSubnets.\n","properties":{"networkId":{"type":"string","description":"ID of the network\n"},"serviceName":{"type":"string","description":"The ID of the public cloud project.\n"}},"type":"object","required":["networkId","serviceName"]},"outputs":{"description":"A collection of values returned by getNetworkPrivateSubnets.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"networkId":{"description":"ID of the network\n","type":"string"},"serviceName":{"description":"ID of the public cloud project\n","type":"string"},"subnets":{"description":"List of subnets\n","items":{"$ref":"#/types/ovh:CloudProject/getNetworkPrivateSubnetsSubnet:getNetworkPrivateSubnetsSubnet"},"type":"array"}},"required":["networkId","serviceName","subnets","id"],"type":"object"}},"ovh:CloudProject/getNetworkPrivates:getNetworkPrivates":{"description":"List public cloud project private networks.\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\nexport = async () =\u003e {\n    const _private = await ovh.CloudProject.getNetworkPrivates({\n        serviceName: \"XXXXXX\",\n    });\n    return {\n        \"private\": _private,\n    };\n}\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nprivate = ovh.CloudProject.get_network_privates(service_name=\"XXXXXX\")\npulumi.export(\"private\", private)\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 @private = Ovh.CloudProject.GetNetworkPrivates.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"private\"] = @private,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tprivate, err := cloudproject.GetNetworkPrivates(ctx, \u0026cloudproject.GetNetworkPrivatesArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"private\", private)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetNetworkPrivatesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 private = CloudProjectFunctions.getNetworkPrivates(GetNetworkPrivatesArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .build());\n\n        ctx.export(\"private\", private_);\n    }\n}\n```\n```yaml\nvariables:\n  private:\n    fn::invoke:\n      function: ovh:CloudProject:getNetworkPrivates\n      arguments:\n        serviceName: XXXXXX\noutputs:\n  private: ${private}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNetworkPrivates.\n","properties":{"serviceName":{"type":"string","description":"The ID of the public cloud project.\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getNetworkPrivates.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"networks":{"description":"List of network\n","items":{"$ref":"#/types/ovh:CloudProject/getNetworkPrivatesNetwork:getNetworkPrivatesNetwork"},"type":"array"},"serviceName":{"description":"ID of the public cloud project\n","type":"string"}},"required":["networks","serviceName","id"],"type":"object"}},"ovh:CloudProject/getOpenSearchPattern:getOpenSearchPattern":{"description":"Use this data source to get information about a pattern of a opensearch cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst pattern = ovh.CloudProject.getOpenSearchPattern({\n    serviceName: \"XXX\",\n    clusterId: \"YYY\",\n    id: \"ZZZ\",\n});\nexport const patternPattern = pattern.then(pattern =\u003e pattern.pattern);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\npattern = ovh.CloudProject.get_open_search_pattern(service_name=\"XXX\",\n    cluster_id=\"YYY\",\n    id=\"ZZZ\")\npulumi.export(\"patternPattern\", pattern.pattern)\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 pattern = Ovh.CloudProject.GetOpenSearchPattern.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        ClusterId = \"YYY\",\n        Id = \"ZZZ\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"patternPattern\"] = pattern.Apply(getOpenSearchPatternResult =\u003e getOpenSearchPatternResult.Pattern),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tpattern, err := cloudproject.GetOpenSearchPattern(ctx, \u0026cloudproject.GetOpenSearchPatternArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tClusterId:   \"YYY\",\n\t\t\tId:          \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"patternPattern\", pattern.Pattern)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetOpenSearchPatternArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 pattern = CloudProjectFunctions.getOpenSearchPattern(GetOpenSearchPatternArgs.builder()\n            .serviceName(\"XXX\")\n            .clusterId(\"YYY\")\n            .id(\"ZZZ\")\n            .build());\n\n        ctx.export(\"patternPattern\", pattern.pattern());\n    }\n}\n```\n```yaml\nvariables:\n  pattern:\n    fn::invoke:\n      function: ovh:CloudProject:getOpenSearchPattern\n      arguments:\n        serviceName: XXX\n        clusterId: YYY\n        id: ZZZ\noutputs:\n  patternPattern: ${pattern.pattern}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getOpenSearchPattern.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"id":{"type":"string","description":"Pattern ID.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","id","serviceName"]},"outputs":{"description":"A collection of values returned by getOpenSearchPattern.\n","properties":{"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"id":{"description":"See Argument Reference above.\n","type":"string"},"maxIndexCount":{"description":"Maximum number of index for this pattern.\n","type":"integer"},"pattern":{"description":"Pattern format.\n","type":"string"},"serviceName":{"description":"Current status of the pattern.\n","type":"string"}},"required":["clusterId","id","maxIndexCount","pattern","serviceName"],"type":"object"}},"ovh:CloudProject/getOpenSearchPatterns:getOpenSearchPatterns":{"description":"Use this data source to get the list of pattern of a opensearch cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst patterns = ovh.CloudProject.getOpenSearchPatterns({\n    serviceName: \"XXX\",\n    clusterId: \"YYY\",\n});\nexport const patternIds = patterns.then(patterns =\u003e patterns.patternIds);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\npatterns = ovh.CloudProject.get_open_search_patterns(service_name=\"XXX\",\n    cluster_id=\"YYY\")\npulumi.export(\"patternIds\", patterns.pattern_ids)\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 patterns = Ovh.CloudProject.GetOpenSearchPatterns.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        ClusterId = \"YYY\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"patternIds\"] = patterns.Apply(getOpenSearchPatternsResult =\u003e getOpenSearchPatternsResult.PatternIds),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tpatterns, err := cloudproject.GetOpenSearchPatterns(ctx, \u0026cloudproject.GetOpenSearchPatternsArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tClusterId:   \"YYY\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"patternIds\", patterns.PatternIds)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetOpenSearchPatternsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 patterns = CloudProjectFunctions.getOpenSearchPatterns(GetOpenSearchPatternsArgs.builder()\n            .serviceName(\"XXX\")\n            .clusterId(\"YYY\")\n            .build());\n\n        ctx.export(\"patternIds\", patterns.patternIds());\n    }\n}\n```\n```yaml\nvariables:\n  patterns:\n    fn::invoke:\n      function: ovh:CloudProject:getOpenSearchPatterns\n      arguments:\n        serviceName: XXX\n        clusterId: YYY\noutputs:\n  patternIds: ${patterns.patternIds}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getOpenSearchPatterns.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","serviceName"]},"outputs":{"description":"A collection of values returned by getOpenSearchPatterns.\n","properties":{"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"patternIds":{"description":"The list of patterns ids of the opensearch cluster associated with the project.\n","items":{"type":"string"},"type":"array"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"}},"required":["clusterId","patternIds","serviceName","id"],"type":"object"}},"ovh:CloudProject/getOpenSearchUser:getOpenSearchUser":{"description":"Use this data source to get information about a user of a opensearch cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst osUser = ovh.CloudProject.getOpenSearchUser({\n    serviceName: \"XXX\",\n    clusterId: \"YYY\",\n    name: \"ZZZ\",\n});\nexport const osUserAcls = osUser.then(osUser =\u003e osUser.acls);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nos_user = ovh.CloudProject.get_open_search_user(service_name=\"XXX\",\n    cluster_id=\"YYY\",\n    name=\"ZZZ\")\npulumi.export(\"osUserAcls\", os_user.acls)\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 osUser = Ovh.CloudProject.GetOpenSearchUser.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        ClusterId = \"YYY\",\n        Name = \"ZZZ\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"osUserAcls\"] = osUser.Apply(getOpenSearchUserResult =\u003e getOpenSearchUserResult.Acls),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tosUser, err := cloudproject.GetOpenSearchUser(ctx, \u0026cloudproject.GetOpenSearchUserArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tClusterId:   \"YYY\",\n\t\t\tName:        \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"osUserAcls\", osUser.Acls)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetOpenSearchUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 osUser = CloudProjectFunctions.getOpenSearchUser(GetOpenSearchUserArgs.builder()\n            .serviceName(\"XXX\")\n            .clusterId(\"YYY\")\n            .name(\"ZZZ\")\n            .build());\n\n        ctx.export(\"osUserAcls\", osUser.acls());\n    }\n}\n```\n```yaml\nvariables:\n  osUser:\n    fn::invoke:\n      function: ovh:CloudProject:getOpenSearchUser\n      arguments:\n        serviceName: XXX\n        clusterId: YYY\n        name: ZZZ\noutputs:\n  osUserAcls: ${osUser.acls}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getOpenSearchUser.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"name":{"type":"string","description":"Name of the user.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","name","serviceName"]},"outputs":{"description":"A collection of values returned by getOpenSearchUser.\n","properties":{"acls":{"description":"Acls of the user.\n","items":{"$ref":"#/types/ovh:CloudProject/getOpenSearchUserAcl:getOpenSearchUserAcl"},"type":"array"},"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"createdAt":{"description":"Date of the creation of the user.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"name":{"description":"Name of the user.\n","type":"string"},"serviceName":{"description":"Current status of the user.\n","type":"string"},"status":{"description":"Current status of the user.\n","type":"string"}},"required":["acls","clusterId","createdAt","name","serviceName","status","id"],"type":"object"}},"ovh:CloudProject/getPrometheus:getPrometheus":{"description":"Use this data source to get information about a prometheus of a database cluster associated with a public cloud project. For mongodb, please use ovh.CloudProjectDatabase.MongoDbPrometheus datasource\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 prometheus = ovh.CloudProject.getPrometheus({\n    serviceName: \"XXX\",\n    engine: \"YYY\",\n    clusterId: \"ZZZ\",\n});\nexport const name = prometheus.then(prometheus =\u003e prometheus.username);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nprometheus = ovh.CloudProject.get_prometheus(service_name=\"XXX\",\n    engine=\"YYY\",\n    cluster_id=\"ZZZ\")\npulumi.export(\"name\", prometheus.username)\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 prometheus = Ovh.CloudProject.GetPrometheus.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        Engine = \"YYY\",\n        ClusterId = \"ZZZ\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"name\"] = prometheus.Apply(getPrometheusResult =\u003e getPrometheusResult.Username),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tprometheus, err := cloudproject.GetPrometheus(ctx, \u0026cloudproject.GetPrometheusArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine:      \"YYY\",\n\t\t\tClusterId:   \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"name\", prometheus.Username)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetPrometheusArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 prometheus = CloudProjectFunctions.getPrometheus(GetPrometheusArgs.builder()\n            .serviceName(\"XXX\")\n            .engine(\"YYY\")\n            .clusterId(\"ZZZ\")\n            .build());\n\n        ctx.export(\"name\", prometheus.username());\n    }\n}\n```\n```yaml\nvariables:\n  prometheus:\n    fn::invoke:\n      function: ovh:CloudProject:getPrometheus\n      arguments:\n        serviceName: XXX\n        engine: YYY\n        clusterId: ZZZ\noutputs:\n  name: ${prometheus.username}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPrometheus.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n","willReplaceOnChanges":true},"engine":{"type":"string","description":"The engine of the database cluster you want user information. To get a full list of available engine visit : [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases). Available engines:\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"type":"object","required":["clusterId","engine","serviceName"]},"outputs":{"description":"A collection of values returned by getPrometheus.\n","properties":{"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"engine":{"description":"See Argument Reference above.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"},"targets":{"description":"List of all endpoint targets.\n* `Host` - Host of the endpoint.\n* `Port` - Connection port for the endpoint.\n","items":{"$ref":"#/types/ovh:CloudProject/getPrometheusTarget:getPrometheusTarget"},"type":"array"},"username":{"description":"name of the prometheus user.\n","type":"string"}},"required":["clusterId","engine","serviceName","targets","username","id"],"type":"object"}},"ovh:CloudProject/getRancher:getRancher":{"description":"Retrieve information about a Managed Rancher Service in the given public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst rancher = ovh.CloudProject.getRancher({\n    projectId: \"\u003cpublic cloud project ID\u003e\",\n    id: \"\u003cRancher service ID\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nrancher = ovh.CloudProject.get_rancher(project_id=\"\u003cpublic cloud project ID\u003e\",\n    id=\"\u003cRancher service ID\u003e\")\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 rancher = Ovh.CloudProject.GetRancher.Invoke(new()\n    {\n        ProjectId = \"\u003cpublic cloud project ID\u003e\",\n        Id = \"\u003cRancher service ID\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetRancher(ctx, \u0026cloudproject.GetRancherArgs{\n\t\t\tProjectId: \"\u003cpublic cloud project ID\u003e\",\n\t\t\tId:        \"\u003cRancher service ID\u003e\",\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.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetRancherArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 rancher = CloudProjectFunctions.getRancher(GetRancherArgs.builder()\n            .projectId(\"\u003cpublic cloud project ID\u003e\")\n            .id(\"\u003cRancher service ID\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  rancher:\n    fn::invoke:\n      function: ovh:CloudProject:getRancher\n      arguments:\n        projectId: \u003cpublic cloud project ID\u003e\n        id: \u003cRancher service ID\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRancher.\n","properties":{"id":{"type":"string","description":"Unique identifier\n"},"projectId":{"type":"string","description":"Project ID\n"}},"type":"object","required":["id","projectId"]},"outputs":{"description":"A collection of values returned by getRancher.\n","properties":{"createdAt":{"description":"Date of the managed Rancher service creation\n","type":"string"},"currentState":{"$ref":"#/types/ovh:CloudProject/getRancherCurrentState:getRancherCurrentState","description":"Current configuration applied to the managed Rancher service\n"},"currentTasks":{"description":"Asynchronous operations ongoing on the managed Rancher service\n","items":{"$ref":"#/types/ovh:CloudProject/getRancherCurrentTask:getRancherCurrentTask"},"type":"array"},"id":{"description":"Unique identifier\n","type":"string"},"projectId":{"description":"Project ID\n","type":"string"},"resourceStatus":{"description":"Reflects the readiness of the managed Rancher service. A new target specification request will be accepted only in `READY` status\n","type":"string"},"targetSpec":{"$ref":"#/types/ovh:CloudProject/getRancherTargetSpec:getRancherTargetSpec","description":"Last target specification of the managed Rancher service\n"},"updatedAt":{"description":"Date of the last managed Rancher service update\n","type":"string"}},"required":["createdAt","currentState","currentTasks","id","projectId","resourceStatus","targetSpec","updatedAt"],"type":"object"}},"ovh:CloudProject/getRancherPlan:getRancherPlan":{"description":"Use this datasource to retrieve information about the Managed Rancher plans available in the given public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst plans = ovh.CloudProject.getRancherPlan({\n    projectId: \"XXXXXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nplans = ovh.CloudProject.get_rancher_plan(project_id=\"XXXXXX\")\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 plans = Ovh.CloudProject.GetRancherPlan.Invoke(new()\n    {\n        ProjectId = \"XXXXXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetRancherPlan(ctx, \u0026cloudproject.GetRancherPlanArgs{\n\t\t\tProjectId: \"XXXXXX\",\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.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetRancherPlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 plans = CloudProjectFunctions.getRancherPlan(GetRancherPlanArgs.builder()\n            .projectId(\"XXXXXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  plans:\n    fn::invoke:\n      function: ovh:CloudProject:getRancherPlan\n      arguments:\n        projectId: XXXXXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRancherPlan.\n","properties":{"projectId":{"type":"string","description":"Project ID\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getRancherPlan.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"plans":{"items":{"$ref":"#/types/ovh:CloudProject/getRancherPlanPlan:getRancherPlanPlan"},"type":"array"},"projectId":{"description":"Project ID\n","type":"string"}},"required":["plans","projectId","id"],"type":"object"}},"ovh:CloudProject/getRancherVersion:getRancherVersion":{"description":"Use this datasource to retrieve information about the Managed Rancher available versions in the given public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst versions = ovh.CloudProject.getRancherVersion({\n    projectId: \"XXXXXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nversions = ovh.CloudProject.get_rancher_version(project_id=\"XXXXXX\")\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 versions = Ovh.CloudProject.GetRancherVersion.Invoke(new()\n    {\n        ProjectId = \"XXXXXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetRancherVersion(ctx, \u0026cloudproject.GetRancherVersionArgs{\n\t\t\tProjectId: \"XXXXXX\",\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.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetRancherVersionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 versions = CloudProjectFunctions.getRancherVersion(GetRancherVersionArgs.builder()\n            .projectId(\"XXXXXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  versions:\n    fn::invoke:\n      function: ovh:CloudProject:getRancherVersion\n      arguments:\n        projectId: XXXXXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRancherVersion.\n","properties":{"projectId":{"type":"string","description":"Project ID\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getRancherVersion.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"projectId":{"description":"Project ID\n","type":"string"},"versions":{"items":{"$ref":"#/types/ovh:CloudProject/getRancherVersionVersion:getRancherVersionVersion"},"type":"array"}},"required":["projectId","versions","id"],"type":"object"}},"ovh:CloudProject/getRedisUser:getRedisUser":{"description":"Use this data source to get information about a user of a redis cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst redisUser = ovh.CloudProject.getRedisUser({\n    serviceName: \"XXX\",\n    clusterId: \"YYY\",\n    name: \"ZZZ\",\n});\nexport const redisUserCommands = redisUser.then(redisUser =\u003e redisUser.commands);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nredis_user = ovh.CloudProject.get_redis_user(service_name=\"XXX\",\n    cluster_id=\"YYY\",\n    name=\"ZZZ\")\npulumi.export(\"redisUserCommands\", redis_user.commands)\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 redisUser = Ovh.CloudProject.GetRedisUser.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        ClusterId = \"YYY\",\n        Name = \"ZZZ\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"redisUserCommands\"] = redisUser.Apply(getRedisUserResult =\u003e getRedisUserResult.Commands),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tredisUser, err := cloudproject.GetRedisUser(ctx, \u0026cloudproject.GetRedisUserArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tClusterId:   \"YYY\",\n\t\t\tName:        \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"redisUserCommands\", redisUser.Commands)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetRedisUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 redisUser = CloudProjectFunctions.getRedisUser(GetRedisUserArgs.builder()\n            .serviceName(\"XXX\")\n            .clusterId(\"YYY\")\n            .name(\"ZZZ\")\n            .build());\n\n        ctx.export(\"redisUserCommands\", redisUser.commands());\n    }\n}\n```\n```yaml\nvariables:\n  redisUser:\n    fn::invoke:\n      function: ovh:CloudProject:getRedisUser\n      arguments:\n        serviceName: XXX\n        clusterId: YYY\n        name: ZZZ\noutputs:\n  redisUserCommands: ${redisUser.commands}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRedisUser.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"name":{"type":"string","description":"Name of the user\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","name","serviceName"]},"outputs":{"description":"A collection of values returned by getRedisUser.\n","properties":{"categories":{"description":"Categories of the user.\n","items":{"type":"string"},"type":"array"},"channels":{"description":"Channels of the user.\n","items":{"type":"string"},"type":"array"},"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"commands":{"description":"Commands of the user.\n","items":{"type":"string"},"type":"array"},"createdAt":{"description":"Date of the creation of the user.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"keys":{"description":"Keys of the user.\n","items":{"type":"string"},"type":"array"},"name":{"description":"See Argument Reference above.\n","type":"string"},"serviceName":{"description":"Current status of the user.\n","type":"string"},"status":{"description":"Current status of the user.\n","type":"string"}},"required":["categories","channels","clusterId","commands","createdAt","keys","name","serviceName","status","id"],"type":"object"}},"ovh:CloudProject/getRegion:getRegion":{"description":"Use this data source to retrieve information about a region associated with a public cloud project. The region must be associated with the project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst GRA1 = ovh.CloudProject.getRegion({\n    serviceName: \"XXXXXX\",\n    name: \"GRA1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ngra1 = ovh.CloudProject.get_region(service_name=\"XXXXXX\",\n    name=\"GRA1\")\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 GRA1 = Ovh.CloudProject.GetRegion.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        Name = \"GRA1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetRegion(ctx, \u0026cloudproject.GetRegionArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tName:        \"GRA1\",\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.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetRegionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 GRA1 = CloudProjectFunctions.getRegion(GetRegionArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .name(\"GRA1\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  GRA1:\n    fn::invoke:\n      function: ovh:CloudProject:getRegion\n      arguments:\n        serviceName: XXXXXX\n        name: GRA1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRegion.\n","properties":{"name":{"type":"string","description":"The name of the region associated with the public cloud project.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"type":"object","required":["name","serviceName"]},"outputs":{"description":"A collection of values returned by getRegion.\n","properties":{"availabilityZones":{"description":"Availability zones of the region\n","items":{"type":"string"},"type":"array"},"continentCode":{"description":"The code of the geographic continent the region is running. E.g.: EU for Europe, US for America...\n","type":"string"},"countryCode":{"description":"Region country code\n","type":"string"},"datacenterLocation":{"description":"The location code of the datacenter. E.g.: \"GRA\", meaning Gravelines, for region \"GRA1\"\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"ipCountries":{"description":"Allowed countries for failover IP\n","items":{"type":"string"},"type":"array"},"name":{"description":"the name of the public cloud service\n","type":"string"},"serviceName":{"type":"string"},"services":{"description":"The list of public cloud services running within the region\n","items":{"$ref":"#/types/ovh:CloudProject/getRegionService:getRegionService"},"type":"array"},"status":{"description":"the status of the service\n","type":"string"},"type":{"description":"Region type (localzone | region | region-3-az)\n","type":"string"}},"required":["availabilityZones","continentCode","countryCode","datacenterLocation","ipCountries","name","serviceName","services","status","type","id"],"type":"object"}},"ovh:CloudProject/getRegionLoadBalancerLogSubscription:getRegionLoadBalancerLogSubscription":{"description":"Get information about a subscription to a Managed Loadbalancer Logs Service in a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst sub = ovh.CloudProject.getRegionLoadBalancerLogSubscription({\n    serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    regionName: \"gggg\",\n    loadbalancerId: \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\",\n    subscriptionId: \"zzzzzzzz-yyyy-xxxx-wwww-vvvvvvvvvvvv\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nsub = ovh.CloudProject.get_region_load_balancer_log_subscription(service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    region_name=\"gggg\",\n    loadbalancer_id=\"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\",\n    subscription_id=\"zzzzzzzz-yyyy-xxxx-wwww-vvvvvvvvvvvv\")\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 sub = Ovh.CloudProject.GetRegionLoadBalancerLogSubscription.Invoke(new()\n    {\n        ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n        RegionName = \"gggg\",\n        LoadbalancerId = \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\",\n        SubscriptionId = \"zzzzzzzz-yyyy-xxxx-wwww-vvvvvvvvvvvv\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetRegionLoadBalancerLogSubscription(ctx, \u0026cloudproject.GetRegionLoadBalancerLogSubscriptionArgs{\n\t\t\tServiceName:    \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n\t\t\tRegionName:     \"gggg\",\n\t\t\tLoadbalancerId: \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\",\n\t\t\tSubscriptionId: \"zzzzzzzz-yyyy-xxxx-wwww-vvvvvvvvvvvv\",\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.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetRegionLoadBalancerLogSubscriptionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 sub = CloudProjectFunctions.getRegionLoadBalancerLogSubscription(GetRegionLoadBalancerLogSubscriptionArgs.builder()\n            .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n            .regionName(\"gggg\")\n            .loadbalancerId(\"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\")\n            .subscriptionId(\"zzzzzzzz-yyyy-xxxx-wwww-vvvvvvvvvvvv\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  sub:\n    fn::invoke:\n      function: ovh:CloudProject:getRegionLoadBalancerLogSubscription\n      arguments:\n        serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n        regionName: gggg\n        loadbalancerId: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\n        subscriptionId: zzzzzzzz-yyyy-xxxx-wwww-vvvvvvvvvvvv\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRegionLoadBalancerLogSubscription.\n","properties":{"loadbalancerId":{"type":"string","description":"Loadbalancer id to get the logs\n"},"regionName":{"type":"string","description":"A valid OVHcloud public cloud region name in which the loadbalancer is available. Ex.: \"GRA11\".\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"subscriptionId":{"type":"string","description":"Subscription id\n"}},"type":"object","required":["loadbalancerId","regionName","serviceName","subscriptionId"]},"outputs":{"description":"A collection of values returned by getRegionLoadBalancerLogSubscription.\n","properties":{"createdAt":{"description":"The date of the subscription creation\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"kind":{"description":"Router used for forwarding log\n","type":"string"},"ldpServiceName":{"description":"LDP service name\n","type":"string"},"loadbalancerId":{"description":"Loadbalancer id to get the logs\n","type":"string"},"regionName":{"description":"A valid OVHcloud public cloud region name in which the loadbalancer will be available. Ex.: \"GRA11\".\n","type":"string"},"resourceName":{"description":"The resource name\n","type":"string"},"resourceType":{"description":"The resource type\n","type":"string"},"serviceName":{"description":"The id of the public cloud project.\n","type":"string"},"streamId":{"description":"Data stream id to use for the subscription\n","type":"string"},"subscriptionId":{"description":"The subscription id\n","type":"string"},"updatedAt":{"description":"The last update of the subscription\n","type":"string"}},"required":["createdAt","kind","ldpServiceName","loadbalancerId","regionName","resourceName","resourceType","serviceName","streamId","subscriptionId","updatedAt","id"],"type":"object"}},"ovh:CloudProject/getRegionLoadBalancerLogSubscriptions:getRegionLoadBalancerLogSubscriptions":{"description":"Get information about subscriptions to a Managed Loadbalancer Logs Service in a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst subs = ovh.CloudProject.getRegionLoadBalancerLogSubscriptions({\n    serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    regionName: \"gggg\",\n    loadbalancerId: \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nsubs = ovh.CloudProject.get_region_load_balancer_log_subscriptions(service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    region_name=\"gggg\",\n    loadbalancer_id=\"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\")\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 subs = Ovh.CloudProject.GetRegionLoadBalancerLogSubscriptions.Invoke(new()\n    {\n        ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n        RegionName = \"gggg\",\n        LoadbalancerId = \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetRegionLoadBalancerLogSubscriptions(ctx, \u0026cloudproject.GetRegionLoadBalancerLogSubscriptionsArgs{\n\t\t\tServiceName:    \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n\t\t\tRegionName:     \"gggg\",\n\t\t\tLoadbalancerId: \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\",\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.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetRegionLoadBalancerLogSubscriptionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 subs = CloudProjectFunctions.getRegionLoadBalancerLogSubscriptions(GetRegionLoadBalancerLogSubscriptionsArgs.builder()\n            .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n            .regionName(\"gggg\")\n            .loadbalancerId(\"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  subs:\n    fn::invoke:\n      function: ovh:CloudProject:getRegionLoadBalancerLogSubscriptions\n      arguments:\n        serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n        regionName: gggg\n        loadbalancerId: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRegionLoadBalancerLogSubscriptions.\n","properties":{"kind":{"type":"string","description":"currently only \"haproxy\" is available\n"},"loadbalancerId":{"type":"string","description":"Loadbalancer id to get the logs\n"},"regionName":{"type":"string","description":"A valid OVHcloud public cloud region name in which the loadbalancer is available. Ex.: \"GRA11\".\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["loadbalancerId","regionName","serviceName"]},"outputs":{"description":"A collection of values returned by getRegionLoadBalancerLogSubscriptions.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"kind":{"description":"Router used for forwarding log\n","type":"string"},"loadbalancerId":{"description":"Loadbalancer id to get the logs\n","type":"string"},"regionName":{"description":"A valid OVHcloud public cloud region name in which the loadbalancer will be available. Ex.: \"GRA11\".\n","type":"string"},"serviceName":{"description":"The id of the public cloud project.\n","type":"string"},"subscriptionIds":{"description":"The list of the subscription id\n","items":{"type":"string"},"type":"array"}},"required":["loadbalancerId","regionName","serviceName","subscriptionIds","id"],"type":"object"}},"ovh:CloudProject/getRegions:getRegions":{"description":"Use this data source to get the regions of a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst regions = ovh.CloudProject.getRegions({\n    serviceName: \"XXXXXX\",\n    hasServicesUps: [\"network\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nregions = ovh.CloudProject.get_regions(service_name=\"XXXXXX\",\n    has_services_ups=[\"network\"])\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 regions = Ovh.CloudProject.GetRegions.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        HasServicesUps = new[]\n        {\n            \"network\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetRegions(ctx, \u0026cloudproject.GetRegionsArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tHasServicesUps: []string{\n\t\t\t\t\"network\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetRegionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 regions = CloudProjectFunctions.getRegions(GetRegionsArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .hasServicesUps(\"network\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  regions:\n    fn::invoke:\n      function: ovh:CloudProject:getRegions\n      arguments:\n        serviceName: XXXXXX\n        hasServicesUps:\n          - network\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRegions.\n","properties":{"hasServicesUps":{"type":"array","items":{"type":"string"},"description":"List of services which has to be UP in regions. Example: \"image\", \"instance\", \"network\", \"storage\", \"volume\", \"workflow\", ... If left blank, returns all regions associated with the service_name.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getRegions.\n","properties":{"hasServicesUps":{"items":{"type":"string"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"names":{"description":"The list of regions associated with the project, filtered by services UP.\n","items":{"type":"string"},"type":"array"},"serviceName":{"type":"string"}},"required":["names","serviceName","id"],"type":"object"}},"ovh:CloudProject/getStorage:getStorage":{"description":"Get S3™* compatible storage container. \\* S3 is a trademark filed by Amazon Technologies,Inc. OVHcloud's service is not sponsored by, endorsed by, or otherwise affiliated with Amazon Technologies,Inc.\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 storage = ovh.CloudProject.getStorage({\n    serviceName: \"\u003cpublic cloud project ID\u003e\",\n    regionName: \"GRA\",\n    name: \"my-storage-name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nstorage = ovh.CloudProject.get_storage(service_name=\"\u003cpublic cloud project ID\u003e\",\n    region_name=\"GRA\",\n    name=\"my-storage-name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var storage = Ovh.CloudProject.GetStorage.Invoke(new()\n    {\n        ServiceName = \"\u003cpublic cloud project ID\u003e\",\n        RegionName = \"GRA\",\n        Name = \"my-storage-name\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetStorage(ctx, \u0026cloudproject.GetStorageArgs{\n\t\t\tServiceName: \"\u003cpublic cloud project ID\u003e\",\n\t\t\tRegionName:  \"GRA\",\n\t\t\tName:        \"my-storage-name\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetStorageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 storage = CloudProjectFunctions.getStorage(GetStorageArgs.builder()\n            .serviceName(\"\u003cpublic cloud project ID\u003e\")\n            .regionName(\"GRA\")\n            .name(\"my-storage-name\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  storage:\n    fn::invoke:\n      function: ovh:CloudProject:getStorage\n      arguments:\n        serviceName: \u003cpublic cloud project ID\u003e\n        regionName: GRA\n        name: my-storage-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStorage.\n","properties":{"hideObjects":{"type":"boolean","description":"If true, objects list will not be saved in state (useful for large buckets)\n"},"limit":{"type":"number","description":"Limit the number of objects returned (1000 maximum, defaults to 1000)\n"},"marker":{"type":"string","description":"Key to start with when listing objects\n"},"name":{"type":"string","description":"Name\n"},"prefix":{"type":"string","description":"List objects whose key begins with this prefix\n"},"regionName":{"type":"string","description":"Region name\n"},"serviceName":{"type":"string","description":"Service name\n"}},"type":"object","required":["name","regionName","serviceName"]},"outputs":{"description":"A collection of values returned by getStorage.\n","properties":{"createdAt":{"description":"The date and timestamp when the resource was created\n","type":"string"},"encryption":{"$ref":"#/types/ovh:CloudProject/getStorageEncryption:getStorageEncryption","description":"Encryption configuration\n"},"hideObjects":{"description":"If true, objects list will not be saved in state (useful for large buckets)\n","type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"limit":{"description":"Limit the number of objects returned (1000 maximum, defaults to 1000)\n","type":"number"},"marker":{"description":"Key to start with when listing objects\n","type":"string"},"name":{"description":"Name\n","type":"string"},"objects":{"description":"Container objects\n","items":{"$ref":"#/types/ovh:CloudProject/getStorageObject:getStorageObject"},"type":"array"},"objectsCount":{"description":"Container total objects count\n","type":"number"},"objectsSize":{"description":"Container total objects size (bytes)\n","type":"number"},"ownerId":{"description":"Container owner user ID\n","type":"number"},"prefix":{"description":"List objects whose key begins with this prefix\n","type":"string"},"region":{"description":"Container region\n","type":"string"},"regionName":{"description":"Region name\n","type":"string"},"replication":{"$ref":"#/types/ovh:CloudProject/getStorageReplication:getStorageReplication","description":"Replication configuration\n"},"serviceName":{"description":"Service name\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Container tags\n","type":"object"},"versioning":{"$ref":"#/types/ovh:CloudProject/getStorageVersioning:getStorageVersioning","description":"Versioning configuration\n"},"virtualHost":{"description":"Container virtual host\n","type":"string"}},"required":["createdAt","encryption","limit","marker","name","objects","objectsCount","objectsSize","ownerId","prefix","region","regionName","replication","serviceName","tags","versioning","virtualHost","id"],"type":"object"}},"ovh:CloudProject/getStorageObject:getStorageObject":{"description":"Get information about an object in a S3™* compatible storage container. \\* S3 is a trademark filed by Amazon Technologies,Inc. OVHcloud's service is not sponsored by, endorsed by, or otherwise affiliated with Amazon Technologies,Inc.\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 object = ovh.CloudProject.getStorageObject({\n    serviceName: \"\u003cpublic cloud project ID\u003e\",\n    regionName: \"GRA\",\n    name: \"\u003cbucket name\u003e\",\n    key: \"\u003cobject name\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nobject = ovh.CloudProject.get_storage_object(service_name=\"\u003cpublic cloud project ID\u003e\",\n    region_name=\"GRA\",\n    name=\"\u003cbucket name\u003e\",\n    key=\"\u003cobject name\u003e\")\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 @object = Ovh.CloudProject.GetStorageObject.Invoke(new()\n    {\n        ServiceName = \"\u003cpublic cloud project ID\u003e\",\n        RegionName = \"GRA\",\n        Name = \"\u003cbucket name\u003e\",\n        Key = \"\u003cobject name\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetStorageObject(ctx, \u0026cloudproject.GetStorageObjectArgs{\n\t\t\tServiceName: \"\u003cpublic cloud project ID\u003e\",\n\t\t\tRegionName:  \"GRA\",\n\t\t\tName:        \"\u003cbucket name\u003e\",\n\t\t\tKey:         \"\u003cobject name\u003e\",\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.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetStorageObjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 object = CloudProjectFunctions.getStorageObject(GetStorageObjectArgs.builder()\n            .serviceName(\"\u003cpublic cloud project ID\u003e\")\n            .regionName(\"GRA\")\n            .name(\"\u003cbucket name\u003e\")\n            .key(\"\u003cobject name\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  object:\n    fn::invoke:\n      function: ovh:CloudProject:getStorageObject\n      arguments:\n        serviceName: \u003cpublic cloud project ID\u003e\n        regionName: GRA\n        name: \u003cbucket name\u003e\n        key: \u003cobject name\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStorageObject.\n","properties":{"key":{"type":"string","description":"Key\n"},"name":{"type":"string","description":"Name\n"},"regionName":{"type":"string","description":"Region name\n"},"serviceName":{"type":"string","description":"Service name\n"}},"type":"object","required":["key","name","regionName","serviceName"]},"outputs":{"description":"A collection of values returned by getStorageObject.\n","properties":{"etag":{"description":"ETag\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"isDeleteMarker":{"description":"Whether this object is a delete marker\n","type":"boolean"},"isLatest":{"description":"Whether this is the latest version of the object\n","type":"boolean"},"key":{"description":"Key\n","type":"string"},"lastModified":{"description":"Last modification date\n","type":"string"},"name":{"description":"Name\n","type":"string"},"regionName":{"description":"Region name\n","type":"string"},"serviceName":{"description":"Service name\n","type":"string"},"size":{"description":"Size (bytes)\n","type":"number"},"storageClass":{"description":"Storage class\n","type":"string"},"versionId":{"description":"Version ID of the object\n","type":"string"}},"required":["etag","isDeleteMarker","isLatest","key","lastModified","name","regionName","serviceName","size","storageClass","versionId","id"],"type":"object"}},"ovh:CloudProject/getStorageObjects:getStorageObjects":{"description":"Get objects of S3™* compatible storage containers. \\* S3 is a trademark filed by Amazon Technologies,Inc. OVHcloud's service is not sponsored by, endorsed by, or otherwise affiliated with Amazon Technologies,Inc.\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 objects = ovh.CloudProject.getStorageObjects({\n    serviceName: \"\u003cpublic cloud project ID\u003e\",\n    regionName: \"GRA\",\n    name: \"\u003cbucket name\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nobjects = ovh.CloudProject.get_storage_objects(service_name=\"\u003cpublic cloud project ID\u003e\",\n    region_name=\"GRA\",\n    name=\"\u003cbucket name\u003e\")\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 objects = Ovh.CloudProject.GetStorageObjects.Invoke(new()\n    {\n        ServiceName = \"\u003cpublic cloud project ID\u003e\",\n        RegionName = \"GRA\",\n        Name = \"\u003cbucket name\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetStorageObjects(ctx, \u0026cloudproject.GetStorageObjectsArgs{\n\t\t\tServiceName: \"\u003cpublic cloud project ID\u003e\",\n\t\t\tRegionName:  \"GRA\",\n\t\t\tName:        \"\u003cbucket name\u003e\",\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.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetStorageObjectsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 objects = CloudProjectFunctions.getStorageObjects(GetStorageObjectsArgs.builder()\n            .serviceName(\"\u003cpublic cloud project ID\u003e\")\n            .regionName(\"GRA\")\n            .name(\"\u003cbucket name\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  objects:\n    fn::invoke:\n      function: ovh:CloudProject:getStorageObjects\n      arguments:\n        serviceName: \u003cpublic cloud project ID\u003e\n        regionName: GRA\n        name: \u003cbucket name\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStorageObjects.\n","properties":{"keyMarker":{"type":"string","description":"Key to start with when listing objects\n"},"limit":{"type":"number","description":"Limit the number of objects returned (1000 maximum, defaults to 1000)\n"},"name":{"type":"string","description":"Name\n"},"prefix":{"type":"string","description":"List objects whose key begins with this prefix\n"},"regionName":{"type":"string","description":"Region name\n"},"serviceName":{"type":"string","description":"Service name\n"},"versionIdMarker":{"type":"string","description":"Version ID to start listing from\n"},"withVersions":{"type":"boolean","description":"List object versions\n"}},"type":"object","required":["name","regionName","serviceName"]},"outputs":{"description":"A collection of values returned by getStorageObjects.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"keyMarker":{"description":"Key to start with when listing objects\n","type":"string"},"limit":{"description":"Limit the number of objects returned (1000 maximum, defaults to 1000)\n","type":"number"},"name":{"description":"Name\n","type":"string"},"objects":{"items":{"$ref":"#/types/ovh:CloudProject/getStorageObjectsObject:getStorageObjectsObject"},"type":"array"},"prefix":{"description":"List objects whose key begins with this prefix\n","type":"string"},"regionName":{"description":"Region name\n","type":"string"},"serviceName":{"description":"Service name\n","type":"string"},"versionIdMarker":{"description":"Version ID to start listing from\n","type":"string"},"withVersions":{"description":"List object versions\n","type":"boolean"}},"required":["name","objects","regionName","serviceName","id"],"type":"object"}},"ovh:CloudProject/getStorages:getStorages":{"description":"List your S3™* compatible storage container. \\* S3 is a trademark filed by Amazon Technologies,Inc. OVHcloud's service is not sponsored by, endorsed by, or otherwise affiliated with Amazon Technologies,Inc.\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 storage = ovh.CloudProject.getStorage({\n    serviceName: \"\u003cpublic cloud project ID\u003e\",\n    regionName: \"GRA\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nstorage = ovh.CloudProject.get_storage(service_name=\"\u003cpublic cloud project ID\u003e\",\n    region_name=\"GRA\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var storage = Ovh.CloudProject.GetStorage.Invoke(new()\n    {\n        ServiceName = \"\u003cpublic cloud project ID\u003e\",\n        RegionName = \"GRA\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetStorage(ctx, \u0026cloudproject.GetStorageArgs{\n\t\t\tServiceName: \"\u003cpublic cloud project ID\u003e\",\n\t\t\tRegionName:  \"GRA\",\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.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetStorageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 storage = CloudProjectFunctions.getStorage(GetStorageArgs.builder()\n            .serviceName(\"\u003cpublic cloud project ID\u003e\")\n            .regionName(\"GRA\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  storage:\n    fn::invoke:\n      function: ovh:CloudProject:getStorage\n      arguments:\n        serviceName: \u003cpublic cloud project ID\u003e\n        regionName: GRA\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStorages.\n","properties":{"regionName":{"type":"string","description":"Region name\n"},"serviceName":{"type":"string","description":"Service name\n"}},"type":"object","required":["regionName","serviceName"]},"outputs":{"description":"A collection of values returned by getStorages.\n","properties":{"containers":{"items":{"$ref":"#/types/ovh:CloudProject/getStoragesContainer:getStoragesContainer"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"regionName":{"description":"Region name\n","type":"string"},"serviceName":{"description":"Service name\n","type":"string"}},"required":["containers","regionName","serviceName","id"],"type":"object"}},"ovh:CloudProject/getUser:getUser":{"description":"Get the user details of a previously created public cloud project user.\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 projectUsers = ovh.CloudProject.getUsers({\n    serviceName: \"XXX\",\n});\n// Get the user ID of a previously created user with the description \"S3-User\"\nconst users = projectUsers.then(projectUsers =\u003e .filter(user =\u003e user.description == \"S3-User\").map(user =\u003e (user.userId)));\nconst s3UserId = users[0];\nconst myUser = Promise.all([projectUsers, s3UserId]).then(([projectUsers, s3UserId]) =\u003e ovh.CloudProject.getUser({\n    serviceName: projectUsers.serviceName,\n    userId: s3UserId,\n}));\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nproject_users = ovh.CloudProject.get_users(service_name=\"XXX\")\n# Get the user ID of a previously created user with the description \"S3-User\"\nusers = [user.user_id for user in project_users.users if user.description == \"S3-User\"]\ns3_user_id = users[0]\nmy_user = ovh.CloudProject.get_user(service_name=project_users.service_name,\n    user_id=s3_user_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var projectUsers = Ovh.CloudProject.GetUsers.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n    });\n\n    // Get the user ID of a previously created user with the description \"S3-User\"\n    var users = .Where(user =\u003e user.Description == \"S3-User\").Select(user =\u003e \n    {\n        return user.UserId;\n    }).ToList();\n\n    var s3UserId = users[0];\n\n    var myUser = Ovh.CloudProject.GetUser.Invoke(new()\n    {\n        ServiceName = projectUsers.Apply(getUsersResult =\u003e getUsersResult.ServiceName),\n        UserId = s3UserId,\n    });\n\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getUser.\n","properties":{"serviceName":{"type":"string","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"The ID of a public cloud project's user.\n","willReplaceOnChanges":true}},"type":"object","required":["serviceName","userId"]},"outputs":{"description":"A collection of values returned by getUser.\n","properties":{"creationDate":{"description":"the date the user was created.\n","type":"string"},"description":{"description":"description of the role\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"roles":{"description":"A list of roles associated with the user.\n","items":{"$ref":"#/types/ovh:CloudProject/getUserRole:getUserRole"},"type":"array"},"serviceName":{"type":"string"},"status":{"description":"the status of the user. should be normally set to 'ok'.\n","type":"string"},"userId":{"type":"string"},"username":{"description":"the username generated for the user. This username can be used with the Openstack API.\n","type":"string"}},"required":["creationDate","description","roles","serviceName","status","userId","username","id"],"type":"object"}},"ovh:CloudProject/getUserS3Credential:getUserS3Credential":{"description":"Use this data source to retrieve the Secret Access Key of an Access Key ID associated with a public cloud project's user.\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 projectUsers = ovh.CloudProject.getUsers({\n    serviceName: \"XXX\",\n});\n// Get the user ID of a previously created user with the description \"S3-User\"\nconst users = projectUsers.then(projectUsers =\u003e .filter(user =\u003e user.description == \"S3-User\").map(user =\u003e (user.userId)));\nconst s3UserId = users[0];\nconst myS3Credentials = Promise.all([projectUsers, s3UserId]).then(([projectUsers, s3UserId]) =\u003e ovh.CloudProject.getUserS3Credentials({\n    serviceName: projectUsers.serviceName,\n    userId: s3UserId,\n}));\nconst myS3Credential = Promise.all([myS3Credentials, myS3Credentials, myS3Credentials]).then(([myS3Credentials, myS3Credentials1, myS3Credentials2]) =\u003e ovh.CloudProject.getUserS3Credential({\n    serviceName: myS3Credentials.serviceName,\n    userId: myS3Credentials1.userId,\n    accessKeyId: myS3Credentials2.accessKeyIds?.[0],\n}));\nexport const myAccessKeyId = myS3Credential.then(myS3Credential =\u003e myS3Credential.accessKeyId);\nexport const mySecretAccessKey = myS3Credential.then(myS3Credential =\u003e myS3Credential.secretAccessKey);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nproject_users = ovh.CloudProject.get_users(service_name=\"XXX\")\n# Get the user ID of a previously created user with the description \"S3-User\"\nusers = [user.user_id for user in project_users.users if user.description == \"S3-User\"]\ns3_user_id = users[0]\nmy_s3_credentials = ovh.CloudProject.get_user_s3_credentials(service_name=project_users.service_name,\n    user_id=s3_user_id)\nmy_s3_credential = ovh.CloudProject.get_user_s3_credential(service_name=my_s3_credentials.service_name,\n    user_id=my_s3_credentials.user_id,\n    access_key_id=my_s3_credentials.access_key_ids[0])\npulumi.export(\"myAccessKeyId\", my_s3_credential.access_key_id)\npulumi.export(\"mySecretAccessKey\", my_s3_credential.secret_access_key)\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 projectUsers = Ovh.CloudProject.GetUsers.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n    });\n\n    // Get the user ID of a previously created user with the description \"S3-User\"\n    var users = .Where(user =\u003e user.Description == \"S3-User\").Select(user =\u003e \n    {\n        return user.UserId;\n    }).ToList();\n\n    var s3UserId = users[0];\n\n    var myS3Credentials = Ovh.CloudProject.GetUserS3Credentials.Invoke(new()\n    {\n        ServiceName = projectUsers.Apply(getUsersResult =\u003e getUsersResult.ServiceName),\n        UserId = s3UserId,\n    });\n\n    var myS3Credential = Ovh.CloudProject.GetUserS3Credential.Invoke(new()\n    {\n        ServiceName = myS3Credentials.Apply(getUserS3CredentialsResult =\u003e getUserS3CredentialsResult.ServiceName),\n        UserId = myS3Credentials.Apply(getUserS3CredentialsResult =\u003e getUserS3CredentialsResult.UserId),\n        AccessKeyId = myS3Credentials.Apply(getUserS3CredentialsResult =\u003e getUserS3CredentialsResult.AccessKeyIds[0]),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"myAccessKeyId\"] = myS3Credential.Apply(getUserS3CredentialResult =\u003e getUserS3CredentialResult.AccessKeyId),\n        [\"mySecretAccessKey\"] = myS3Credential.Apply(getUserS3CredentialResult =\u003e getUserS3CredentialResult.SecretAccessKey),\n    };\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getUserS3Credential.\n","properties":{"accessKeyId":{"type":"string","description":"the Access Key ID\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"The ID of a public cloud project's user.\n","willReplaceOnChanges":true}},"type":"object","required":["accessKeyId","serviceName","userId"]},"outputs":{"description":"A collection of values returned by getUserS3Credential.\n","properties":{"accessKeyId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"secretAccessKey":{"description":"(Sensitive) the Secret Access Key\n","secret":true,"type":"string"},"serviceName":{"type":"string"},"userId":{"type":"string"}},"required":["accessKeyId","secretAccessKey","serviceName","userId","id"],"type":"object"}},"ovh:CloudProject/getUserS3Credentials:getUserS3Credentials":{"description":"Use this data source to retrieve the list of all the S3 access_key_id associated with a public cloud project's user.\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 myS3Credentials = ovh.CloudProject.getUserS3Credentials({\n    serviceName: \"XXXXXX\",\n    userId: \"1234\",\n});\nexport const accessKeyIds = myS3Credentials.then(myS3Credentials =\u003e myS3Credentials.accessKeyIds);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_s3_credentials = ovh.CloudProject.get_user_s3_credentials(service_name=\"XXXXXX\",\n    user_id=\"1234\")\npulumi.export(\"accessKeyIds\", my_s3_credentials.access_key_ids)\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 myS3Credentials = Ovh.CloudProject.GetUserS3Credentials.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        UserId = \"1234\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"accessKeyIds\"] = myS3Credentials.Apply(getUserS3CredentialsResult =\u003e getUserS3CredentialsResult.AccessKeyIds),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tmyS3Credentials, err := cloudproject.GetUserS3Credentials(ctx, \u0026cloudproject.GetUserS3CredentialsArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tUserId:      \"1234\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"accessKeyIds\", myS3Credentials.AccessKeyIds)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetUserS3CredentialsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myS3Credentials = CloudProjectFunctions.getUserS3Credentials(GetUserS3CredentialsArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .userId(\"1234\")\n            .build());\n\n        ctx.export(\"accessKeyIds\", myS3Credentials.accessKeyIds());\n    }\n}\n```\n```yaml\nvariables:\n  myS3Credentials:\n    fn::invoke:\n      function: ovh:CloudProject:getUserS3Credentials\n      arguments:\n        serviceName: XXXXXX\n        userId: '1234'\noutputs:\n  accessKeyIds: ${myS3Credentials.accessKeyIds}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getUserS3Credentials.\n","properties":{"serviceName":{"type":"string","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"The ID of a public cloud project's user.\n","willReplaceOnChanges":true}},"type":"object","required":["serviceName","userId"]},"outputs":{"description":"A collection of values returned by getUserS3Credentials.\n","properties":{"accessKeyIds":{"description":"The list of the Access Key ID associated with this user.\n","items":{"type":"string"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"serviceName":{"type":"string"},"userId":{"type":"string"}},"required":["accessKeyIds","serviceName","userId","id"],"type":"object"}},"ovh:CloudProject/getUserS3Policy:getUserS3Policy":{"description":"Get the S3 Policy of a public cloud project user. The policy can be set by using the `ovh.CloudProject.S3Policy` resource.\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 projectUsers = ovh.CloudProject.getUsers({\n    serviceName: \"XXX\",\n});\n// Get the user ID of a previously created user with the description \"S3-User\"\nconst users = projectUsers.then(projectUsers =\u003e .filter(user =\u003e user.description == \"S3-User\").map(user =\u003e (user.userId)));\nconst s3UserId = users[0];\nconst policy = Promise.all([projectUsers, s3UserId]).then(([projectUsers, s3UserId]) =\u003e ovh.CloudProject.getUserS3Policy({\n    serviceName: projectUsers.serviceName,\n    userId: s3UserId,\n}));\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nproject_users = ovh.CloudProject.get_users(service_name=\"XXX\")\n# Get the user ID of a previously created user with the description \"S3-User\"\nusers = [user.user_id for user in project_users.users if user.description == \"S3-User\"]\ns3_user_id = users[0]\npolicy = ovh.CloudProject.get_user_s3_policy(service_name=project_users.service_name,\n    user_id=s3_user_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var projectUsers = Ovh.CloudProject.GetUsers.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n    });\n\n    // Get the user ID of a previously created user with the description \"S3-User\"\n    var users = .Where(user =\u003e user.Description == \"S3-User\").Select(user =\u003e \n    {\n        return user.UserId;\n    }).ToList();\n\n    var s3UserId = users[0];\n\n    var policy = Ovh.CloudProject.GetUserS3Policy.Invoke(new()\n    {\n        ServiceName = projectUsers.Apply(getUsersResult =\u003e getUsersResult.ServiceName),\n        UserId = s3UserId,\n    });\n\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getUserS3Policy.\n","properties":{"serviceName":{"type":"string","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"The ID of a public cloud project's user.\n","willReplaceOnChanges":true}},"type":"object","required":["serviceName","userId"]},"outputs":{"description":"A collection of values returned by getUserS3Policy.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"policy":{"description":"(Required) The policy document. This is a JSON formatted string.\n","type":"string"},"serviceName":{"type":"string"},"userId":{"type":"string"}},"required":["policy","serviceName","userId","id"],"type":"object"}},"ovh:CloudProject/getUsers:getUsers":{"description":"Get the list of all users of a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst projectUsers = ovh.CloudProject.getUsers({\n    serviceName: \"XXX\",\n});\n// Get the user ID of a previously created user with the description \"S3-User\"\nconst users = projectUsers.then(projectUsers =\u003e .filter(user =\u003e user.description == \"S3-User\").map(user =\u003e (user.userId)));\nconst s3UserId = users[0];\nexport const userId = s3UserId;\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nproject_users = ovh.CloudProject.get_users(service_name=\"XXX\")\n# Get the user ID of a previously created user with the description \"S3-User\"\nusers = [user.user_id for user in project_users.users if user.description == \"S3-User\"]\ns3_user_id = users[0]\npulumi.export(\"userId\", s3_user_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var projectUsers = Ovh.CloudProject.GetUsers.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n    });\n\n    // Get the user ID of a previously created user with the description \"S3-User\"\n    var users = .Where(user =\u003e user.Description == \"S3-User\").Select(user =\u003e \n    {\n        return user.UserId;\n    }).ToList();\n\n    var s3UserId = users[0];\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"userId\"] = s3UserId,\n    };\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getUsers.\n","properties":{"serviceName":{"type":"string","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","willReplaceOnChanges":true}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getUsers.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"serviceName":{"type":"string"},"users":{"description":"The list of users of a public cloud project.\n","items":{"$ref":"#/types/ovh:CloudProject/getUsersUser:getUsersUser"},"type":"array"}},"required":["serviceName","users","id"],"type":"object"}},"ovh:CloudProject/getVRack:getVRack":{"description":"Use this data source to get the linked vrack on your public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nexport = async () =\u003e {\n    const vrack = await ovh.CloudProject.getVRack({\n        serviceName: \"XXXXXX\",\n    });\n    return {\n        vrack: vrack,\n    };\n}\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nvrack = ovh.CloudProject.get_v_rack(service_name=\"XXXXXX\")\npulumi.export(\"vrack\", vrack)\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 vrack = Ovh.CloudProject.GetVRack.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"vrack\"] = vrack,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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\tvrack, err := cloudproject.GetVRack(ctx, \u0026cloudproject.GetVRackArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vrack\", vrack)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetVRackArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 vrack = CloudProjectFunctions.getVRack(GetVRackArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .build());\n\n        ctx.export(\"vrack\", vrack);\n    }\n}\n```\n```yaml\nvariables:\n  vrack:\n    fn::invoke:\n      function: ovh:CloudProject:getVRack\n      arguments:\n        serviceName: XXXXXX\noutputs:\n  vrack: ${vrack}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVRack.\n","properties":{"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getVRack.\n","properties":{"description":{"type":"string"},"id":{"description":"The id of the vrack\n","type":"string"},"name":{"description":"The name of the vrack\n","type":"string"},"serviceName":{"description":"The id of the public cloud project\n","type":"string"}},"required":["description","id","name","serviceName"],"type":"object"}},"ovh:CloudProject/getVolume:getVolume":{"description":"Get information about a volume in a public cloud project\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst volume = ovh.CloudProject.getVolume({\n    regionName: \"xxx\",\n    serviceName: \"yyy\",\n    volumeId: \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nvolume = ovh.CloudProject.get_volume(region_name=\"xxx\",\n    service_name=\"yyy\",\n    volume_id=\"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\")\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 volume = Ovh.CloudProject.GetVolume.Invoke(new()\n    {\n        RegionName = \"xxx\",\n        ServiceName = \"yyy\",\n        VolumeId = \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetVolume(ctx, \u0026cloudproject.GetVolumeArgs{\n\t\t\tRegionName:  \"xxx\",\n\t\t\tServiceName: \"yyy\",\n\t\t\tVolumeId:    \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\",\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.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetVolumeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 volume = CloudProjectFunctions.getVolume(GetVolumeArgs.builder()\n            .regionName(\"xxx\")\n            .serviceName(\"yyy\")\n            .volumeId(\"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  volume:\n    fn::invoke:\n      function: ovh:CloudProject:getVolume\n      arguments:\n        regionName: xxx\n        serviceName: yyy\n        volumeId: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVolume.\n","properties":{"regionName":{"type":"string","description":"A valid OVHcloud public cloud region name in which the volume is available. Ex.: \"GRA11\".\n"},"serviceName":{"type":"string","description":"The id of the public cloud project.\n"},"volumeId":{"type":"string","description":"Volume id to get the informations\n"}},"type":"object","required":["regionName","serviceName","volumeId"]},"outputs":{"description":"A collection of values returned by getVolume.\n","properties":{"id":{"type":"string"},"name":{"description":"The name of the volume (E.g.: \"GRA\", meaning Gravelines, for region \"GRA1\")\n","type":"string"},"regionName":{"description":"The region name where volume is available\n","type":"string"},"serviceName":{"description":"The id of the public cloud project.\n","type":"string"},"size":{"description":"The size of the volume\n","type":"number"},"volumeId":{"description":"The id of the volume\n","type":"string"}},"required":["id","name","regionName","serviceName","size","volumeId"],"type":"object"}},"ovh:CloudProject/getVolumes:getVolumes":{"description":"Get all the volume from a region of a public cloud project\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst volume = ovh.CloudProject.getVolume({\n    regionName: \"xxx\",\n    serviceName: \"yyy\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nvolume = ovh.CloudProject.get_volume(region_name=\"xxx\",\n    service_name=\"yyy\")\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 volume = Ovh.CloudProject.GetVolume.Invoke(new()\n    {\n        RegionName = \"xxx\",\n        ServiceName = \"yyy\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetVolume(ctx, \u0026cloudproject.GetVolumeArgs{\n\t\t\tRegionName:  \"xxx\",\n\t\t\tServiceName: \"yyy\",\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.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetVolumeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 volume = CloudProjectFunctions.getVolume(GetVolumeArgs.builder()\n            .regionName(\"xxx\")\n            .serviceName(\"yyy\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  volume:\n    fn::invoke:\n      function: ovh:CloudProject:getVolume\n      arguments:\n        regionName: xxx\n        serviceName: yyy\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVolumes.\n","properties":{"regionName":{"type":"string","description":"A valid OVHcloud public cloud region name in which the volumes are available. Ex.: \"GRA11\".\n"},"serviceName":{"type":"string","description":"The id of the public cloud project.\n"}},"type":"object","required":["regionName","serviceName"]},"outputs":{"description":"A collection of values returned by getVolumes.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"regionName":{"description":"The region name where volumes are available\n","type":"string"},"serviceName":{"description":"The id of the public cloud project.\n","type":"string"},"volumes":{"items":{"$ref":"#/types/ovh:CloudProject/getVolumesVolume:getVolumesVolume"},"type":"array"}},"required":["regionName","serviceName","volumes","id"],"type":"object"}},"ovh:CloudProjectDatabase/getCapabilities:getCapabilities":{"description":"Use this data source to get information about capabilities of a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst capabilities = ovh.CloudProjectDatabase.getCapabilities({\n    serviceName: \"XXX\",\n});\nexport const capabilitiesEngineName = [capabilities].map(__item =\u003e __item.engines?.[0]);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ncapabilities = ovh.CloudProjectDatabase.get_capabilities(service_name=\"XXX\")\npulumi.export(\"capabilitiesEngineName\", [__item.engines[0] for __item in [capabilities]])\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 capabilities = Ovh.CloudProjectDatabase.GetCapabilities.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"capabilitiesEngineName\"] = new[]\n        {\n            capabilities,\n        }.Select(__item =\u003e __item.Engines[0]).ToList(),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncapabilities, err := cloudprojectdatabase.GetCapabilities(ctx, \u0026cloudprojectdatabase.GetCapabilitiesArgs{\nServiceName: \"XXX\",\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"capabilitiesEngineName\", []cloudprojectdatabase.GetCapabilitiesEngine(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:5,11-37)))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetCapabilitiesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 capabilities = CloudProjectDatabaseFunctions.getCapabilities(GetCapabilitiesArgs.builder()\n            .serviceName(\"XXX\")\n            .build());\n\n        ctx.export(\"capabilitiesEngineName\", List.of(capabilities).stream().map(element -\u003e element.engines()[0]).collect(toList()));\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCapabilities.\n","properties":{"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getCapabilities.\n","properties":{"engines":{"description":"Database engines available.\n","items":{"$ref":"#/types/ovh:CloudProjectDatabase/getCapabilitiesEngine:getCapabilitiesEngine"},"type":"array"},"flavors":{"description":"Flavors available.\n","items":{"$ref":"#/types/ovh:CloudProjectDatabase/getCapabilitiesFlavor:getCapabilitiesFlavor"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"options":{"description":"Options available.\n","items":{"$ref":"#/types/ovh:CloudProjectDatabase/getCapabilitiesOption:getCapabilitiesOption"},"type":"array"},"plans":{"description":"Plans available.\n","items":{"$ref":"#/types/ovh:CloudProjectDatabase/getCapabilitiesPlan:getCapabilitiesPlan"},"type":"array"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"}},"required":["engines","flavors","options","plans","serviceName","id"],"type":"object"}},"ovh:CloudProjectDatabase/getCertificates:getCertificates":{"description":"Use this data source to get information about certificates of a cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst certificates = ovh.CloudProjectDatabase.getCertificates({\n    serviceName: \"XXX\",\n    engine: \"YYY\",\n    clusterId: \"ZZZ\",\n});\nexport const certificatesCa = certificates.then(certificates =\u003e certificates.ca);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ncertificates = ovh.CloudProjectDatabase.get_certificates(service_name=\"XXX\",\n    engine=\"YYY\",\n    cluster_id=\"ZZZ\")\npulumi.export(\"certificatesCa\", certificates.ca)\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 certificates = Ovh.CloudProjectDatabase.GetCertificates.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        Engine = \"YYY\",\n        ClusterId = \"ZZZ\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"certificatesCa\"] = certificates.Apply(getCertificatesResult =\u003e getCertificatesResult.Ca),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcertificates, err := cloudprojectdatabase.GetCertificates(ctx, \u0026cloudprojectdatabase.GetCertificatesArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine:      \"YYY\",\n\t\t\tClusterId:   \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"certificatesCa\", certificates.Ca)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetCertificatesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 certificates = CloudProjectDatabaseFunctions.getCertificates(GetCertificatesArgs.builder()\n            .serviceName(\"XXX\")\n            .engine(\"YYY\")\n            .clusterId(\"ZZZ\")\n            .build());\n\n        ctx.export(\"certificatesCa\", certificates.ca());\n    }\n}\n```\n```yaml\nvariables:\n  certificates:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getCertificates\n      arguments:\n        serviceName: XXX\n        engine: YYY\n        clusterId: ZZZ\noutputs:\n  certificatesCa: ${certificates.ca}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCertificates.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"engine":{"type":"string","description":"The engine of the database cluster you want database information. To get a full list of available engine visit: [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases). Available engines:\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","engine","serviceName"]},"outputs":{"description":"A collection of values returned by getCertificates.\n","properties":{"ca":{"description":"CA certificate used for the service.\n","type":"string"},"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"engine":{"description":"See Argument Reference above.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"}},"required":["ca","clusterId","engine","serviceName","id"],"type":"object"}},"ovh:CloudProjectDatabase/getDatabase:getDatabase":{"description":"Use this data source to get the managed database of a public cloud project.\n\n## Example Usage\n\nTo get information of a database cluster service:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst db = ovh.CloudProjectDatabase.getDatabase({\n    serviceName: \"XXXXXX\",\n    engine: \"YYYY\",\n    id: \"ZZZZ\",\n});\nexport const clusterId = db.then(db =\u003e db.id);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ndb = ovh.CloudProjectDatabase.get_database(service_name=\"XXXXXX\",\n    engine=\"YYYY\",\n    id=\"ZZZZ\")\npulumi.export(\"clusterId\", db.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var db = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        Engine = \"YYYY\",\n        Id = \"ZZZZ\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"clusterId\"] = db.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdb, err := cloudprojectdatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tEngine:      \"YYYY\",\n\t\t\tId:          \"ZZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"clusterId\", db.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var db = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .engine(\"YYYY\")\n            .id(\"ZZZZ\")\n            .build());\n\n        ctx.export(\"clusterId\", db.id());\n    }\n}\n```\n```yaml\nvariables:\n  db:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getDatabase\n      arguments:\n        serviceName: XXXXXX\n        engine: YYYY\n        id: ZZZZ\noutputs:\n  clusterId: ${db.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDatabase.\n","properties":{"engine":{"type":"string","description":"The database engine you want to get information. To get a full list of available engine visit: [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases).\n"},"id":{"type":"string","description":"Cluster ID\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["engine","id","serviceName"]},"outputs":{"description":"A collection of values returned by getDatabase.\n","properties":{"advancedConfiguration":{"additionalProperties":{"type":"string"},"description":"Advanced configuration key / value.\n","type":"object"},"backupRegions":{"description":"List of region where backups are pushed.\n","items":{"type":"string"},"type":"array"},"backupTime":{"description":"Time on which backups start every day.\n","type":"string"},"createdAt":{"description":"Date of the creation of the cluster.\n","type":"string"},"deletionProtection":{"description":"Enable deletion protection\n","type":"boolean"},"description":{"description":"Description of the IP restriction\n","type":"string"},"diskSize":{"description":"The disk size (in GB) of the database service.\n","type":"integer"},"diskType":{"description":"The disk type of the database service.\n","type":"string"},"endpoints":{"description":"List of all endpoints objects of the service.\n","items":{"$ref":"#/types/ovh:CloudProjectDatabase/getDatabaseEndpoint:getDatabaseEndpoint"},"type":"array"},"engine":{"description":"See Argument Reference above.\n","type":"string"},"flavor":{"description":"A valid OVHcloud public cloud database flavor name in which the nodes will be started.\n","type":"string"},"id":{"description":"See Argument Reference above.\n","type":"string"},"ipRestrictions":{"description":"IP Blocks authorized to access to the cluster.\n","items":{"$ref":"#/types/ovh:CloudProjectDatabase/getDatabaseIpRestriction:getDatabaseIpRestriction"},"type":"array"},"kafkaRestApi":{"description":"Defines whether the REST API is enabled on a kafka cluster.\n","type":"boolean"},"kafkaSchemaRegistry":{"description":"Defines whether the schema registry is enabled on a Kafka cluster\n","type":"boolean"},"maintenanceTime":{"description":"Time on which maintenances can start every day.\n","type":"string"},"networkType":{"description":"Type of network of the cluster.\n","type":"string"},"nodes":{"description":"List of nodes object.\n","items":{"$ref":"#/types/ovh:CloudProjectDatabase/getDatabaseNode:getDatabaseNode"},"type":"array"},"opensearchAclsEnabled":{"type":"boolean"},"plan":{"description":"Plan of the cluster.\n","type":"string"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"},"status":{"description":"Current status of the cluster.\n","type":"string"},"version":{"description":"The version of the engine in which the service should be deployed\n","type":"string"}},"required":["advancedConfiguration","backupRegions","backupTime","createdAt","deletionProtection","description","diskSize","diskType","endpoints","engine","flavor","id","ipRestrictions","kafkaRestApi","kafkaSchemaRegistry","maintenanceTime","networkType","nodes","opensearchAclsEnabled","plan","serviceName","status","version"],"type":"object"}},"ovh:CloudProjectDatabase/getDatabaseInstance:getDatabaseInstance":{"description":"Use this data source to get information about a database of a database cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst database = ovh.CloudProjectDatabase.getDatabaseInstance({\n    serviceName: \"XXX\",\n    engine: \"YYY\",\n    clusterId: \"ZZZ\",\n    name: \"UUU\",\n});\nexport const databaseName = database.then(database =\u003e database.name);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ndatabase = ovh.CloudProjectDatabase.get_database_instance(service_name=\"XXX\",\n    engine=\"YYY\",\n    cluster_id=\"ZZZ\",\n    name=\"UUU\")\npulumi.export(\"databaseName\", database.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var database = Ovh.CloudProjectDatabase.GetDatabaseInstance.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        Engine = \"YYY\",\n        ClusterId = \"ZZZ\",\n        Name = \"UUU\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"databaseName\"] = database.Apply(getDatabaseInstanceResult =\u003e getDatabaseInstanceResult.Name),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdatabase, err := cloudprojectdatabase.GetDatabaseInstance(ctx, \u0026cloudprojectdatabase.GetDatabaseInstanceArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine:      \"YYY\",\n\t\t\tClusterId:   \"ZZZ\",\n\t\t\tName:        \"UUU\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"databaseName\", database.Name)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 database = CloudProjectDatabaseFunctions.getDatabaseInstance(GetDatabaseInstanceArgs.builder()\n            .serviceName(\"XXX\")\n            .engine(\"YYY\")\n            .clusterId(\"ZZZ\")\n            .name(\"UUU\")\n            .build());\n\n        ctx.export(\"databaseName\", database.name());\n    }\n}\n```\n```yaml\nvariables:\n  database:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getDatabaseInstance\n      arguments:\n        serviceName: XXX\n        engine: YYY\n        clusterId: ZZZ\n        name: UUU\noutputs:\n  databaseName: ${database.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDatabaseInstance.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"engine":{"type":"string","description":"The engine of the database cluster you want database information. To get a full list of available engine visit: [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases). Available engines:\n"},"name":{"type":"string","description":"Name of the database.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","engine","name","serviceName"]},"outputs":{"description":"A collection of values returned by getDatabaseInstance.\n","properties":{"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"default":{"description":"Defines if the database has been created by default.\n","type":"boolean"},"engine":{"description":"See Argument Reference above.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"name":{"description":"Name of the database.\n","type":"string"},"serviceName":{"description":"Current status of the database.\n","type":"string"}},"required":["clusterId","default","engine","name","serviceName","id"],"type":"object"}},"ovh:CloudProjectDatabase/getDatabaseInstances:getDatabaseInstances":{"description":"Use this data source to get the list of databases of a database cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst databases = ovh.CloudProjectDatabase.getDatabaseInstances({\n    serviceName: \"XXXX\",\n    engine: \"YYYY\",\n    clusterId: \"ZZZ\",\n});\nexport const databaseIds = databases.then(databases =\u003e databases.databaseIds);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ndatabases = ovh.CloudProjectDatabase.get_database_instances(service_name=\"XXXX\",\n    engine=\"YYYY\",\n    cluster_id=\"ZZZ\")\npulumi.export(\"databaseIds\", databases.database_ids)\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 databases = Ovh.CloudProjectDatabase.GetDatabaseInstances.Invoke(new()\n    {\n        ServiceName = \"XXXX\",\n        Engine = \"YYYY\",\n        ClusterId = \"ZZZ\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"databaseIds\"] = databases.Apply(getDatabaseInstancesResult =\u003e getDatabaseInstancesResult.DatabaseIds),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdatabases, err := cloudprojectdatabase.GetDatabaseInstances(ctx, \u0026cloudprojectdatabase.GetDatabaseInstancesArgs{\n\t\t\tServiceName: \"XXXX\",\n\t\t\tEngine:      \"YYYY\",\n\t\t\tClusterId:   \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"databaseIds\", databases.DatabaseIds)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 databases = CloudProjectDatabaseFunctions.getDatabaseInstances(GetDatabaseInstancesArgs.builder()\n            .serviceName(\"XXXX\")\n            .engine(\"YYYY\")\n            .clusterId(\"ZZZ\")\n            .build());\n\n        ctx.export(\"databaseIds\", databases.databaseIds());\n    }\n}\n```\n```yaml\nvariables:\n  databases:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getDatabaseInstances\n      arguments:\n        serviceName: XXXX\n        engine: YYYY\n        clusterId: ZZZ\noutputs:\n  databaseIds: ${databases.databaseIds}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDatabaseInstances.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"engine":{"type":"string","description":"The engine of the database cluster you want to list databases. To get a full list of available engine visit: [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases). Available engines:\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","engine","serviceName"]},"outputs":{"description":"A collection of values returned by getDatabaseInstances.\n","properties":{"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"databaseIds":{"description":"The list of databases ids of the database cluster associated with the project.\n","items":{"type":"string"},"type":"array"},"engine":{"description":"See Argument Reference above.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"}},"required":["clusterId","databaseIds","engine","serviceName","id"],"type":"object"}},"ovh:CloudProjectDatabase/getDatabaseIntegration:getDatabaseIntegration":{"description":"Use this data source to get information about an integration of a database cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst integration = ovh.CloudProjectDatabase.getDatabaseIntegration({\n    serviceName: \"XXX\",\n    engine: \"YYY\",\n    clusterId: \"ZZZ\",\n    id: \"UUU\",\n});\nexport const integrationType = integration.then(integration =\u003e integration.type);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nintegration = ovh.CloudProjectDatabase.get_database_integration(service_name=\"XXX\",\n    engine=\"YYY\",\n    cluster_id=\"ZZZ\",\n    id=\"UUU\")\npulumi.export(\"integrationType\", integration.type)\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 integration = Ovh.CloudProjectDatabase.GetDatabaseIntegration.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        Engine = \"YYY\",\n        ClusterId = \"ZZZ\",\n        Id = \"UUU\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"integrationType\"] = integration.Apply(getDatabaseIntegrationResult =\u003e getDatabaseIntegrationResult.Type),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tintegration, err := cloudprojectdatabase.GetDatabaseIntegration(ctx, \u0026cloudprojectdatabase.GetDatabaseIntegrationArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine:      \"YYY\",\n\t\t\tClusterId:   \"ZZZ\",\n\t\t\tId:          \"UUU\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"integrationType\", integration.Type)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseIntegrationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 integration = CloudProjectDatabaseFunctions.getDatabaseIntegration(GetDatabaseIntegrationArgs.builder()\n            .serviceName(\"XXX\")\n            .engine(\"YYY\")\n            .clusterId(\"ZZZ\")\n            .id(\"UUU\")\n            .build());\n\n        ctx.export(\"integrationType\", integration.type());\n    }\n}\n```\n```yaml\nvariables:\n  integration:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getDatabaseIntegration\n      arguments:\n        serviceName: XXX\n        engine: YYY\n        clusterId: ZZZ\n        id: UUU\noutputs:\n  integrationType: ${integration.type}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDatabaseIntegration.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n"},"engine":{"type":"string","description":"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). All engines available except `mongodb`\n"},"id":{"type":"string","description":"Integration ID\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","engine","id","serviceName"]},"outputs":{"description":"A collection of values returned by getDatabaseIntegration.\n","properties":{"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"destinationServiceId":{"description":"ID of the destination service.\n","type":"string"},"engine":{"description":"See Argument Reference above.\n","type":"string"},"id":{"description":"See Argument Reference above.\n","type":"string"},"parameters":{"additionalProperties":{"type":"string"},"description":"Parameters for the integration.\n","type":"object"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"},"sourceServiceId":{"description":"ID of the source service.\n","type":"string"},"status":{"description":"Current status of the integration.\n","type":"string"},"type":{"description":"Type of the integration.\n","type":"string"}},"required":["clusterId","destinationServiceId","engine","id","parameters","serviceName","sourceServiceId","status","type"],"type":"object"}},"ovh:CloudProjectDatabase/getDatabaseIntegrations:getDatabaseIntegrations":{"description":"Use this data source to get the list of integrations of a database cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst integrations = ovh.CloudProjectDatabase.getDatabaseIntegrations({\n    serviceName: \"XXX\",\n    engine: \"YYY\",\n    clusterId: \"ZZZ\",\n});\nexport const integrationIds = integrations.then(integrations =\u003e integrations.integrationIds);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nintegrations = ovh.CloudProjectDatabase.get_database_integrations(service_name=\"XXX\",\n    engine=\"YYY\",\n    cluster_id=\"ZZZ\")\npulumi.export(\"integrationIds\", integrations.integration_ids)\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 integrations = Ovh.CloudProjectDatabase.GetDatabaseIntegrations.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        Engine = \"YYY\",\n        ClusterId = \"ZZZ\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"integrationIds\"] = integrations.Apply(getDatabaseIntegrationsResult =\u003e getDatabaseIntegrationsResult.IntegrationIds),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tintegrations, err := cloudprojectdatabase.GetDatabaseIntegrations(ctx, \u0026cloudprojectdatabase.GetDatabaseIntegrationsArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine:      \"YYY\",\n\t\t\tClusterId:   \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"integrationIds\", integrations.IntegrationIds)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseIntegrationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 integrations = CloudProjectDatabaseFunctions.getDatabaseIntegrations(GetDatabaseIntegrationsArgs.builder()\n            .serviceName(\"XXX\")\n            .engine(\"YYY\")\n            .clusterId(\"ZZZ\")\n            .build());\n\n        ctx.export(\"integrationIds\", integrations.integrationIds());\n    }\n}\n```\n```yaml\nvariables:\n  integrations:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getDatabaseIntegrations\n      arguments:\n        serviceName: XXX\n        engine: YYY\n        clusterId: ZZZ\noutputs:\n  integrationIds: ${integrations.integrationIds}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDatabaseIntegrations.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"engine":{"type":"string","description":"The engine of the database cluster you want to list integrations. To get a full list of available engine visit: [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases). All engines available except `mongodb`\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","engine","serviceName"]},"outputs":{"description":"A collection of values returned by getDatabaseIntegrations.\n","properties":{"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"engine":{"description":"See Argument Reference above.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"integrationIds":{"description":"The list of integrations ids of the database cluster associated with the project.\n","items":{"type":"string"},"type":"array"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"}},"required":["clusterId","engine","integrationIds","serviceName","id"],"type":"object"}},"ovh:CloudProjectDatabase/getDatabaseLogSubscription:getDatabaseLogSubscription":{"description":"Use this data source to get information about a log subscription for a cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst subscription = ovh.CloudProjectDatabase.getDatabaseLogSubscription({\n    serviceName: \"VVV\",\n    engine: \"XXX\",\n    clusterId: \"YYY\",\n    id: \"ZZZ\",\n});\nexport const subscriptionLdpName = subscription.then(subscription =\u003e subscription.ldpServiceName);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nsubscription = ovh.CloudProjectDatabase.get_database_log_subscription(service_name=\"VVV\",\n    engine=\"XXX\",\n    cluster_id=\"YYY\",\n    id=\"ZZZ\")\npulumi.export(\"subscriptionLdpName\", subscription.ldp_service_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var subscription = Ovh.CloudProjectDatabase.GetDatabaseLogSubscription.Invoke(new()\n    {\n        ServiceName = \"VVV\",\n        Engine = \"XXX\",\n        ClusterId = \"YYY\",\n        Id = \"ZZZ\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"subscriptionLdpName\"] = subscription.Apply(getDatabaseLogSubscriptionResult =\u003e getDatabaseLogSubscriptionResult.LdpServiceName),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsubscription, err := cloudprojectdatabase.GetDatabaseLogSubscription(ctx, \u0026cloudprojectdatabase.GetDatabaseLogSubscriptionArgs{\n\t\t\tServiceName: \"VVV\",\n\t\t\tEngine:      \"XXX\",\n\t\t\tClusterId:   \"YYY\",\n\t\t\tId:          \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"subscriptionLdpName\", subscription.LdpServiceName)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseLogSubscriptionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 subscription = CloudProjectDatabaseFunctions.getDatabaseLogSubscription(GetDatabaseLogSubscriptionArgs.builder()\n            .serviceName(\"VVV\")\n            .engine(\"XXX\")\n            .clusterId(\"YYY\")\n            .id(\"ZZZ\")\n            .build());\n\n        ctx.export(\"subscriptionLdpName\", subscription.ldpServiceName());\n    }\n}\n```\n```yaml\nvariables:\n  subscription:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getDatabaseLogSubscription\n      arguments:\n        serviceName: VVV\n        engine: XXX\n        clusterId: YYY\n        id: ZZZ\noutputs:\n  subscriptionLdpName: ${subscription.ldpServiceName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDatabaseLogSubscription.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n"},"engine":{"type":"string","description":"The database engine for which you want to retrieve a subscription. To get a full list of available engine visit. [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases).\n"},"id":{"type":"string","description":"Id of the log subscription.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","engine","id","serviceName"]},"outputs":{"description":"A collection of values returned by getDatabaseLogSubscription.\n","properties":{"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"createdAt":{"description":"Creation date of the subscription.\n","type":"string"},"engine":{"description":"See Argument Reference above.\n","type":"string"},"id":{"description":"ID of the log subscription.\n","type":"string"},"kind":{"description":"Log kind name of this subscription.\n","type":"string"},"ldpServiceName":{"description":"Name of the destination log service.\n","secret":true,"type":"string"},"resourceName":{"description":"Name of subscribed resource, where the logs come from.\n","type":"string"},"resourceType":{"description":"Type of subscribed resource, where the logs come from.\n","type":"string"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"},"streamId":{"description":"See Argument Reference above.\n","type":"string"},"updatedAt":{"description":"Last update date of the subscription.\n","type":"string"}},"required":["clusterId","createdAt","engine","id","kind","ldpServiceName","resourceName","resourceType","serviceName","streamId","updatedAt"],"type":"object"}},"ovh:CloudProjectDatabase/getDatabaseLogSubscriptions:getDatabaseLogSubscriptions":{"description":"Use this data source to get the list of log subscription for a cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst subscriptions = ovh.CloudProjectDatabase.getDatabaseLogSubscriptions({\n    serviceName: \"XXX\",\n    engine: \"YYY\",\n    clusterId: \"ZZZ\",\n});\nexport const subscriptionIds = subscriptions.then(subscriptions =\u003e subscriptions.subscriptionIds);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nsubscriptions = ovh.CloudProjectDatabase.get_database_log_subscriptions(service_name=\"XXX\",\n    engine=\"YYY\",\n    cluster_id=\"ZZZ\")\npulumi.export(\"subscriptionIds\", subscriptions.subscription_ids)\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 subscriptions = Ovh.CloudProjectDatabase.GetDatabaseLogSubscriptions.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        Engine = \"YYY\",\n        ClusterId = \"ZZZ\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"subscriptionIds\"] = subscriptions.Apply(getDatabaseLogSubscriptionsResult =\u003e getDatabaseLogSubscriptionsResult.SubscriptionIds),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsubscriptions, err := cloudprojectdatabase.GetDatabaseLogSubscriptions(ctx, \u0026cloudprojectdatabase.GetDatabaseLogSubscriptionsArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine:      \"YYY\",\n\t\t\tClusterId:   \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"subscriptionIds\", subscriptions.SubscriptionIds)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseLogSubscriptionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 subscriptions = CloudProjectDatabaseFunctions.getDatabaseLogSubscriptions(GetDatabaseLogSubscriptionsArgs.builder()\n            .serviceName(\"XXX\")\n            .engine(\"YYY\")\n            .clusterId(\"ZZZ\")\n            .build());\n\n        ctx.export(\"subscriptionIds\", subscriptions.subscriptionIds());\n    }\n}\n```\n```yaml\nvariables:\n  subscriptions:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getDatabaseLogSubscriptions\n      arguments:\n        serviceName: XXX\n        engine: YYY\n        clusterId: ZZZ\noutputs:\n  subscriptionIds: ${subscriptions.subscriptionIds}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDatabaseLogSubscriptions.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n"},"engine":{"type":"string","description":"The database engine for which you want to retrieve a subscription. To get a full list of available engine visit. [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases).\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","engine","serviceName"]},"outputs":{"description":"A collection of values returned by getDatabaseLogSubscriptions.\n","properties":{"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"engine":{"description":"See Argument Reference above.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"},"subscriptionIds":{"description":"The list of log subscription ids of the cluster associated with the project.\n","items":{"type":"string"},"type":"array"}},"required":["clusterId","engine","serviceName","subscriptionIds","id"],"type":"object"}},"ovh:CloudProjectDatabase/getDatabasePostgreSQLConnectionPools:getDatabasePostgreSQLConnectionPools":{"description":"Use this data source to get the list of connection pools of a postgresql cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst testPools = ovh.CloudProjectDatabase.getDatabasePostgreSQLConnectionPools({\n    serviceName: \"XXX\",\n    clusterId: \"YYY\",\n});\nexport const connectionPoolIds = testPools.then(testPools =\u003e testPools.connectionPoolIds);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ntest_pools = ovh.CloudProjectDatabase.get_database_postgre_sql_connection_pools(service_name=\"XXX\",\n    cluster_id=\"YYY\")\npulumi.export(\"connectionPoolIds\", test_pools.connection_pool_ids)\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 testPools = Ovh.CloudProjectDatabase.GetDatabasePostgreSQLConnectionPools.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        ClusterId = \"YYY\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"connectionPoolIds\"] = testPools.Apply(getDatabasePostgreSQLConnectionPoolsResult =\u003e getDatabasePostgreSQLConnectionPoolsResult.ConnectionPoolIds),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestPools, err := cloudprojectdatabase.GetDatabasePostgreSQLConnectionPools(ctx, \u0026cloudprojectdatabase.GetDatabasePostgreSQLConnectionPoolsArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tClusterId:   \"YYY\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"connectionPoolIds\", testPools.ConnectionPoolIds)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabasePostgreSQLConnectionPoolsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 testPools = CloudProjectDatabaseFunctions.getDatabasePostgreSQLConnectionPools(GetDatabasePostgreSQLConnectionPoolsArgs.builder()\n            .serviceName(\"XXX\")\n            .clusterId(\"YYY\")\n            .build());\n\n        ctx.export(\"connectionPoolIds\", testPools.connectionPoolIds());\n    }\n}\n```\n```yaml\nvariables:\n  testPools:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getDatabasePostgreSQLConnectionPools\n      arguments:\n        serviceName: XXX\n        clusterId: YYY\noutputs:\n  connectionPoolIds: ${testPools.connectionPoolIds}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDatabasePostgreSQLConnectionPools.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","serviceName"]},"outputs":{"description":"A collection of values returned by getDatabasePostgreSQLConnectionPools.\n","properties":{"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"connectionPoolIds":{"description":"The list of patterns ids of the opensearch cluster associated with the project.\n","items":{"type":"string"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"}},"required":["clusterId","connectionPoolIds","serviceName","id"],"type":"object"}},"ovh:CloudProjectDatabase/getDatabases:getDatabases":{"description":"Use this data source to get the list of managed databases of a public cloud project.\n\n## Example Usage\n\nTo get the list of database clusters service for a given engine:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst dbs = ovh.CloudProjectDatabase.getDatabases({\n    serviceName: \"XXXXXX\",\n    engine: \"YYYY\",\n});\nexport const clusterIds = dbs.then(dbs =\u003e dbs.clusterIds);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ndbs = ovh.CloudProjectDatabase.get_databases(service_name=\"XXXXXX\",\n    engine=\"YYYY\")\npulumi.export(\"clusterIds\", dbs.cluster_ids)\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 dbs = Ovh.CloudProjectDatabase.GetDatabases.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        Engine = \"YYYY\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"clusterIds\"] = dbs.Apply(getDatabasesResult =\u003e getDatabasesResult.ClusterIds),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdbs, err := cloudprojectdatabase.GetDatabases(ctx, \u0026cloudprojectdatabase.GetDatabasesArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tEngine:      \"YYYY\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"clusterIds\", dbs.ClusterIds)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabasesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 dbs = CloudProjectDatabaseFunctions.getDatabases(GetDatabasesArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .engine(\"YYYY\")\n            .build());\n\n        ctx.export(\"clusterIds\", dbs.clusterIds());\n    }\n}\n```\n```yaml\nvariables:\n  dbs:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getDatabases\n      arguments:\n        serviceName: XXXXXX\n        engine: YYYY\noutputs:\n  clusterIds: ${dbs.clusterIds}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDatabases.\n","properties":{"engine":{"type":"string","description":"The database engine you want to list. To get a full list of available engine visit: [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases).\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["engine","serviceName"]},"outputs":{"description":"A collection of values returned by getDatabases.\n","properties":{"clusterIds":{"description":"The list of managed databases ids of the project.\n","items":{"type":"string"},"type":"array"},"engine":{"description":"See Argument Reference above.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"}},"required":["clusterIds","engine","serviceName","id"],"type":"object"}},"ovh:CloudProjectDatabase/getIpRestrictions:getIpRestrictions":{"description":"\u003e **DEPRECATED** Use `ip_restrictions` field in `ovh.CloudProject.Database` resource instead.\n\n\u003e **NOTE** This resource is only compatible with the following engines: **cassandra, grafana, kafka, kakfaConnect, m3db, mongodb, mysql, opensearch, postgres, redis**\n\nUse this data source to get the list of IP restrictions associated with a public cloud project.\n\n## Example Usage\n\nTo get the list of IP restriction on a database cluster service:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst ipRestrictions = ovh.CloudProjectDatabase.getIpRestrictions({\n    serviceName: \"XXXXXX\",\n    engine: \"YYYY\",\n    clusterId: \"ZZZZ\",\n});\nexport const ips = ipRestrictions.then(ipRestrictions =\u003e ipRestrictions.ips);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nip_restrictions = ovh.CloudProjectDatabase.get_ip_restrictions(service_name=\"XXXXXX\",\n    engine=\"YYYY\",\n    cluster_id=\"ZZZZ\")\npulumi.export(\"ips\", ip_restrictions.ips)\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 ipRestrictions = Ovh.CloudProjectDatabase.GetIpRestrictions.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        Engine = \"YYYY\",\n        ClusterId = \"ZZZZ\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ips\"] = ipRestrictions.Apply(getIpRestrictionsResult =\u003e getIpRestrictionsResult.Ips),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tipRestrictions, err := cloudprojectdatabase.GetIpRestrictions(ctx, \u0026cloudprojectdatabase.GetIpRestrictionsArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tEngine:      \"YYYY\",\n\t\t\tClusterId:   \"ZZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ips\", ipRestrictions.Ips)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetIpRestrictionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 ipRestrictions = CloudProjectDatabaseFunctions.getIpRestrictions(GetIpRestrictionsArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .engine(\"YYYY\")\n            .clusterId(\"ZZZZ\")\n            .build());\n\n        ctx.export(\"ips\", ipRestrictions.ips());\n    }\n}\n```\n```yaml\nvariables:\n  ipRestrictions:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getIpRestrictions\n      arguments:\n        serviceName: XXXXXX\n        engine: YYYY\n        clusterId: ZZZZ\noutputs:\n  ips: ${ipRestrictions.ips}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIpRestrictions.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"engine":{"type":"string","description":"The engine of the database cluster you want to list IP restrictions. To get a full list of available engine visit: [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases).\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","engine","serviceName"]},"outputs":{"description":"A collection of values returned by getIpRestrictions.\n","properties":{"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"engine":{"description":"See Argument Reference above.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"ips":{"description":"The list of IP restriction of the database associated with the project.\n","items":{"type":"string"},"type":"array"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"}},"required":["clusterId","engine","ips","serviceName","id"],"type":"object"}},"ovh:CloudProjectDatabase/getKafkaAcl:getKafkaAcl":{"description":"Use this data source to get information about an ACL of a kafka cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst acl = ovh.CloudProjectDatabase.getKafkaAcl({\n    serviceName: \"XXX\",\n    clusterId: \"YYY\",\n    id: \"ZZZ\",\n});\nexport const aclPermission = acl.then(acl =\u003e acl.permission);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nacl = ovh.CloudProjectDatabase.get_kafka_acl(service_name=\"XXX\",\n    cluster_id=\"YYY\",\n    id=\"ZZZ\")\npulumi.export(\"aclPermission\", acl.permission)\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 acl = Ovh.CloudProjectDatabase.GetKafkaAcl.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        ClusterId = \"YYY\",\n        Id = \"ZZZ\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"aclPermission\"] = acl.Apply(getKafkaAclResult =\u003e getKafkaAclResult.Permission),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tacl, err := cloudprojectdatabase.GetKafkaAcl(ctx, \u0026cloudprojectdatabase.GetKafkaAclArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tClusterId:   \"YYY\",\n\t\t\tId:          \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"aclPermission\", acl.Permission)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetKafkaAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 acl = CloudProjectDatabaseFunctions.getKafkaAcl(GetKafkaAclArgs.builder()\n            .serviceName(\"XXX\")\n            .clusterId(\"YYY\")\n            .id(\"ZZZ\")\n            .build());\n\n        ctx.export(\"aclPermission\", acl.permission());\n    }\n}\n```\n```yaml\nvariables:\n  acl:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getKafkaAcl\n      arguments:\n        serviceName: XXX\n        clusterId: YYY\n        id: ZZZ\noutputs:\n  aclPermission: ${acl.permission}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKafkaAcl.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"id":{"type":"string","description":"ACL ID\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","id","serviceName"]},"outputs":{"description":"A collection of values returned by getKafkaAcl.\n","properties":{"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"id":{"description":"See Argument Reference above.\n","type":"string"},"permission":{"description":"Permission to give to this username on this topic.\n","type":"string"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"},"topic":{"description":"Topic affected by this ACL.\n","type":"string"},"username":{"description":"Username affected by this ACL.\n","type":"string"}},"required":["clusterId","id","permission","serviceName","topic","username"],"type":"object"}},"ovh:CloudProjectDatabase/getKafkaAcls:getKafkaAcls":{"description":"Use this data source to get the list of ACLs of a kafka cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst acls = ovh.CloudProjectDatabase.getKafkaAcls({\n    serviceName: \"XXX\",\n    clusterId: \"YYY\",\n});\nexport const aclIds = acls.then(acls =\u003e acls.aclIds);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nacls = ovh.CloudProjectDatabase.get_kafka_acls(service_name=\"XXX\",\n    cluster_id=\"YYY\")\npulumi.export(\"aclIds\", acls.acl_ids)\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 acls = Ovh.CloudProjectDatabase.GetKafkaAcls.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        ClusterId = \"YYY\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"aclIds\"] = acls.Apply(getKafkaAclsResult =\u003e getKafkaAclsResult.AclIds),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tacls, err := cloudprojectdatabase.GetKafkaAcls(ctx, \u0026cloudprojectdatabase.GetKafkaAclsArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tClusterId:   \"YYY\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"aclIds\", acls.AclIds)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetKafkaAclsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 acls = CloudProjectDatabaseFunctions.getKafkaAcls(GetKafkaAclsArgs.builder()\n            .serviceName(\"XXX\")\n            .clusterId(\"YYY\")\n            .build());\n\n        ctx.export(\"aclIds\", acls.aclIds());\n    }\n}\n```\n```yaml\nvariables:\n  acls:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getKafkaAcls\n      arguments:\n        serviceName: XXX\n        clusterId: YYY\noutputs:\n  aclIds: ${acls.aclIds}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKafkaAcls.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","serviceName"]},"outputs":{"description":"A collection of values returned by getKafkaAcls.\n","properties":{"aclIds":{"description":"The list of ACLs ids of the kafka cluster associated with the project.\n","items":{"type":"string"},"type":"array"},"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"}},"required":["aclIds","clusterId","serviceName","id"],"type":"object"}},"ovh:CloudProjectDatabase/getKafkaSchemaRegistryAcl:getKafkaSchemaRegistryAcl":{"description":"Use this data source to get information about a schema registry ACL of a kafka cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst schemaRegistryAcl = ovh.CloudProjectDatabase.getKafkaSchemaRegistryAcl({\n    serviceName: \"XXX\",\n    clusterId: \"YYY\",\n    id: \"ZZZ\",\n});\nexport const aclPermission = schemaRegistryAcl.then(schemaRegistryAcl =\u003e schemaRegistryAcl.permission);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nschema_registry_acl = ovh.CloudProjectDatabase.get_kafka_schema_registry_acl(service_name=\"XXX\",\n    cluster_id=\"YYY\",\n    id=\"ZZZ\")\npulumi.export(\"aclPermission\", schema_registry_acl.permission)\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 schemaRegistryAcl = Ovh.CloudProjectDatabase.GetKafkaSchemaRegistryAcl.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        ClusterId = \"YYY\",\n        Id = \"ZZZ\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"aclPermission\"] = schemaRegistryAcl.Apply(getKafkaSchemaRegistryAclResult =\u003e getKafkaSchemaRegistryAclResult.Permission),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tschemaRegistryAcl, err := cloudprojectdatabase.GetKafkaSchemaRegistryAcl(ctx, \u0026cloudprojectdatabase.GetKafkaSchemaRegistryAclArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tClusterId:   \"YYY\",\n\t\t\tId:          \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"aclPermission\", schemaRegistryAcl.Permission)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetKafkaSchemaRegistryAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 schemaRegistryAcl = CloudProjectDatabaseFunctions.getKafkaSchemaRegistryAcl(GetKafkaSchemaRegistryAclArgs.builder()\n            .serviceName(\"XXX\")\n            .clusterId(\"YYY\")\n            .id(\"ZZZ\")\n            .build());\n\n        ctx.export(\"aclPermission\", schemaRegistryAcl.permission());\n    }\n}\n```\n```yaml\nvariables:\n  schemaRegistryAcl:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getKafkaSchemaRegistryAcl\n      arguments:\n        serviceName: XXX\n        clusterId: YYY\n        id: ZZZ\noutputs:\n  aclPermission: ${schemaRegistryAcl.permission}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKafkaSchemaRegistryAcl.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"id":{"type":"string","description":"Schema registry ACL ID\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","id","serviceName"]},"outputs":{"description":"A collection of values returned by getKafkaSchemaRegistryAcl.\n","properties":{"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"id":{"description":"See Argument Reference above.\n","type":"string"},"permission":{"description":"Permission to give to this username on this topic.\n","type":"string"},"resource":{"description":"Resource affected by this ACL.\n","type":"string"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"},"username":{"description":"Username affected by this ACL.\n","type":"string"}},"required":["clusterId","id","permission","resource","serviceName","username"],"type":"object"}},"ovh:CloudProjectDatabase/getKafkaSchemaRegistryAcls:getKafkaSchemaRegistryAcls":{"description":"Use this data source to get the list of ACLs of a kafka cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst schemaRegistryAcls = ovh.CloudProjectDatabase.getKafkaSchemaRegistryAcls({\n    serviceName: \"XXX\",\n    clusterId: \"YYY\",\n});\nexport const aclIds = schemaRegistryAcls.then(schemaRegistryAcls =\u003e schemaRegistryAcls.aclIds);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nschema_registry_acls = ovh.CloudProjectDatabase.get_kafka_schema_registry_acls(service_name=\"XXX\",\n    cluster_id=\"YYY\")\npulumi.export(\"aclIds\", schema_registry_acls.acl_ids)\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 schemaRegistryAcls = Ovh.CloudProjectDatabase.GetKafkaSchemaRegistryAcls.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        ClusterId = \"YYY\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"aclIds\"] = schemaRegistryAcls.Apply(getKafkaSchemaRegistryAclsResult =\u003e getKafkaSchemaRegistryAclsResult.AclIds),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tschemaRegistryAcls, err := cloudprojectdatabase.GetKafkaSchemaRegistryAcls(ctx, \u0026cloudprojectdatabase.GetKafkaSchemaRegistryAclsArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tClusterId:   \"YYY\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"aclIds\", schemaRegistryAcls.AclIds)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetKafkaSchemaRegistryAclsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 schemaRegistryAcls = CloudProjectDatabaseFunctions.getKafkaSchemaRegistryAcls(GetKafkaSchemaRegistryAclsArgs.builder()\n            .serviceName(\"XXX\")\n            .clusterId(\"YYY\")\n            .build());\n\n        ctx.export(\"aclIds\", schemaRegistryAcls.aclIds());\n    }\n}\n```\n```yaml\nvariables:\n  schemaRegistryAcls:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getKafkaSchemaRegistryAcls\n      arguments:\n        serviceName: XXX\n        clusterId: YYY\noutputs:\n  aclIds: ${schemaRegistryAcls.aclIds}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKafkaSchemaRegistryAcls.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","serviceName"]},"outputs":{"description":"A collection of values returned by getKafkaSchemaRegistryAcls.\n","properties":{"aclIds":{"description":"The list of schema refistry ACLs ids of the kafka cluster associated with the project.\n","items":{"type":"string"},"type":"array"},"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"}},"required":["aclIds","clusterId","serviceName","id"],"type":"object"}},"ovh:CloudProjectDatabase/getKafkaTopic:getKafkaTopic":{"description":"Use this data source to get information about a topic of a kafka cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst topic = ovh.CloudProjectDatabase.getKafkaTopic({\n    serviceName: \"XXX\",\n    clusterId: \"YYY\",\n    id: \"ZZZ\",\n});\nexport const topicName = topic.then(topic =\u003e topic.name);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ntopic = ovh.CloudProjectDatabase.get_kafka_topic(service_name=\"XXX\",\n    cluster_id=\"YYY\",\n    id=\"ZZZ\")\npulumi.export(\"topicName\", topic.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var topic = Ovh.CloudProjectDatabase.GetKafkaTopic.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        ClusterId = \"YYY\",\n        Id = \"ZZZ\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"topicName\"] = topic.Apply(getKafkaTopicResult =\u003e getKafkaTopicResult.Name),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttopic, err := cloudprojectdatabase.GetKafkaTopic(ctx, \u0026cloudprojectdatabase.GetKafkaTopicArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tClusterId:   \"YYY\",\n\t\t\tId:          \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"topicName\", topic.Name)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetKafkaTopicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 topic = CloudProjectDatabaseFunctions.getKafkaTopic(GetKafkaTopicArgs.builder()\n            .serviceName(\"XXX\")\n            .clusterId(\"YYY\")\n            .id(\"ZZZ\")\n            .build());\n\n        ctx.export(\"topicName\", topic.name());\n    }\n}\n```\n```yaml\nvariables:\n  topic:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getKafkaTopic\n      arguments:\n        serviceName: XXX\n        clusterId: YYY\n        id: ZZZ\noutputs:\n  topicName: ${topic.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKafkaTopic.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"id":{"type":"string","description":"Topic ID\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","id","serviceName"]},"outputs":{"description":"A collection of values returned by getKafkaTopic.\n","properties":{"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"id":{"description":"See Argument Reference above.\n","type":"string"},"minInsyncReplicas":{"description":"Minimum insync replica accepted for this topic.\n","type":"integer"},"name":{"description":"Name of the topic.\n","type":"string"},"partitions":{"description":"Number of partitions for this topic.\n","type":"integer"},"replication":{"description":"Number of replication for this topic.\n","type":"integer"},"retentionBytes":{"description":"Number of bytes for the retention of the data for this topic. Inferior to 0 mean Unlimited\n","type":"integer"},"retentionHours":{"description":"Number of hours for the retention of the data for this topic. Inferior to 0 mean Unlimited\n","type":"integer"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"}},"required":["clusterId","id","minInsyncReplicas","name","partitions","replication","retentionBytes","retentionHours","serviceName"],"type":"object"}},"ovh:CloudProjectDatabase/getKafkaTopics:getKafkaTopics":{"description":"Use this data source to get the list of topics of a kafka cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst topics = ovh.CloudProjectDatabase.getKafkaTopics({\n    serviceName: \"XXX\",\n    clusterId: \"YYY\",\n});\nexport const topicIds = topics.then(topics =\u003e topics.topicIds);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ntopics = ovh.CloudProjectDatabase.get_kafka_topics(service_name=\"XXX\",\n    cluster_id=\"YYY\")\npulumi.export(\"topicIds\", topics.topic_ids)\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 topics = Ovh.CloudProjectDatabase.GetKafkaTopics.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        ClusterId = \"YYY\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"topicIds\"] = topics.Apply(getKafkaTopicsResult =\u003e getKafkaTopicsResult.TopicIds),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttopics, err := cloudprojectdatabase.GetKafkaTopics(ctx, \u0026cloudprojectdatabase.GetKafkaTopicsArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tClusterId:   \"YYY\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"topicIds\", topics.TopicIds)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetKafkaTopicsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 topics = CloudProjectDatabaseFunctions.getKafkaTopics(GetKafkaTopicsArgs.builder()\n            .serviceName(\"XXX\")\n            .clusterId(\"YYY\")\n            .build());\n\n        ctx.export(\"topicIds\", topics.topicIds());\n    }\n}\n```\n```yaml\nvariables:\n  topics:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getKafkaTopics\n      arguments:\n        serviceName: XXX\n        clusterId: YYY\noutputs:\n  topicIds: ${topics.topicIds}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKafkaTopics.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","serviceName"]},"outputs":{"description":"A collection of values returned by getKafkaTopics.\n","properties":{"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"},"topicIds":{"description":"The list of topics ids of the kafka cluster associated with the project.\n","items":{"type":"string"},"type":"array"}},"required":["clusterId","serviceName","topicIds","id"],"type":"object"}},"ovh:CloudProjectDatabase/getKafkaUserAccess:getKafkaUserAccess":{"description":"Use this data source to get information about user acces of a kafka cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst access = ovh.CloudProjectDatabase.getKafkaUserAccess({\n    serviceName: \"XXX\",\n    clusterId: \"YYY\",\n    userId: \"ZZZ\",\n});\nexport const accessCert = access.then(access =\u003e access.cert);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\naccess = ovh.CloudProjectDatabase.get_kafka_user_access(service_name=\"XXX\",\n    cluster_id=\"YYY\",\n    user_id=\"ZZZ\")\npulumi.export(\"accessCert\", access.cert)\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 access = Ovh.CloudProjectDatabase.GetKafkaUserAccess.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        ClusterId = \"YYY\",\n        UserId = \"ZZZ\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"accessCert\"] = access.Apply(getKafkaUserAccessResult =\u003e getKafkaUserAccessResult.Cert),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\taccess, err := cloudprojectdatabase.GetKafkaUserAccess(ctx, \u0026cloudprojectdatabase.GetKafkaUserAccessArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tClusterId:   \"YYY\",\n\t\t\tUserId:      \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"accessCert\", access.Cert)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetKafkaUserAccessArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 access = CloudProjectDatabaseFunctions.getKafkaUserAccess(GetKafkaUserAccessArgs.builder()\n            .serviceName(\"XXX\")\n            .clusterId(\"YYY\")\n            .userId(\"ZZZ\")\n            .build());\n\n        ctx.export(\"accessCert\", access.cert());\n    }\n}\n```\n```yaml\nvariables:\n  access:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getKafkaUserAccess\n      arguments:\n        serviceName: XXX\n        clusterId: YYY\n        userId: ZZZ\noutputs:\n  accessCert: ${access.cert}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKafkaUserAccess.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"},"userId":{"type":"string","description":"User ID\n"}},"type":"object","required":["clusterId","serviceName","userId"]},"outputs":{"description":"A collection of values returned by getKafkaUserAccess.\n","properties":{"cert":{"description":"User cert.\n","type":"string"},"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"key":{"description":"(Sensitive) User key for the cert.\n","secret":true,"type":"string"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"},"userId":{"description":"See Argument Reference above.\n","type":"string"}},"required":["cert","clusterId","key","serviceName","userId","id"],"type":"object"}},"ovh:CloudProjectDatabase/getPostgresSqlConnectionPool:getPostgresSqlConnectionPool":{"description":"Use this data source to get information about a connection pool of a postgresql cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nexport = async () =\u003e {\n    const testPool = await ovh.CloudProjectDatabase.getPostgresSqlConnectionPool({\n        serviceName: \"XXX\",\n        clusterId: \"YYY\",\n        name: \"ZZZ\",\n    });\n    return {\n        testPool: {\n            serviceName: testPool.serviceName,\n            clusterId: testPool.clusterId,\n            name: testPool.name,\n            databaseId: testPool.databaseId,\n            mode: testPool.mode,\n            size: testPool.size,\n            port: testPool.port,\n            sslMode: testPool.sslMode,\n            uri: testPool.uri,\n            userId: testPool.userId,\n        },\n    };\n}\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ntest_pool = ovh.CloudProjectDatabase.get_postgres_sql_connection_pool(service_name=\"XXX\",\n    cluster_id=\"YYY\",\n    name=\"ZZZ\")\npulumi.export(\"testPool\", {\n    \"serviceName\": test_pool.service_name,\n    \"clusterId\": test_pool.cluster_id,\n    \"name\": test_pool.name,\n    \"databaseId\": test_pool.database_id,\n    \"mode\": test_pool.mode,\n    \"size\": test_pool.size,\n    \"port\": test_pool.port,\n    \"sslMode\": test_pool.ssl_mode,\n    \"uri\": test_pool.uri,\n    \"userId\": test_pool.user_id,\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 testPool = Ovh.CloudProjectDatabase.GetPostgresSqlConnectionPool.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        ClusterId = \"YYY\",\n        Name = \"ZZZ\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"testPool\"] = \n        {\n            { \"serviceName\", testPool.Apply(getPostgresSqlConnectionPoolResult =\u003e getPostgresSqlConnectionPoolResult.ServiceName) },\n            { \"clusterId\", testPool.Apply(getPostgresSqlConnectionPoolResult =\u003e getPostgresSqlConnectionPoolResult.ClusterId) },\n            { \"name\", testPool.Apply(getPostgresSqlConnectionPoolResult =\u003e getPostgresSqlConnectionPoolResult.Name) },\n            { \"databaseId\", testPool.Apply(getPostgresSqlConnectionPoolResult =\u003e getPostgresSqlConnectionPoolResult.DatabaseId) },\n            { \"mode\", testPool.Apply(getPostgresSqlConnectionPoolResult =\u003e getPostgresSqlConnectionPoolResult.Mode) },\n            { \"size\", testPool.Apply(getPostgresSqlConnectionPoolResult =\u003e getPostgresSqlConnectionPoolResult.Size) },\n            { \"port\", testPool.Apply(getPostgresSqlConnectionPoolResult =\u003e getPostgresSqlConnectionPoolResult.Port) },\n            { \"sslMode\", testPool.Apply(getPostgresSqlConnectionPoolResult =\u003e getPostgresSqlConnectionPoolResult.SslMode) },\n            { \"uri\", testPool.Apply(getPostgresSqlConnectionPoolResult =\u003e getPostgresSqlConnectionPoolResult.Uri) },\n            { \"userId\", testPool.Apply(getPostgresSqlConnectionPoolResult =\u003e getPostgresSqlConnectionPoolResult.UserId) },\n        },\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestPool, err := cloudprojectdatabase.GetPostgresSqlConnectionPool(ctx, \u0026cloudprojectdatabase.GetPostgresSqlConnectionPoolArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tClusterId:   \"YYY\",\n\t\t\tName:        \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"testPool\", pulumi.Map{\n\t\t\t\"serviceName\": testPool.ServiceName,\n\t\t\t\"clusterId\":   testPool.ClusterId,\n\t\t\t\"name\":        testPool.Name,\n\t\t\t\"databaseId\":  testPool.DatabaseId,\n\t\t\t\"mode\":        testPool.Mode,\n\t\t\t\"size\":        testPool.Size,\n\t\t\t\"port\":        testPool.Port,\n\t\t\t\"sslMode\":     testPool.SslMode,\n\t\t\t\"uri\":         testPool.Uri,\n\t\t\t\"userId\":      testPool.UserId,\n\t\t})\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetPostgresSqlConnectionPoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 testPool = CloudProjectDatabaseFunctions.getPostgresSqlConnectionPool(GetPostgresSqlConnectionPoolArgs.builder()\n            .serviceName(\"XXX\")\n            .clusterId(\"YYY\")\n            .name(\"ZZZ\")\n            .build());\n\n        ctx.export(\"testPool\", Map.ofEntries(\n            Map.entry(\"serviceName\", testPool.serviceName()),\n            Map.entry(\"clusterId\", testPool.clusterId()),\n            Map.entry(\"name\", testPool.name()),\n            Map.entry(\"databaseId\", testPool.databaseId()),\n            Map.entry(\"mode\", testPool.mode()),\n            Map.entry(\"size\", testPool.size()),\n            Map.entry(\"port\", testPool.port()),\n            Map.entry(\"sslMode\", testPool.sslMode()),\n            Map.entry(\"uri\", testPool.uri()),\n            Map.entry(\"userId\", testPool.userId())\n        ));\n    }\n}\n```\n```yaml\nvariables:\n  testPool:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getPostgresSqlConnectionPool\n      arguments:\n        serviceName: XXX\n        clusterId: YYY\n        name: ZZZ\noutputs:\n  testPool:\n    serviceName: ${testPool.serviceName}\n    clusterId: ${testPool.clusterId}\n    name: ${testPool.name}\n    databaseId: ${testPool.databaseId}\n    mode: ${testPool.mode}\n    size: ${testPool.size}\n    port: ${testPool.port}\n    sslMode: ${testPool.sslMode}\n    uri: ${testPool.uri}\n    userId: ${testPool.userId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPostgresSqlConnectionPool.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID.\n"},"name":{"type":"string","description":"Name of the Connection pool.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","name","serviceName"]},"outputs":{"description":"A collection of values returned by getPostgresSqlConnectionPool.\n","properties":{"clusterId":{"description":"See Argument Reference above\n","type":"string"},"databaseId":{"description":"Database ID for a database that belongs to the Database cluster given above.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"mode":{"description":"Connection mode to the connection pool Available modes:\n","type":"string"},"name":{"description":"See Argument Reference above\n","type":"string"},"port":{"description":"Port of the connection pool.\n","type":"integer"},"serviceName":{"description":"See Argument Reference above\n","type":"string"},"size":{"description":"Size of the connection pool.\n","type":"integer"},"sslMode":{"description":"Ssl connection mode for the pool.\n","type":"string"},"uri":{"description":"Connection URI to the pool.\n","type":"string"},"userId":{"description":"Database user authorized to connect to the pool, if none all the users are allowed.\n","type":"string"}},"required":["clusterId","databaseId","mode","name","port","serviceName","size","sslMode","uri","userId","id"],"type":"object"}},"ovh:CloudProjectDatabase/getPostgresSqlUser:getPostgresSqlUser":{"description":"Use this data source to get information about a user of a postgresql cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst pgUser = ovh.CloudProjectDatabase.getPostgresSqlUser({\n    serviceName: \"XXX\",\n    clusterId: \"YYY\",\n    name: \"ZZZ\",\n});\nexport const pgUserRoles = pgUser.then(pgUser =\u003e pgUser.roles);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\npg_user = ovh.CloudProjectDatabase.get_postgres_sql_user(service_name=\"XXX\",\n    cluster_id=\"YYY\",\n    name=\"ZZZ\")\npulumi.export(\"pgUserRoles\", pg_user.roles)\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 pgUser = Ovh.CloudProjectDatabase.GetPostgresSqlUser.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        ClusterId = \"YYY\",\n        Name = \"ZZZ\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"pgUserRoles\"] = pgUser.Apply(getPostgresSqlUserResult =\u003e getPostgresSqlUserResult.Roles),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpgUser, err := cloudprojectdatabase.GetPostgresSqlUser(ctx, \u0026cloudprojectdatabase.GetPostgresSqlUserArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tClusterId:   \"YYY\",\n\t\t\tName:        \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"pgUserRoles\", pgUser.Roles)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetPostgresSqlUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 pgUser = CloudProjectDatabaseFunctions.getPostgresSqlUser(GetPostgresSqlUserArgs.builder()\n            .serviceName(\"XXX\")\n            .clusterId(\"YYY\")\n            .name(\"ZZZ\")\n            .build());\n\n        ctx.export(\"pgUserRoles\", pgUser.roles());\n    }\n}\n```\n```yaml\nvariables:\n  pgUser:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getPostgresSqlUser\n      arguments:\n        serviceName: XXX\n        clusterId: YYY\n        name: ZZZ\noutputs:\n  pgUserRoles: ${pgUser.roles}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPostgresSqlUser.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"name":{"type":"string","description":"Name of the user.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","name","serviceName"]},"outputs":{"description":"A collection of values returned by getPostgresSqlUser.\n","properties":{"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"createdAt":{"description":"Date of the creation of the user.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"name":{"description":"Name of the user.\n","type":"string"},"roles":{"description":"Roles the user belongs to.\n","items":{"type":"string"},"type":"array"},"serviceName":{"description":"Current status of the user.\n","type":"string"},"status":{"description":"Current status of the user.\n","type":"string"}},"required":["clusterId","createdAt","name","roles","serviceName","status","id"],"type":"object"}},"ovh:CloudProjectDatabase/getUser:getUser":{"description":"Use this data source to get information about a user of a database cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst user = ovh.CloudProjectDatabase.getUser({\n    serviceName: \"XXX\",\n    engine: \"YYY\",\n    clusterId: \"ZZZ\",\n    name: \"UUU\",\n});\nexport const userName = user.then(user =\u003e user.name);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nuser = ovh.CloudProjectDatabase.get_user(service_name=\"XXX\",\n    engine=\"YYY\",\n    cluster_id=\"ZZZ\",\n    name=\"UUU\")\npulumi.export(\"userName\", user.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var user = Ovh.CloudProjectDatabase.GetUser.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        Engine = \"YYY\",\n        ClusterId = \"ZZZ\",\n        Name = \"UUU\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"userName\"] = user.Apply(getUserResult =\u003e getUserResult.Name),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tuser, err := cloudprojectdatabase.GetUser(ctx, \u0026cloudprojectdatabase.GetUserArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine:      \"YYY\",\n\t\t\tClusterId:   \"ZZZ\",\n\t\t\tName:        \"UUU\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"userName\", user.Name)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var user = CloudProjectDatabaseFunctions.getUser(GetUserArgs.builder()\n            .serviceName(\"XXX\")\n            .engine(\"YYY\")\n            .clusterId(\"ZZZ\")\n            .name(\"UUU\")\n            .build());\n\n        ctx.export(\"userName\", user.name());\n    }\n}\n```\n```yaml\nvariables:\n  user:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getUser\n      arguments:\n        serviceName: XXX\n        engine: YYY\n        clusterId: ZZZ\n        name: UUU\noutputs:\n  userName: ${user.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getUser.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"engine":{"type":"string","description":"The engine of the database cluster you want user information. To get a full list of available engine visit : [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases). Available engines:\n"},"name":{"type":"string","description":"Name of the user.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","engine","name","serviceName"]},"outputs":{"description":"A collection of values returned by getUser.\n","properties":{"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"createdAt":{"description":"Date of the creation of the user.\n","type":"string"},"engine":{"description":"See Argument Reference above.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"name":{"description":"Name of the user.\n","type":"string"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"},"status":{"description":"Current status of the user.\n","type":"string"}},"required":["clusterId","createdAt","engine","name","serviceName","status","id"],"type":"object"}},"ovh:CloudProjectDatabase/getUsers:getUsers":{"description":"Use this data source to get the list of users of a database cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst users = ovh.CloudProjectDatabase.getUsers({\n    serviceName: \"XXXX\",\n    engine: \"YYYY\",\n    clusterId: \"ZZZ\",\n});\nexport const userIds = users.then(users =\u003e users.userIds);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nusers = ovh.CloudProjectDatabase.get_users(service_name=\"XXXX\",\n    engine=\"YYYY\",\n    cluster_id=\"ZZZ\")\npulumi.export(\"userIds\", users.user_ids)\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 users = Ovh.CloudProjectDatabase.GetUsers.Invoke(new()\n    {\n        ServiceName = \"XXXX\",\n        Engine = \"YYYY\",\n        ClusterId = \"ZZZ\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"userIds\"] = users.Apply(getUsersResult =\u003e getUsersResult.UserIds),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/cloudprojectdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tusers, err := cloudprojectdatabase.GetUsers(ctx, \u0026cloudprojectdatabase.GetUsersArgs{\n\t\t\tServiceName: \"XXXX\",\n\t\t\tEngine:      \"YYYY\",\n\t\t\tClusterId:   \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"userIds\", users.UserIds)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetUsersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var users = CloudProjectDatabaseFunctions.getUsers(GetUsersArgs.builder()\n            .serviceName(\"XXXX\")\n            .engine(\"YYYY\")\n            .clusterId(\"ZZZ\")\n            .build());\n\n        ctx.export(\"userIds\", users.userIds());\n    }\n}\n```\n```yaml\nvariables:\n  users:\n    fn::invoke:\n      function: ovh:CloudProjectDatabase:getUsers\n      arguments:\n        serviceName: XXXX\n        engine: YYYY\n        clusterId: ZZZ\noutputs:\n  userIds: ${users.userIds}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getUsers.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"engine":{"type":"string","description":"The engine of the database cluster you want to list users. To get a full list of available engine visit: [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases).\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","engine","serviceName"]},"outputs":{"description":"A collection of values returned by getUsers.\n","properties":{"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"engine":{"description":"See Argument Reference above.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"},"userIds":{"description":"The list of users ids of the database cluster associated with the project.\n","items":{"type":"string"},"type":"array"}},"required":["clusterId","engine","serviceName","userIds","id"],"type":"object"}},"ovh:Dbaas/getLogsCluster:getLogsCluster":{"description":"Use this data source to retrieve informations about a DBaas logs cluster tenant.\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 logstash = ovh.Dbaas.getLogsCluster({\n    serviceName: \"ldp-xx-xxxxx\",\n    clusterId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlogstash = ovh.Dbaas.get_logs_cluster(service_name=\"ldp-xx-xxxxx\",\n    cluster_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var logstash = Ovh.Dbaas.GetLogsCluster.Invoke(new()\n    {\n        ServiceName = \"ldp-xx-xxxxx\",\n        ClusterId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/dbaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbaas.GetLogsCluster(ctx, \u0026dbaas.GetLogsClusterArgs{\n\t\t\tServiceName: \"ldp-xx-xxxxx\",\n\t\t\tClusterId:   pulumi.StringRef(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Dbaas.DbaasFunctions;\nimport com.pulumi.ovh.Dbaas.inputs.GetLogsClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var logstash = DbaasFunctions.getLogsCluster(GetLogsClusterArgs.builder()\n            .serviceName(\"ldp-xx-xxxxx\")\n            .clusterId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  logstash:\n    fn::invoke:\n      function: ovh:Dbaas:getLogsCluster\n      arguments:\n        serviceName: ldp-xx-xxxxx\n        clusterId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLogsCluster.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID. If not provided, the default cluster_id is returned\n"},"serviceName":{"type":"string","description":"The service name. It's the ID of your Logs Data Platform instance.\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getLogsCluster.\n","properties":{"archiveAllowedNetworks":{"description":"is allowed networks for ARCHIVE flow type\n","items":{"type":"string"},"type":"array"},"clusterId":{"type":"string"},"clusterType":{"description":"is type of cluster (DEDICATED, PRO or TRIAL)\n","type":"string"},"dedicatedInputPem":{"description":"is PEM for dedicated inputs\n","secret":true,"type":"string"},"directInputAllowedNetworks":{"description":"is allowed networks for DIRECT_INPUT flow type\n","items":{"type":"string"},"type":"array"},"directInputPem":{"description":"is PEM for direct inputs\n","secret":true,"type":"string"},"hostname":{"description":"is cluster hostname hosting the tenant\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"isDefault":{"description":"is true if all content generated by given service will be placed on this cluster\n","type":"boolean"},"isUnlocked":{"description":"is true if given service can perform advanced operations on cluster\n","type":"boolean"},"queryAllowedNetworks":{"description":"is allowed networks for QUERY flow type\n","items":{"type":"string"},"type":"array"},"region":{"description":"is datacenter localization\n","type":"string"},"serviceName":{"type":"string"},"urn":{"description":"is the URN of the DBaas logs instance\n","type":"string"}},"required":["archiveAllowedNetworks","clusterId","clusterType","dedicatedInputPem","directInputAllowedNetworks","directInputPem","hostname","isDefault","isUnlocked","queryAllowedNetworks","region","serviceName","urn","id"],"type":"object"}},"ovh:Dbaas/getLogsClusters:getLogsClusters":{"description":"Use this data source to retrieve UUIDs of DBaas logs clusters.\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 logstash = ovh.Dbaas.getLogsClusters({\n    serviceName: \"ldp-xx-xxxxx\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlogstash = ovh.Dbaas.get_logs_clusters(service_name=\"ldp-xx-xxxxx\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var logstash = Ovh.Dbaas.GetLogsClusters.Invoke(new()\n    {\n        ServiceName = \"ldp-xx-xxxxx\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/dbaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbaas.GetLogsClusters(ctx, \u0026dbaas.GetLogsClustersArgs{\n\t\t\tServiceName: \"ldp-xx-xxxxx\",\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.Dbaas.DbaasFunctions;\nimport com.pulumi.ovh.Dbaas.inputs.GetLogsClustersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var logstash = DbaasFunctions.getLogsClusters(GetLogsClustersArgs.builder()\n            .serviceName(\"ldp-xx-xxxxx\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  logstash:\n    fn::invoke:\n      function: ovh:Dbaas:getLogsClusters\n      arguments:\n        serviceName: ldp-xx-xxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLogsClusters.\n","properties":{"serviceName":{"type":"string","description":"The service name. It's the ID of your Logs Data Platform instance.\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getLogsClusters.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"serviceName":{"type":"string"},"urn":{"type":"string"},"uuids":{"description":"is the cluster id\n","items":{"type":"string"},"type":"array"}},"required":["serviceName","urn","uuids","id"],"type":"object"}},"ovh:Dbaas/getLogsClustersRetention:getLogsClustersRetention":{"description":"Use this data source to retrieve information about a DBaas logs cluster retention.\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 retention = ovh.Dbaas.getLogsClustersRetention({\n    serviceName: \"ldp-xx-xxxxx\",\n    clusterId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    retentionId: \"yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nretention = ovh.Dbaas.get_logs_clusters_retention(service_name=\"ldp-xx-xxxxx\",\n    cluster_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    retention_id=\"yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy\")\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 retention = Ovh.Dbaas.GetLogsClustersRetention.Invoke(new()\n    {\n        ServiceName = \"ldp-xx-xxxxx\",\n        ClusterId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n        RetentionId = \"yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/dbaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbaas.GetLogsClustersRetention(ctx, \u0026dbaas.GetLogsClustersRetentionArgs{\n\t\t\tServiceName: \"ldp-xx-xxxxx\",\n\t\t\tClusterId:   \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n\t\t\tRetentionId: pulumi.StringRef(\"yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy\"),\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.Dbaas.DbaasFunctions;\nimport com.pulumi.ovh.Dbaas.inputs.GetLogsClustersRetentionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 retention = DbaasFunctions.getLogsClustersRetention(GetLogsClustersRetentionArgs.builder()\n            .serviceName(\"ldp-xx-xxxxx\")\n            .clusterId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n            .retentionId(\"yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  retention:\n    fn::invoke:\n      function: ovh:Dbaas:getLogsClustersRetention\n      arguments:\n        serviceName: ldp-xx-xxxxx\n        clusterId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n        retentionId: yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nIt is also possible to retrieve a retention using its duration:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst retention = ovh.Dbaas.getLogsClustersRetention({\n    serviceName: \"ldp-xx-xxxxx\",\n    clusterId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    duration: \"P14D\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nretention = ovh.Dbaas.get_logs_clusters_retention(service_name=\"ldp-xx-xxxxx\",\n    cluster_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    duration=\"P14D\")\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 retention = Ovh.Dbaas.GetLogsClustersRetention.Invoke(new()\n    {\n        ServiceName = \"ldp-xx-xxxxx\",\n        ClusterId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n        Duration = \"P14D\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/dbaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbaas.GetLogsClustersRetention(ctx, \u0026dbaas.GetLogsClustersRetentionArgs{\n\t\t\tServiceName: \"ldp-xx-xxxxx\",\n\t\t\tClusterId:   \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n\t\t\tDuration:    pulumi.StringRef(\"P14D\"),\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.Dbaas.DbaasFunctions;\nimport com.pulumi.ovh.Dbaas.inputs.GetLogsClustersRetentionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 retention = DbaasFunctions.getLogsClustersRetention(GetLogsClustersRetentionArgs.builder()\n            .serviceName(\"ldp-xx-xxxxx\")\n            .clusterId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n            .duration(\"P14D\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  retention:\n    fn::invoke:\n      function: ovh:Dbaas:getLogsClustersRetention\n      arguments:\n        serviceName: ldp-xx-xxxxx\n        clusterId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n        duration: P14D\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nAdditionnaly, you can filter retentions on their type:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst retention = ovh.Dbaas.getLogsClustersRetention({\n    serviceName: \"ldp-xx-xxxxx\",\n    clusterId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    duration: \"P14D\",\n    retentionType: \"LOGS_INDEXING\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nretention = ovh.Dbaas.get_logs_clusters_retention(service_name=\"ldp-xx-xxxxx\",\n    cluster_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    duration=\"P14D\",\n    retention_type=\"LOGS_INDEXING\")\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 retention = Ovh.Dbaas.GetLogsClustersRetention.Invoke(new()\n    {\n        ServiceName = \"ldp-xx-xxxxx\",\n        ClusterId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n        Duration = \"P14D\",\n        RetentionType = \"LOGS_INDEXING\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/dbaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbaas.GetLogsClustersRetention(ctx, \u0026dbaas.GetLogsClustersRetentionArgs{\n\t\t\tServiceName:   \"ldp-xx-xxxxx\",\n\t\t\tClusterId:     \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n\t\t\tDuration:      pulumi.StringRef(\"P14D\"),\n\t\t\tRetentionType: pulumi.StringRef(\"LOGS_INDEXING\"),\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.Dbaas.DbaasFunctions;\nimport com.pulumi.ovh.Dbaas.inputs.GetLogsClustersRetentionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 retention = DbaasFunctions.getLogsClustersRetention(GetLogsClustersRetentionArgs.builder()\n            .serviceName(\"ldp-xx-xxxxx\")\n            .clusterId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n            .duration(\"P14D\")\n            .retentionType(\"LOGS_INDEXING\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  retention:\n    fn::invoke:\n      function: ovh:Dbaas:getLogsClustersRetention\n      arguments:\n        serviceName: ldp-xx-xxxxx\n        clusterId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n        duration: P14D\n        retentionType: LOGS_INDEXING\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLogsClustersRetention.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"duration":{"type":"string","description":"Indexed duration expressed in ISO-8601 format. Cannot be used if `retention_id` is defined.\n"},"retentionId":{"type":"string","description":"ID of the retention object. Cannot be used if `duration` or `retention_type` is defined.\n"},"retentionType":{"type":"string","description":"Type of the retention (LOGS_INDEXING | LOGS_COLD_STORAGE | METRICS_TENANT). Cannot be used if `retention_id` is defined. Defaults to `LOGS_INDEXING` if not defined.\n"},"serviceName":{"type":"string","description":"The service name. It's the ID of your Logs Data Platform instance.\n"}},"type":"object","required":["clusterId","serviceName"]},"outputs":{"description":"A collection of values returned by getLogsClustersRetention.\n","properties":{"clusterId":{"type":"string"},"duration":{"description":"Indexed duration expressed in ISO-8601 format\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"isSupported":{"description":"Indicates if a new stream can use it\n","type":"boolean"},"retentionId":{"description":"ID of the retention that can be used when creating a stream\n","type":"string"},"retentionType":{"description":"Type of the retention (LOGS_INDEXING | LOGS_COLD_STORAGE | METRICS_TENANT)\n","type":"string"},"serviceName":{"type":"string"}},"required":["clusterId","duration","isSupported","retentionId","retentionType","serviceName","id"],"type":"object"}},"ovh:Dbaas/getLogsInputEngine:getLogsInputEngine":{"description":"Use this data source to retrieve information about a DBaas logs input engine.\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 logstash = ovh.Dbaas.getLogsInputEngine({\n    serviceName: \"ldp-xx-xxxxx\",\n    name: \"logstash\",\n    version: \"6.8\",\n    isDeprecated: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlogstash = ovh.Dbaas.get_logs_input_engine(service_name=\"ldp-xx-xxxxx\",\n    name=\"logstash\",\n    version=\"6.8\",\n    is_deprecated=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var logstash = Ovh.Dbaas.GetLogsInputEngine.Invoke(new()\n    {\n        ServiceName = \"ldp-xx-xxxxx\",\n        Name = \"logstash\",\n        Version = \"6.8\",\n        IsDeprecated = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/dbaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbaas.GetLogsInputEngine(ctx, \u0026dbaas.GetLogsInputEngineArgs{\n\t\t\tServiceName:  \"ldp-xx-xxxxx\",\n\t\t\tName:         pulumi.StringRef(\"logstash\"),\n\t\t\tVersion:      pulumi.StringRef(\"6.8\"),\n\t\t\tIsDeprecated: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Dbaas.DbaasFunctions;\nimport com.pulumi.ovh.Dbaas.inputs.GetLogsInputEngineArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var logstash = DbaasFunctions.getLogsInputEngine(GetLogsInputEngineArgs.builder()\n            .serviceName(\"ldp-xx-xxxxx\")\n            .name(\"logstash\")\n            .version(\"6.8\")\n            .isDeprecated(true)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  logstash:\n    fn::invoke:\n      function: ovh:Dbaas:getLogsInputEngine\n      arguments:\n        serviceName: ldp-xx-xxxxx\n        name: logstash\n        version: '6.8'\n        isDeprecated: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLogsInputEngine.\n","properties":{"isDeprecated":{"type":"boolean","description":"Indicates if engine will soon not be supported.\n"},"name":{"type":"string","description":"The name of the logs input engine.\n"},"serviceName":{"type":"string","description":"The service name. It's the ID of your Logs Data Platform instance.\n"},"version":{"type":"string","description":"Software version\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getLogsInputEngine.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"isDeprecated":{"type":"boolean"},"name":{"type":"string"},"serviceName":{"type":"string"},"version":{"type":"string"}},"required":["isDeprecated","name","serviceName","version","id"],"type":"object"}},"ovh:Dbaas/getLogsOutputGraylogStream:getLogsOutputGraylogStream":{"description":"Use this data source to retrieve information about a DBaas logs output graylog stream.\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 stream = ovh.Dbaas.getLogsOutputGraylogStream({\n    serviceName: \"ldp-xx-xxxxx\",\n    title: \"my stream\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nstream = ovh.Dbaas.get_logs_output_graylog_stream(service_name=\"ldp-xx-xxxxx\",\n    title=\"my stream\")\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 stream = Ovh.Dbaas.GetLogsOutputGraylogStream.Invoke(new()\n    {\n        ServiceName = \"ldp-xx-xxxxx\",\n        Title = \"my stream\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/dbaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbaas.GetLogsOutputGraylogStream(ctx, \u0026dbaas.GetLogsOutputGraylogStreamArgs{\n\t\t\tServiceName: \"ldp-xx-xxxxx\",\n\t\t\tTitle:       \"my stream\",\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.Dbaas.DbaasFunctions;\nimport com.pulumi.ovh.Dbaas.inputs.GetLogsOutputGraylogStreamArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 stream = DbaasFunctions.getLogsOutputGraylogStream(GetLogsOutputGraylogStreamArgs.builder()\n            .serviceName(\"ldp-xx-xxxxx\")\n            .title(\"my stream\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  stream:\n    fn::invoke:\n      function: ovh:Dbaas:getLogsOutputGraylogStream\n      arguments:\n        serviceName: ldp-xx-xxxxx\n        title: my stream\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLogsOutputGraylogStream.\n","properties":{"serviceName":{"type":"string","description":"The service name. It's the ID of your Logs Data Platform instance.\n"},"title":{"type":"string","description":"Stream name\n"}},"type":"object","required":["serviceName","title"]},"outputs":{"description":"A collection of values returned by getLogsOutputGraylogStream.\n","properties":{"canAlert":{"type":"boolean"},"coldStorageCompression":{"description":"Cold storage compression method\n","type":"string"},"coldStorageContent":{"description":"ColdStorage content\n","type":"string"},"coldStorageEnabled":{"description":"Is Cold storage enabled?\n","type":"boolean"},"coldStorageNotifyEnabled":{"description":"Notify on new Cold storage archive\n","type":"boolean"},"coldStorageRetention":{"description":"Cold storage retention in year\n","type":"integer"},"coldStorageTarget":{"description":"ColdStorage destination\n","type":"string"},"createdAt":{"description":"Stream creation\n","type":"string"},"description":{"description":"Stream description\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"indexingEnabled":{"description":"Enable ES indexing\n","type":"boolean"},"indexingMaxSize":{"description":"Maximum indexing size (in GB)\n","type":"integer"},"indexingNotifyEnabled":{"description":"If set, notify when size is near 80, 90 or 100 % of the maximum configured setting\n","type":"boolean"},"isEditable":{"description":"Indicates if you are allowed to edit entry\n","type":"boolean"},"isShareable":{"description":"Indicates if you are allowed to share entry\n","type":"boolean"},"nbAlertCondition":{"description":"Number of alert condition\n","type":"integer"},"nbArchive":{"description":"Number of coldstored archives\n","type":"integer"},"parentStreamId":{"description":"Parent stream ID\n","type":"string"},"pauseIndexingOnMaxSize":{"description":"If set, pause indexing when maximum size is reach\n","type":"boolean"},"retentionId":{"description":"Retention ID\n","type":"string"},"serviceName":{"type":"string"},"streamId":{"description":"Stream ID\n","type":"string"},"title":{"type":"string"},"updatedAt":{"description":"Stream last update\n","type":"string"},"webSocketEnabled":{"description":"Enable Websocket\n","type":"boolean"},"writeToken":{"description":"Write token of the stream (empty if the caller is not the owner of the stream)\n","secret":true,"type":"string"}},"required":["canAlert","coldStorageCompression","coldStorageContent","coldStorageEnabled","coldStorageNotifyEnabled","coldStorageRetention","coldStorageTarget","createdAt","description","indexingEnabled","indexingMaxSize","indexingNotifyEnabled","isEditable","isShareable","nbAlertCondition","nbArchive","parentStreamId","pauseIndexingOnMaxSize","retentionId","serviceName","streamId","title","updatedAt","webSocketEnabled","writeToken","id"],"type":"object"}},"ovh:Dbaas/getLogsOutputOpenSearchIndex:getLogsOutputOpenSearchIndex":{"description":"Use this data source to retrieve information about a DBaas logs output opensearch index.\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 index = ovh.Dbaas.getLogsOutputOpenSearchIndex({\n    serviceName: \"ldp-xx-xxxxx\",\n    name: \"index-name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nindex = ovh.Dbaas.get_logs_output_open_search_index(service_name=\"ldp-xx-xxxxx\",\n    name=\"index-name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var index = Ovh.Dbaas.GetLogsOutputOpenSearchIndex.Invoke(new()\n    {\n        ServiceName = \"ldp-xx-xxxxx\",\n        Name = \"index-name\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/dbaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbaas.GetLogsOutputOpenSearchIndex(ctx, \u0026dbaas.GetLogsOutputOpenSearchIndexArgs{\n\t\t\tServiceName: \"ldp-xx-xxxxx\",\n\t\t\tName:        \"index-name\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Dbaas.DbaasFunctions;\nimport com.pulumi.ovh.Dbaas.inputs.GetLogsOutputOpenSearchIndexArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 index = DbaasFunctions.getLogsOutputOpenSearchIndex(GetLogsOutputOpenSearchIndexArgs.builder()\n            .serviceName(\"ldp-xx-xxxxx\")\n            .name(\"index-name\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  index:\n    fn::invoke:\n      function: ovh:Dbaas:getLogsOutputOpenSearchIndex\n      arguments:\n        serviceName: ldp-xx-xxxxx\n        name: index-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLogsOutputOpenSearchIndex.\n","properties":{"name":{"type":"string","description":"Index name\n"},"nbShard":{"type":"integer","description":"Number of shard\n"},"serviceName":{"type":"string","description":"The service name. It's the ID of your Logs Data Platform instance.\n"}},"type":"object","required":["name","serviceName"]},"outputs":{"description":"A collection of values returned by getLogsOutputOpenSearchIndex.\n","properties":{"alertNotifyEnabled":{"description":"If set, notify when size is near 80, 90 or 100 % of its maximum capacity\n","type":"boolean"},"createdAt":{"description":"Index creation\n","type":"string"},"currentSize":{"description":"Current index size (in bytes)\n","type":"integer"},"description":{"description":"Index description\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"indexId":{"description":"Index ID\n","type":"string"},"isEditable":{"description":"Indicates if you are allowed to edit entry\n","type":"boolean"},"maxSize":{"description":"Maximum index size (in bytes)\n","type":"integer"},"name":{"description":"Index name\n","type":"string"},"nbShard":{"description":"Number of shard\n","type":"integer"},"serviceName":{"type":"string"},"updatedAt":{"description":"Index last update\n","type":"string"}},"required":["alertNotifyEnabled","createdAt","currentSize","description","indexId","isEditable","maxSize","name","nbShard","serviceName","updatedAt","id"],"type":"object"}},"ovh:Dedicated/getCeph:getCeph":{"description":"Use this data source to retrieve information about a dedicated CEPH.\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 myCeph = ovh.Dedicated.getCeph({\n    serviceName: \"XXXXXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_ceph = ovh.Dedicated.get_ceph(service_name=\"XXXXXX\")\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 myCeph = Ovh.Dedicated.GetCeph.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetCeph(ctx, \u0026dedicated.GetCephArgs{\n\t\t\tServiceName: \"XXXXXX\",\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.GetCephArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myCeph = DedicatedFunctions.getCeph(GetCephArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myCeph:\n    fn::invoke:\n      function: ovh:Dedicated:getCeph\n      arguments:\n        serviceName: XXXXXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCeph.\n","properties":{"cephVersion":{"type":"string","description":"CEPH cluster version\n"},"serviceName":{"type":"string","description":"The service name of the dedicated CEPH cluster.\n"},"status":{"type":"string","description":"the status of the service\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getCeph.\n","properties":{"CephURN":{"description":"URN of the CEPH instance\n","type":"string"},"cephMons":{"description":"list of CEPH monitors IPs\n","items":{"type":"string"},"type":"array"},"cephVersion":{"description":"CEPH cluster version\n","type":"string"},"crushTunables":{"description":"CRUSH algorithm settings. Possible values\n* OPTIMAL\n* DEFAULT\n* LEGACY\n* BOBTAIL\n* ARGONAUT\n* FIREFLY\n* HAMMER\n* JEWEL\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"label":{"description":"CEPH cluster label\n","type":"string"},"region":{"description":"cluster region\n","type":"string"},"serviceName":{"type":"string"},"size":{"description":"Cluster size in TB\n","type":"number"},"state":{"description":"the state of the cluster\n","type":"string"},"status":{"description":"the status of the service\n","type":"string"}},"required":["cephMons","cephVersion","crushTunables","label","region","serviceName","size","state","status","CephURN","id"],"type":"object"}},"ovh:Dedicated/getCloud:getCloud":{"description":"Get information about a Managed VMware service. \n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst pcc = ovh.Dedicated.getCloud({\n    serviceName: \"\u003cDedicated Cloud service name\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\npcc = ovh.Dedicated.get_cloud(service_name=\"\u003cDedicated Cloud service name\u003e\")\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 pcc = Ovh.Dedicated.GetCloud.Invoke(new()\n    {\n        ServiceName = \"\u003cDedicated Cloud service name\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetCloud(ctx, \u0026dedicated.GetCloudArgs{\n\t\t\tServiceName: \"\u003cDedicated Cloud service name\u003e\",\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.GetCloudArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 pcc = DedicatedFunctions.getCloud(GetCloudArgs.builder()\n            .serviceName(\"\u003cDedicated Cloud service name\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  pcc:\n    fn::invoke:\n      function: ovh:Dedicated:getCloud\n      arguments:\n        serviceName: \u003cDedicated Cloud service name\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloud.\n","properties":{"serviceName":{"type":"string","description":"Domain of the service\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getCloud.\n","properties":{"advancedSecurity":{"description":"Advanced security state\n","type":"boolean"},"bandwidth":{"description":"The current bandwidth of your VMware on OVHcloud\n","type":"string"},"billingType":{"description":"Billing type of your VMware on OVHcloud\n","type":"string"},"canMigrateToVcd":{"description":"Can the PCC be migrated to VCD\n","type":"boolean"},"certifiedInterfaceUrl":{"description":"Url to the VMware on OVHcloud certified interface\n","type":"string"},"commercialRange":{"description":"The current version of your VMware on OVHcloud\n","type":"string"},"description":{"description":"Description of your VMware on OVHcloud\n","type":"string"},"generation":{"description":"Generation of your VMware on OVHcloud\n","type":"string"},"iam":{"$ref":"#/types/ovh:Dedicated/getCloudIam:getCloudIam","description":"IAM resource metadata\n"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"location":{"description":"Datacenter where your VMware on OVHcloud is physically located\n","type":"string"},"managementInterface":{"description":"The management interface name\n","type":"string"},"productReference":{"description":"The reference universe information for your VMware on OVHcloud\n","type":"string"},"serviceName":{"description":"Domain of the service\n","type":"string"},"servicePackName":{"description":"Name of the current service pack\n","type":"string"},"spla":{"description":"SPLA licensing state\n","type":"boolean"},"sslV3":{"description":"Enable SSL v3 support. Warning : this option is not recommended as it was recognized as a security breach. If this is enabled, we advise you to enable the filtered User access policy\n","type":"boolean"},"state":{"description":"Current state of your VMware on OVHcloud\n","type":"string"},"userAccessPolicy":{"description":"Access policy of your VMware on OVHcloud : opened to every IPs or filtered\n","type":"string"},"userLimitConcurrentSession":{"description":"The maximum amount of connected users allowed on the VMware on OVHcloud management interface\n","type":"number"},"userLogoutPolicy":{"description":"Which user will be disconnected first in case of quota of maximum connection is reached\n","type":"string"},"userSessionTimeout":{"description":"The timeout (in seconds) for the user sessions on the VMware on OVHcloud management interface. 0 value disable the timeout\n","type":"number"},"vScopeUrl":{"description":"Url to the VMware on OVHcloud vScope interface\n","type":"string"},"version":{"$ref":"#/types/ovh:Dedicated/getCloudVersion:getCloudVersion","description":"Version of the management interface\n"},"webInterfaceUrl":{"description":"Url to the VMware on OVHcloud web interface\n","type":"string"}},"required":["advancedSecurity","bandwidth","billingType","canMigrateToVcd","certifiedInterfaceUrl","commercialRange","description","generation","iam","location","managementInterface","productReference","serviceName","servicePackName","spla","sslV3","state","userAccessPolicy","userLimitConcurrentSession","userLogoutPolicy","userSessionTimeout","vScopeUrl","version","webInterfaceUrl","id"],"type":"object"}},"ovh:Dedicated/getNasHA:getNasHA":{"description":"Use this data source to retrieve information about a dedicated HA-NAS.\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 myNasHa = ovh.Dedicated.getNasHA({\n    serviceName: \"zpool-12345\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_nas_ha = ovh.Dedicated.get_nas_ha(service_name=\"zpool-12345\")\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 myNasHa = Ovh.Dedicated.GetNasHA.Invoke(new()\n    {\n        ServiceName = \"zpool-12345\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetNasHA(ctx, \u0026dedicated.GetNasHAArgs{\n\t\t\tServiceName: \"zpool-12345\",\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.GetNasHAArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myNasHa = DedicatedFunctions.getNasHA(GetNasHAArgs.builder()\n            .serviceName(\"zpool-12345\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myNasHa:\n    fn::invoke:\n      function: ovh:Dedicated:getNasHA\n      arguments:\n        serviceName: zpool-12345\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNasHA.\n","properties":{"serviceName":{"type":"string","description":"The service_name of your dedicated HA-NAS.\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getNasHA.\n","properties":{"NasHAURN":{"description":"the URN of the HA-NAS instance\n","type":"string"},"canCreatePartition":{"description":"True, if partition creation is allowed on this HA-NAS\n","type":"boolean"},"customName":{"description":"The name you give to the HA-NAS\n","type":"string"},"datacenter":{"description":"area of HA-NAS\n","type":"string"},"diskType":{"description":"the disk type of the HA-NAS. Possible values are: `hdd`, `ssd`, `nvme`\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"ip":{"description":"Access IP of HA-NAS\n","type":"string"},"monitored":{"description":"Send an email to customer if any issue is detected\n","type":"boolean"},"partitionsLists":{"description":"the list of the HA-NAS partitions name\n","items":{"type":"string"},"type":"array"},"serviceName":{"description":"The storage service name\n","type":"string"},"zpoolCapacity":{"description":"percentage of HA-NAS space used in %\n","type":"number"},"zpoolSize":{"description":"the size of the HA-NAS in GB\n","type":"number"}},"required":["canCreatePartition","customName","datacenter","diskType","ip","monitored","partitionsLists","serviceName","NasHAURN","zpoolCapacity","zpoolSize","id"],"type":"object"}},"ovh:Dedicated/getNasHAPartition:getNasHAPartition":{"description":"Use this data source to retrieve information about a dedicated HA-NAS partition.\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 myNasHaPartition = ovh.Dedicated.getNasHAPartition({\n    serviceName: \"zpool-12345\",\n    name: \"my-zpool-partition\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_nas_ha_partition = ovh.Dedicated.get_nas_ha_partition(service_name=\"zpool-12345\",\n    name=\"my-zpool-partition\")\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 myNasHaPartition = Ovh.Dedicated.GetNasHAPartition.Invoke(new()\n    {\n        ServiceName = \"zpool-12345\",\n        Name = \"my-zpool-partition\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetNasHAPartition(ctx, \u0026dedicated.GetNasHAPartitionArgs{\n\t\t\tServiceName: \"zpool-12345\",\n\t\t\tName:        \"my-zpool-partition\",\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.GetNasHAPartitionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myNasHaPartition = DedicatedFunctions.getNasHAPartition(GetNasHAPartitionArgs.builder()\n            .serviceName(\"zpool-12345\")\n            .name(\"my-zpool-partition\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myNasHaPartition:\n    fn::invoke:\n      function: ovh:Dedicated:getNasHAPartition\n      arguments:\n        serviceName: zpool-12345\n        name: my-zpool-partition\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNasHAPartition.\n","properties":{"name":{"type":"string","description":"The name of your dedicated HA-NAS partition.\n"},"serviceName":{"type":"string","description":"The service_name of your dedicated HA-NAS.\n"}},"type":"object","required":["name","serviceName"]},"outputs":{"description":"A collection of values returned by getNasHAPartition.\n","properties":{"capacity":{"description":"Percentage of partition space used in %\n","type":"integer"},"description":{"description":"A brief description of the partition\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"name":{"type":"string"},"protocol":{"description":"one of \"NFS\", \"CIFS\" or \"NFS_CIFS\"\n","type":"string"},"serviceName":{"type":"string"},"size":{"description":"size of the partition in GB\n","type":"integer"},"usedBySnapshots":{"description":"Percentage of partition space used by snapshots in %\n","type":"integer"}},"required":["capacity","description","name","protocol","serviceName","size","usedBySnapshots","id"],"type":"object"}},"ovh:Dedicated/getServerBoots:getServerBoots":{"description":"Use this data source to get the list of compatible netboots for 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 \"@ovhcloud/pulumi-ovh\";\n\nconst netboots = ovh.Dedicated.getServerBoots({\n    serviceName: \"myserver\",\n    bootType: \"harddisk\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nnetboots = ovh.Dedicated.get_server_boots(service_name=\"myserver\",\n    boot_type=\"harddisk\")\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 netboots = Ovh.Dedicated.GetServerBoots.Invoke(new()\n    {\n        ServiceName = \"myserver\",\n        BootType = \"harddisk\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetServerBoots(ctx, \u0026dedicated.GetServerBootsArgs{\n\t\t\tServiceName: \"myserver\",\n\t\t\tBootType:    pulumi.StringRef(\"harddisk\"),\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.GetServerBootsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 netboots = DedicatedFunctions.getServerBoots(GetServerBootsArgs.builder()\n            .serviceName(\"myserver\")\n            .bootType(\"harddisk\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  netboots:\n    fn::invoke:\n      function: ovh:Dedicated:getServerBoots\n      arguments:\n        serviceName: myserver\n        bootType: harddisk\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServerBoots.\n","properties":{"bootType":{"type":"string","description":"Filter the value of bootType property (harddisk, rescue, internal, network)\n"},"kernel":{"type":"string","description":"Filter the value of kernel property (iPXE script name)\n"},"serviceName":{"type":"string","description":"The internal name of your dedicated server.\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getServerBoots.\n","properties":{"bootType":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"kernel":{"type":"string"},"results":{"description":"The list of dedicated server netboots.\n","items":{"type":"integer"},"type":"array"},"serviceName":{"type":"string"}},"required":["results","serviceName","id"],"type":"object"}},"ovh:Dedicated/getServerSpecificationsHardware:getServerSpecificationsHardware":{"description":"Use this data source to get the hardward information about a dedicated server associated with your OVHcloud Account.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst spec = ovh.Dedicated.getServerSpecificationsHardware({\n    serviceName: \"myserver\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nspec = ovh.Dedicated.get_server_specifications_hardware(service_name=\"myserver\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var spec = Ovh.Dedicated.GetServerSpecificationsHardware.Invoke(new()\n    {\n        ServiceName = \"myserver\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/dedicated\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dedicated.GetServerSpecificationsHardware(ctx, \u0026dedicated.GetServerSpecificationsHardwareArgs{\n\t\t\tServiceName: \"myserver\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Dedicated.DedicatedFunctions;\nimport com.pulumi.ovh.Dedicated.inputs.GetServerSpecificationsHardwareArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var spec = DedicatedFunctions.getServerSpecificationsHardware(GetServerSpecificationsHardwareArgs.builder()\n            .serviceName(\"myserver\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  spec:\n    fn::invoke:\n      function: ovh:Dedicated:getServerSpecificationsHardware\n      arguments:\n        serviceName: myserver\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServerSpecificationsHardware.\n","properties":{"serviceName":{"type":"string","description":"The internal name of your dedicated server.\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getServerSpecificationsHardware.\n","properties":{"bootMode":{"description":"Server boot mode\n","type":"string"},"coresPerProcessor":{"description":"Number of cores per processor\n","type":"number"},"defaultHardwareRaidSize":{"$ref":"#/types/ovh:Dedicated/getServerSpecificationsHardwareDefaultHardwareRaidSize:getServerSpecificationsHardwareDefaultHardwareRaidSize","description":"Default hardware raid size for this disk group\n"},"defaultHardwareRaidType":{"description":"Default hardware raid type for this disk group\n","type":"string"},"description":{"description":"Expansion card description\n","type":"string"},"diskGroups":{"description":"Details about the groups of disks in the server\n","items":{"$ref":"#/types/ovh:Dedicated/getServerSpecificationsHardwareDiskGroup:getServerSpecificationsHardwareDiskGroup"},"type":"array"},"expansionCards":{"description":"Details about the server's expansion cards\n","items":{"$ref":"#/types/ovh:Dedicated/getServerSpecificationsHardwareExpansionCard:getServerSpecificationsHardwareExpansionCard"},"type":"array"},"formFactor":{"description":"Server form factor\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"memorySize":{"$ref":"#/types/ovh:Dedicated/getServerSpecificationsHardwareMemorySize:getServerSpecificationsHardwareMemorySize","description":"RAM capacity\n"},"motherboard":{"description":"Server motherboard\n","type":"string"},"numberOfProcessors":{"description":"Number of processors in this dedicated server\n","type":"number"},"processorArchitecture":{"description":"Processor architecture bit\n","type":"string"},"processorName":{"description":"Processor name\n","type":"string"},"serviceName":{"type":"string"},"threadsPerProcessor":{"description":"Number of threads per processor\n","type":"number"},"usbKeys":{"description":"Capacity of the USB keys installed on your server, if any\n","items":{"$ref":"#/types/ovh:Dedicated/getServerSpecificationsHardwareUsbKey:getServerSpecificationsHardwareUsbKey"},"type":"array"}},"required":["bootMode","coresPerProcessor","defaultHardwareRaidSize","defaultHardwareRaidType","description","diskGroups","expansionCards","formFactor","memorySize","motherboard","numberOfProcessors","processorArchitecture","processorName","serviceName","threadsPerProcessor","usbKeys","id"],"type":"object"}},"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 \"@ovhcloud/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/v2/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":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"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"}},"required":["bandwidth","connectionVal","ola","routing","serviceName","switching","traffic","vmac","vrack","id"],"type":"object"}},"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 \"@ovhcloud/pulumi-ovh\";\n\nconst rootZone = ovh.Domain.getZone({\n    name: \"mysite.ovh\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nroot_zone = 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/v2/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":{"description":"A collection of arguments for invoking getZone.\n","properties":{"name":{"type":"string","description":"The name of the domain zone.\n"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getZone.\n","properties":{"ZoneURN":{"description":"URN of the DNS Zone to be used inside an IAM policy\n","type":"string"},"dnssecSupported":{"description":"Is DNSSEC supported by this zone\n","type":"boolean"},"hasDnsAnycast":{"description":"hasDnsAnycast flag of the DNS zone\n","type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"lastUpdate":{"description":"Last update date of the DNS zone\n","type":"string"},"name":{"type":"string"},"nameServers":{"description":"Name servers that host the DNS zone\n","items":{"type":"string"},"type":"array"}},"required":["dnssecSupported","hasDnsAnycast","lastUpdate","name","nameServers","ZoneURN","id"],"type":"object"}},"ovh:Domain/getZoneDNSSec:getZoneDNSSec":{"description":"Use this data source to retrieve information about a domain zone DNSSEC status.\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 dnssec = ovh.Domain.getZoneDNSSec({\n    zoneName: \"mysite.ovh\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ndnssec = ovh.Domain.get_zone_dns_sec(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 dnssec = Ovh.Domain.GetZoneDNSSec.Invoke(new()\n    {\n        ZoneName = \"mysite.ovh\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetZoneDNSSec(ctx, \u0026domain.GetZoneDNSSecArgs{\n\t\t\tZoneName: \"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.GetZoneDNSSecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 dnssec = DomainFunctions.getZoneDNSSec(GetZoneDNSSecArgs.builder()\n            .zoneName(\"mysite.ovh\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  dnssec:\n    fn::invoke:\n      function: ovh:Domain:getZoneDNSSec\n      arguments:\n        zoneName: mysite.ovh\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getZoneDNSSec.\n","properties":{"zoneName":{"type":"string","description":"The name of the domain zone\n"}},"type":"object","required":["zoneName"]},"outputs":{"description":"A collection of values returned by getZoneDNSSec.\n","properties":{"id":{"type":"string"},"status":{"description":"DNSSEC status (`disableInProgress`, `disabled`, `enableInProgress` or `enabled`)\n","type":"string"},"zoneName":{"type":"string"}},"required":["id","status","zoneName"],"type":"object"}},"ovh:Hosting/getPrivateDatabase:getPrivateDatabase":{"description":"Use this data source to retrieve information about an hosting database.\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 database = ovh.Hosting.getPrivateDatabase({\n    serviceName: \"XXXXXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ndatabase = ovh.Hosting.get_private_database(service_name=\"XXXXXX\")\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 database = Ovh.Hosting.GetPrivateDatabase.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/hosting\"\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 := hosting.GetPrivateDatabase(ctx, \u0026hosting.GetPrivateDatabaseArgs{\n\t\t\tServiceName: \"XXXXXX\",\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.Hosting.HostingFunctions;\nimport com.pulumi.ovh.Hosting.inputs.GetPrivateDatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 database = HostingFunctions.getPrivateDatabase(GetPrivateDatabaseArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  database:\n    fn::invoke:\n      function: ovh:Hosting:getPrivateDatabase\n      arguments:\n        serviceName: XXXXXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPrivateDatabase.\n","properties":{"serviceName":{"type":"string","description":"The internal name of your private database\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getPrivateDatabase.\n","properties":{"cpu":{"description":"Number of CPU on your private database\n","type":"integer"},"datacenter":{"description":"Datacenter where this private database is located\n","type":"string"},"displayName":{"description":"Name displayed in customer panel for your private database\n","type":"string"},"hostname":{"description":"Private database hostname\n","type":"string"},"hostnameFtp":{"description":"Private database FTP hostname\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"infrastructure":{"description":"Infrastructure where service was stored\n","type":"string"},"offer":{"description":"Type of the private database offer\n","type":"string"},"port":{"description":"Private database service port\n","type":"integer"},"portFtp":{"description":"Private database FTP port\n","type":"integer"},"quotaSize":{"description":"Space allowed (in MB) on your private database\n","type":"integer"},"quotaUsed":{"description":"Sapce used (in MB) on your private database\n","type":"integer"},"ram":{"description":"Amount of ram (in MB) on your private database\n","type":"integer"},"server":{"description":"Private database server name\n","type":"string"},"serviceName":{"type":"string"},"state":{"description":"Private database state\n","type":"string"},"type":{"type":"string"},"urn":{"description":"URN of the private database\n","type":"string"},"version":{"description":"Private database available versions\n","type":"string"},"versionLabel":{"description":"Private database version label\n","type":"string"},"versionNumber":{"description":"Private database version number\n","type":"number"}},"required":["cpu","datacenter","displayName","hostname","hostnameFtp","infrastructure","offer","port","portFtp","quotaSize","quotaUsed","ram","server","serviceName","state","type","urn","version","versionLabel","versionNumber","id"],"type":"object"}},"ovh:Hosting/getPrivateDatabaseAllowlist:getPrivateDatabaseAllowlist":{"description":"Use this data source to retrieve information about an hosting privatedatabase whitelist.\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 whitelist = ovh.Hosting.getPrivateDatabaseAllowlist({\n    serviceName: \"XXXXXX\",\n    ip: \"XXXXXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nwhitelist = ovh.Hosting.get_private_database_allowlist(service_name=\"XXXXXX\",\n    ip=\"XXXXXX\")\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 whitelist = Ovh.Hosting.GetPrivateDatabaseAllowlist.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        Ip = \"XXXXXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/hosting\"\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 := hosting.GetPrivateDatabaseAllowlist(ctx, \u0026hosting.GetPrivateDatabaseAllowlistArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tIp:          pulumi.StringRef(\"XXXXXX\"),\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.Hosting.HostingFunctions;\nimport com.pulumi.ovh.Hosting.inputs.GetPrivateDatabaseAllowlistArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 whitelist = HostingFunctions.getPrivateDatabaseAllowlist(GetPrivateDatabaseAllowlistArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .ip(\"XXXXXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  whitelist:\n    fn::invoke:\n      function: ovh:Hosting:getPrivateDatabaseAllowlist\n      arguments:\n        serviceName: XXXXXX\n        ip: XXXXXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPrivateDatabaseAllowlist.\n","properties":{"ip":{"type":"string","description":"The whitelisted IP in your instance\n"},"serviceName":{"type":"string","description":"The internal name of your private database\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getPrivateDatabaseAllowlist.\n","properties":{"creationDate":{"description":"Creation date of the database\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"ip":{"type":"string"},"lastUpdate":{"description":"The last update date of this whitelist\n","type":"string"},"name":{"description":"Custom name for your Whitelisted IP\n","type":"string"},"service":{"description":"Authorize this IP to access service port\n","type":"boolean"},"serviceName":{"type":"string"},"sftp":{"description":"Authorize this IP to access SFTP port\n","type":"boolean"},"status":{"description":"Whitelist status\n","type":"string"}},"required":["creationDate","lastUpdate","name","service","serviceName","sftp","status","id"],"type":"object"}},"ovh:Hosting/getPrivateDatabaseDb:getPrivateDatabaseDb":{"description":"Use this data source to retrieve information about an hosting privatedatabase.\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 myDatabase = ovh.Hosting.getPrivateDatabaseDb({\n    serviceName: \"XXXXXX\",\n    databaseName: \"XXXXXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_database = ovh.Hosting.get_private_database_db(service_name=\"XXXXXX\",\n    database_name=\"XXXXXX\")\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 myDatabase = Ovh.Hosting.GetPrivateDatabaseDb.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        DatabaseName = \"XXXXXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/hosting\"\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 := hosting.GetPrivateDatabaseDb(ctx, \u0026hosting.GetPrivateDatabaseDbArgs{\n\t\t\tServiceName:  \"XXXXXX\",\n\t\t\tDatabaseName: \"XXXXXX\",\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.Hosting.HostingFunctions;\nimport com.pulumi.ovh.Hosting.inputs.GetPrivateDatabaseDbArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myDatabase = HostingFunctions.getPrivateDatabaseDb(GetPrivateDatabaseDbArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .databaseName(\"XXXXXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myDatabase:\n    fn::invoke:\n      function: ovh:Hosting:getPrivateDatabaseDb\n      arguments:\n        serviceName: XXXXXX\n        databaseName: XXXXXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPrivateDatabaseDb.\n","properties":{"databaseName":{"type":"string","description":"Database name\n"},"serviceName":{"type":"string","description":"The internal name of your private database\n"}},"type":"object","required":["databaseName","serviceName"]},"outputs":{"description":"A collection of values returned by getPrivateDatabaseDb.\n","properties":{"backupTime":{"description":"Time of the next backup (every day)\n","type":"string"},"creationDate":{"description":"Creation date of the database\n","type":"string"},"databaseName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"quotaUsed":{"description":"Space used by the database (in MB)\n","type":"integer"},"serviceName":{"type":"string"},"users":{"description":"Users granted to this database\n","items":{"$ref":"#/types/ovh:Hosting/getPrivateDatabaseDbUser:getPrivateDatabaseDbUser"},"type":"array"}},"required":["backupTime","creationDate","databaseName","quotaUsed","serviceName","users","id"],"type":"object"}},"ovh:Hosting/getPrivateDatabaseUser:getPrivateDatabaseUser":{"description":"Use this data source to retrieve information about an hosting privatedatabase user.\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 user = ovh.Hosting.getPrivateDatabaseUser({\n    serviceName: \"XXXXXX\",\n    userName: \"XXXXXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nuser = ovh.Hosting.get_private_database_user(service_name=\"XXXXXX\",\n    user_name=\"XXXXXX\")\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 user = Ovh.Hosting.GetPrivateDatabaseUser.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        UserName = \"XXXXXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/hosting\"\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 := hosting.GetPrivateDatabaseUser(ctx, \u0026hosting.GetPrivateDatabaseUserArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tUserName:    \"XXXXXX\",\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.Hosting.HostingFunctions;\nimport com.pulumi.ovh.Hosting.inputs.GetPrivateDatabaseUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 user = HostingFunctions.getPrivateDatabaseUser(GetPrivateDatabaseUserArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .userName(\"XXXXXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  user:\n    fn::invoke:\n      function: ovh:Hosting:getPrivateDatabaseUser\n      arguments:\n        serviceName: XXXXXX\n        userName: XXXXXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPrivateDatabaseUser.\n","properties":{"serviceName":{"type":"string","description":"The internal name of your private database\n"},"userName":{"type":"string","description":"User name\n"}},"type":"object","required":["serviceName","userName"]},"outputs":{"description":"A collection of values returned by getPrivateDatabaseUser.\n","properties":{"creationDate":{"description":"Creation date of the database\n","type":"string"},"databases":{"description":"Users granted to this database\n","items":{"$ref":"#/types/ovh:Hosting/getPrivateDatabaseUserDatabase:getPrivateDatabaseUserDatabase"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"serviceName":{"type":"string"},"userName":{"type":"string"}},"required":["creationDate","databases","serviceName","userName","id"],"type":"object"}},"ovh:Hosting/getPrivateDatabaseUserGrant:getPrivateDatabaseUserGrant":{"description":"Use this data source to retrieve information about an hosting privatedatabase user grant.\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 userGrant = ovh.Hosting.getPrivateDatabaseUserGrant({\n    serviceName: \"XXXXXX\",\n    databaseName: \"XXXXXX\",\n    userName: \"XXXXXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nuser_grant = ovh.Hosting.get_private_database_user_grant(service_name=\"XXXXXX\",\n    database_name=\"XXXXXX\",\n    user_name=\"XXXXXX\")\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 userGrant = Ovh.Hosting.GetPrivateDatabaseUserGrant.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        DatabaseName = \"XXXXXX\",\n        UserName = \"XXXXXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/hosting\"\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 := hosting.GetPrivateDatabaseUserGrant(ctx, \u0026hosting.GetPrivateDatabaseUserGrantArgs{\n\t\t\tServiceName:  \"XXXXXX\",\n\t\t\tDatabaseName: \"XXXXXX\",\n\t\t\tUserName:     \"XXXXXX\",\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.Hosting.HostingFunctions;\nimport com.pulumi.ovh.Hosting.inputs.GetPrivateDatabaseUserGrantArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 userGrant = HostingFunctions.getPrivateDatabaseUserGrant(GetPrivateDatabaseUserGrantArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .databaseName(\"XXXXXX\")\n            .userName(\"XXXXXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  userGrant:\n    fn::invoke:\n      function: ovh:Hosting:getPrivateDatabaseUserGrant\n      arguments:\n        serviceName: XXXXXX\n        databaseName: XXXXXX\n        userName: XXXXXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPrivateDatabaseUserGrant.\n","properties":{"databaseName":{"type":"string","description":"The database name on which grant the user\n"},"serviceName":{"type":"string","description":"The internal name of your private database\n"},"userName":{"type":"string","description":"The user name\n"}},"type":"object","required":["databaseName","serviceName","userName"]},"outputs":{"description":"A collection of values returned by getPrivateDatabaseUserGrant.\n","properties":{"creationDate":{"description":"Creation date of the database\n","type":"string"},"databaseName":{"type":"string"},"grant":{"description":"Grant name\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"serviceName":{"type":"string"},"userName":{"type":"string"}},"required":["creationDate","databaseName","grant","serviceName","userName","id"],"type":"object"}},"ovh:Iam/getPermissionsGroup:getPermissionsGroup":{"description":"Use this data source to retrieve an IAM permissions group.\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 website = ovh.Iam.getPermissionsGroup({\n    urn: \"urn:v1:eu:permissionsGroup:ovh:controlPanelAccess\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nwebsite = ovh.Iam.get_permissions_group(urn=\"urn:v1:eu:permissionsGroup:ovh:controlPanelAccess\")\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 website = Ovh.Iam.GetPermissionsGroup.Invoke(new()\n    {\n        Urn = \"urn:v1:eu:permissionsGroup:ovh:controlPanelAccess\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iam\"\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 := iam.GetPermissionsGroup(ctx, \u0026iam.GetPermissionsGroupArgs{\n\t\t\tUrn: \"urn:v1:eu:permissionsGroup:ovh:controlPanelAccess\",\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.Iam.IamFunctions;\nimport com.pulumi.ovh.Iam.inputs.GetPermissionsGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 website = IamFunctions.getPermissionsGroup(GetPermissionsGroupArgs.builder()\n            .urn(\"urn:v1:eu:permissionsGroup:ovh:controlPanelAccess\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  website:\n    fn::invoke:\n      function: ovh:Iam:getPermissionsGroup\n      arguments:\n        urn: urn:v1:eu:permissionsGroup:ovh:controlPanelAccess\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPermissionsGroup.\n","properties":{"allows":{"type":"array","items":{"type":"string"},"description":"Set of actions allowed by the permissions group.\n"},"denies":{"type":"array","items":{"type":"string"},"description":"Set of actions that will always be denied even if it is explicitly allowed by a policy.\n"},"description":{"type":"string","description":"Group description.\n"},"excepts":{"type":"array","items":{"type":"string"},"description":"Set of actions that will be subtracted from the `allow` list.\n"},"updatedAt":{"type":"string","description":"Date of the last update of this group.\n"},"urn":{"type":"string","description":"URN of the permissions group.\n"}},"type":"object","required":["urn"]},"outputs":{"description":"A collection of values returned by getPermissionsGroup.\n","properties":{"allows":{"description":"Set of actions allowed by the permissions group.\n","items":{"type":"string"},"type":"array"},"createdAt":{"description":"Creation date of this group.\n","type":"string"},"denies":{"description":"Set of actions that will always be denied even if it is explicitly allowed by a policy.\n","items":{"type":"string"},"type":"array"},"description":{"description":"Group description.\n","type":"string"},"excepts":{"description":"Set of actions that will be subtracted from the `allow` list.\n","items":{"type":"string"},"type":"array"},"id":{"type":"string"},"name":{"description":"Name of the permissions group.\n","type":"string"},"owner":{"description":"Owner of the permissions group.\n","type":"string"},"updatedAt":{"description":"Date of the last update of this group.\n","type":"string"},"urn":{"type":"string"}},"required":["createdAt","id","name","owner","updatedAt","urn"],"type":"object"}},"ovh:Iam/getPermissionsGroups:getPermissionsGroups":{"description":"Use this data source to retrieve all IAM permissions groups.\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 groups = ovh.Iam.getPermissionsGroups({});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ngroups = ovh.Iam.get_permissions_groups()\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 groups = Ovh.Iam.GetPermissionsGroups.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iam\"\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 := iam.GetPermissionsGroups(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Iam.IamFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 groups = IamFunctions.getPermissionsGroups(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n    }\n}\n```\n```yaml\nvariables:\n  groups:\n    fn::invoke:\n      function: ovh:Iam:getPermissionsGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getPermissionsGroups.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"urns":{"description":"List of available permissions groups URNs.\n","items":{"type":"string"},"type":"array"}},"required":["urns","id"],"type":"object"}},"ovh:Iam/getPolicies:getPolicies":{"description":"Use this data source to list the existing IAM policies of an account.\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 myPolicies = ovh.Iam.getPolicies({});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_policies = ovh.Iam.get_policies()\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 myPolicies = Ovh.Iam.GetPolicies.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iam\"\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 := iam.GetPolicies(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Iam.IamFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myPolicies = IamFunctions.getPolicies(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n    }\n}\n```\n```yaml\nvariables:\n  myPolicies:\n    fn::invoke:\n      function: ovh:Iam:getPolicies\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getPolicies.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"policies":{"description":"List of the policies IDs.\n","items":{"type":"string"},"type":"array"}},"required":["policies","id"],"type":"object"}},"ovh:Iam/getPolicy:getPolicy":{"description":"Use this data source to retrieve am IAM policy.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst myPolicy = ovh.Iam.getPolicy({\n    id: \"my_policy_id\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_policy = ovh.Iam.get_policy(id=\"my_policy_id\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myPolicy = Ovh.Iam.GetPolicy.Invoke(new()\n    {\n        Id = \"my_policy_id\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iam\"\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 := iam.GetPolicy(ctx, \u0026iam.GetPolicyArgs{\n\t\t\tId: \"my_policy_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Iam.IamFunctions;\nimport com.pulumi.ovh.Iam.inputs.GetPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myPolicy = IamFunctions.getPolicy(GetPolicyArgs.builder()\n            .id(\"my_policy_id\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myPolicy:\n    fn::invoke:\n      function: ovh:Iam:getPolicy\n      arguments:\n        id: my_policy_id\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPolicy.\n","properties":{"allows":{"type":"array","items":{"type":"string"},"description":"Set of actions allowed by the policy.\n"},"denies":{"type":"array","items":{"type":"string"},"description":"Set of actions that will be denied no matter what policy exists.\n"},"description":{"type":"string","description":"Group description.\n"},"excepts":{"type":"array","items":{"type":"string"},"description":"Set of actions that will be subtracted from the `allow` list.\n"},"id":{"type":"string","description":"UUID of the policy.\n"},"permissionsGroups":{"type":"array","items":{"type":"string"},"description":"Set of permissions groups that apply to the policy.\n"}},"type":"object","required":["id"]},"outputs":{"description":"A collection of values returned by getPolicy.\n","properties":{"allows":{"description":"Set of actions allowed by the policy.\n","items":{"type":"string"},"type":"array"},"conditions":{"description":"Conditions restricting the policy.\n","items":{"$ref":"#/types/ovh:Iam/getPolicyCondition:getPolicyCondition"},"type":"array"},"createdAt":{"description":"Creation date of this group.\n","type":"string"},"denies":{"description":"Set of actions that will be denied no matter what policy exists.\n","items":{"type":"string"},"type":"array"},"description":{"description":"Group description.\n","type":"string"},"excepts":{"description":"Set of actions that will be subtracted from the `allow` list.\n","items":{"type":"string"},"type":"array"},"expiredAt":{"description":"Expiration date of the policy.\n","type":"string"},"id":{"type":"string"},"identities":{"description":"Set of identities affected by the policy.\n","items":{"type":"string"},"type":"array"},"name":{"description":"Name of the policy.\n","type":"string"},"owner":{"description":"Owner of the policy.\n","type":"string"},"permissionsGroups":{"description":"Set of permissions groups that apply to the policy.\n","items":{"type":"string"},"type":"array"},"readOnly":{"description":"Indicates that the policy is a default one.\n","type":"boolean"},"resources":{"description":"Set of resources affected by the policy.\n","items":{"type":"string"},"type":"array"},"updatedAt":{"description":"Date of the last update of this group.\n","type":"string"}},"required":["conditions","createdAt","expiredAt","id","identities","name","owner","readOnly","resources","updatedAt"],"type":"object"}},"ovh:Iam/getReferenceActions:getReferenceActions":{"description":"Use this data source to list the IAM action associated with a resource type.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nvariables:\n  vpsActions:\n    fn::invoke:\n      function: ovh:Iam:getReferenceActions\n      arguments:\n        resourceType: vps\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getReferenceActions.\n","properties":{"type":{"type":"string","description":"Kind of resource we want the actions for\n"}},"type":"object","required":["type"]},"outputs":{"description":"A collection of values returned by getReferenceActions.\n","properties":{"actions":{"description":"List of actions\n","items":{"$ref":"#/types/ovh:Iam/getReferenceActionsAction:getReferenceActionsAction"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"type":{"type":"string"}},"required":["actions","type","id"],"type":"object"}},"ovh:Iam/getReferenceResourceType:getReferenceResourceType":{"description":"Use this data source to list all the IAM resource types.\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 types = ovh.Iam.getReferenceResourceType({});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ntypes = ovh.Iam.get_reference_resource_type()\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 types = Ovh.Iam.GetReferenceResourceType.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iam\"\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 := iam.GetReferenceResourceType(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Iam.IamFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 types = IamFunctions.getReferenceResourceType(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n    }\n}\n```\n```yaml\nvariables:\n  types:\n    fn::invoke:\n      function: ovh:Iam:getReferenceResourceType\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getReferenceResourceType.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"types":{"description":"List of resource types\n","items":{"type":"string"},"type":"array"}},"required":["types","id"],"type":"object"}},"ovh:Iam/getResourceGroup:getResourceGroup":{"description":"Use this data source get details about a resource group.\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 myResourceGroup = ovh.Iam.getResourceGroup({\n    id: \"my_resource_group_id\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_resource_group = ovh.Iam.get_resource_group(id=\"my_resource_group_id\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myResourceGroup = Ovh.Iam.GetResourceGroup.Invoke(new()\n    {\n        Id = \"my_resource_group_id\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iam\"\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 := iam.GetResourceGroup(ctx, \u0026iam.GetResourceGroupArgs{\n\t\t\tId: \"my_resource_group_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Iam.IamFunctions;\nimport com.pulumi.ovh.Iam.inputs.GetResourceGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myResourceGroup = IamFunctions.getResourceGroup(GetResourceGroupArgs.builder()\n            .id(\"my_resource_group_id\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myResourceGroup:\n    fn::invoke:\n      function: ovh:Iam:getResourceGroup\n      arguments:\n        id: my_resource_group_id\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getResourceGroup.\n","properties":{"id":{"type":"string","description":"Id of the resource group\n"}},"type":"object","required":["id"]},"outputs":{"description":"A collection of values returned by getResourceGroup.\n","properties":{"GroupURN":{"description":"URN of the resource group, used when writing policies\n","type":"string"},"createdAt":{"description":"Date of the creation of the resource group\n","type":"string"},"id":{"type":"string"},"name":{"description":"Name of the resource group\n","type":"string"},"owner":{"description":"Name of the account owning the resource group\n","type":"string"},"readOnly":{"description":"Marks that the resource group is not editable. Usually means that this is a default resource group created by OVHcloud\n","type":"boolean"},"resources":{"description":"Set of the URNs of the resources contained in the resource group\n","items":{"type":"string"},"type":"array"},"updatedAt":{"description":"Date of the last modification of the resource group\n","type":"string"}},"required":["createdAt","id","name","owner","readOnly","resources","updatedAt","GroupURN"],"type":"object"}},"ovh:Iam/getResourceGroups:getResourceGroups":{"description":"Use this data source to list the existing IAM policies of an account.\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 myGroups = ovh.Iam.getResourceGroups({});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_groups = ovh.Iam.get_resource_groups()\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 myGroups = Ovh.Iam.GetResourceGroups.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iam\"\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 := iam.GetResourceGroups(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Iam.IamFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myGroups = IamFunctions.getResourceGroups(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n    }\n}\n```\n```yaml\nvariables:\n  myGroups:\n    fn::invoke:\n      function: ovh:Iam:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getResourceGroups.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"resourceGroups":{"description":"List of the resource groups IDs.\n","items":{"type":"string"},"type":"array"}},"required":["resourceGroups","id"],"type":"object"}},"ovh:Ip/getFirewall:getFirewall":{"description":"Use this data source to retrieve information about an IP firewall.\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 myFirewall = ovh.Ip.getFirewall({\n    ip: \"XXXXXX\",\n    ipOnFirewall: \"XXXXXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_firewall = ovh.Ip.get_firewall(ip=\"XXXXXX\",\n    ip_on_firewall=\"XXXXXX\")\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 myFirewall = Ovh.Ip.GetFirewall.Invoke(new()\n    {\n        Ip = \"XXXXXX\",\n        IpOnFirewall = \"XXXXXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/ip\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ip.GetFirewall(ctx, \u0026ip.GetFirewallArgs{\n\t\t\tIp:           \"XXXXXX\",\n\t\t\tIpOnFirewall: \"XXXXXX\",\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.Ip.IpFunctions;\nimport com.pulumi.ovh.Ip.inputs.GetFirewallArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myFirewall = IpFunctions.getFirewall(GetFirewallArgs.builder()\n            .ip(\"XXXXXX\")\n            .ipOnFirewall(\"XXXXXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myFirewall:\n    fn::invoke:\n      function: ovh:Ip:getFirewall\n      arguments:\n        ip: XXXXXX\n        ipOnFirewall: XXXXXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFirewall.\n","properties":{"ip":{"type":"string","description":"The IP or the CIDR\n"},"ipOnFirewall":{"type":"string","description":"IPv4 address\n"}},"type":"object","required":["ip","ipOnFirewall"]},"outputs":{"description":"A collection of values returned by getFirewall.\n","properties":{"enabled":{"type":"boolean"},"id":{"type":"string"},"ip":{"description":"The IP or the CIDR\n","type":"string"},"ipOnFirewall":{"description":"IPv4 address\n* `enabled ` - Whether firewall is enabled\n","type":"string"},"state":{"description":"Current state of your ip on firewall\n","type":"string"}},"required":["enabled","id","ip","ipOnFirewall","state"],"type":"object"}},"ovh:Ip/getFirewallRule:getFirewallRule":{"description":"Use this data source to retrieve information about a rule on an IP firewall.\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 myFirewallRule = ovh.Ip.getFirewallRule({\n    ip: \"XXXXXX\",\n    ipOnFirewall: \"XXXXXX\",\n    sequence: 0,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_firewall_rule = ovh.Ip.get_firewall_rule(ip=\"XXXXXX\",\n    ip_on_firewall=\"XXXXXX\",\n    sequence=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 myFirewallRule = Ovh.Ip.GetFirewallRule.Invoke(new()\n    {\n        Ip = \"XXXXXX\",\n        IpOnFirewall = \"XXXXXX\",\n        Sequence = 0,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/ip\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ip.GetFirewallRule(ctx, \u0026ip.GetFirewallRuleArgs{\n\t\t\tIp:           \"XXXXXX\",\n\t\t\tIpOnFirewall: \"XXXXXX\",\n\t\t\tSequence:     0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Ip.IpFunctions;\nimport com.pulumi.ovh.Ip.inputs.GetFirewallRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myFirewallRule = IpFunctions.getFirewallRule(GetFirewallRuleArgs.builder()\n            .ip(\"XXXXXX\")\n            .ipOnFirewall(\"XXXXXX\")\n            .sequence(0)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myFirewallRule:\n    fn::invoke:\n      function: ovh:Ip:getFirewallRule\n      arguments:\n        ip: XXXXXX\n        ipOnFirewall: XXXXXX\n        sequence: 0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFirewallRule.\n","properties":{"ip":{"type":"string","description":"The IP or the CIDR\n"},"ipOnFirewall":{"type":"string","description":"IPv4 address\n"},"sequence":{"type":"number","description":"Rule position in the rules array\n"}},"type":"object","required":["ip","ipOnFirewall","sequence"]},"outputs":{"description":"A collection of values returned by getFirewallRule.\n","properties":{"action":{"description":"Possible values for action (deny|permit)\n","type":"string"},"creationDate":{"description":"Creation date of the rule\n","type":"string"},"destination":{"description":"Destination IP for your rule\n","type":"string"},"destinationPort":{"description":"Destination port for your rule. Only with TCP/UDP protocol\n","type":"string"},"fragments":{"description":"Fragments option\n","type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"ip":{"description":"The IP or the CIDR\n","type":"string"},"ipOnFirewall":{"description":"IPv4 address\n","type":"string"},"protocol":{"description":"Possible values for protocol (ah|esp|gre|icmp|ipv4|tcp|udp)\n","type":"string"},"rule":{"description":"Description of the rule\n","type":"string"},"sequence":{"description":"Rule position in the rules array\n","type":"number"},"source":{"description":"IPv4 CIDR notation (e.g., 192.0.2.0/24)\n","type":"string"},"sourcePort":{"description":"Source port for your rule. Only with TCP/UDP protocol\n","type":"string"},"state":{"description":"Current state of your rule\n","type":"string"},"tcpOption":{"description":"TCP option on your rule (syn|established)\n","type":"string"}},"required":["action","creationDate","destination","destinationPort","fragments","ip","ipOnFirewall","protocol","rule","sequence","source","sourcePort","state","tcpOption","id"],"type":"object"}},"ovh:Ip/getMitigation:getMitigation":{"description":"Use this resource to retrieve information about an IP permanent mitigation.\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 mitigationData = ovh.Ip.getMitigation({\n    ip: \"XXXXXX\",\n    ipOnMitigation: \"XXXXXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmitigation_data = ovh.Ip.get_mitigation(ip=\"XXXXXX\",\n    ip_on_mitigation=\"XXXXXX\")\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 mitigationData = Ovh.Ip.GetMitigation.Invoke(new()\n    {\n        Ip = \"XXXXXX\",\n        IpOnMitigation = \"XXXXXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/ip\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ip.GetMitigation(ctx, \u0026ip.GetMitigationArgs{\n\t\t\tIp:             \"XXXXXX\",\n\t\t\tIpOnMitigation: \"XXXXXX\",\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.Ip.IpFunctions;\nimport com.pulumi.ovh.Ip.inputs.GetMitigationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 mitigationData = IpFunctions.getMitigation(GetMitigationArgs.builder()\n            .ip(\"XXXXXX\")\n            .ipOnMitigation(\"XXXXXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  mitigationData:\n    fn::invoke:\n      function: ovh:Ip:getMitigation\n      arguments:\n        ip: XXXXXX\n        ipOnMitigation: XXXXXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getMitigation.\n","properties":{"ip":{"type":"string","description":"The IP or the CIDR\n"},"ipOnMitigation":{"type":"string","description":"IPv4 address\n"}},"type":"object","required":["ip","ipOnMitigation"]},"outputs":{"description":"A collection of values returned by getMitigation.\n","properties":{"auto":{"description":"Set on true if the IP is on auto-mitigation\n","type":"boolean"},"id":{"type":"string"},"ip":{"description":"The IP or the CIDR\n","type":"string"},"ipOnMitigation":{"description":"IPv4 address\n* `permanent ` - (Deprecated) Set on true if the IP is on permanent mitigation\n","type":"string"},"permanent":{"deprecationMessage":"Attribute 'permanent' is deprecated and has no effect.","type":"boolean"},"state":{"description":"Current state of the IP on mitigation\n","type":"string"}},"required":["auto","id","ip","ipOnMitigation","permanent","state"],"type":"object"}},"ovh:Ip/getService:getService":{"description":"Use this data source to retrieve information about an IP service.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst myIp = ovh.Ip.getService({\n    serviceName: \"XXXXXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_ip = ovh.Ip.get_service(service_name=\"XXXXXX\")\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 myIp = Ovh.Ip.GetService.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/ip\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ip.GetService(ctx, \u0026ip.GetServiceArgs{\n\t\t\tServiceName: \"XXXXXX\",\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.Ip.IpFunctions;\nimport com.pulumi.ovh.Ip.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myIp = IpFunctions.getService(GetServiceArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myIp:\n    fn::invoke:\n      function: ovh:Ip:getService\n      arguments:\n        serviceName: XXXXXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"serviceName":{"type":"string","description":"The service name\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"canBeTerminated":{"description":"can be terminated\n","type":"boolean"},"country":{"description":"country\n","type":"string"},"description":{"description":"Custom description on your ip\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"ip":{"description":"ip block\n","type":"string"},"organisationId":{"description":"IP block organisation Id\n","type":"string"},"routedTos":{"description":"Routage information\n","items":{"$ref":"#/types/ovh:Ip/getServiceRoutedTo:getServiceRoutedTo"},"type":"array"},"serviceName":{"description":"Service where ip is routed to\n","type":"string"},"type":{"description":"Possible values for ip type ( \"cdn\", \"cloud\", \"dedicated\", \"failover\", \"hosted_ssl\", \"housing\", \"loadBalancing\", \"mail\", \"overthebox\", \"pcc\", \"pci\", \"private\", \"vpn\", \"vps\", \"vrack\", \"xdsl\")\n","type":"string"}},"required":["canBeTerminated","country","description","ip","organisationId","routedTos","serviceName","type","id"],"type":"object"}},"ovh:IpLoadBalancing/getIpLoadBalancing:getIpLoadBalancing":{"description":"Use this data source to retrieve information about an IP Load Balancing product\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 lb = ovh.IpLoadBalancing.getIpLoadBalancing({\n    serviceName: \"XXXXXX\",\n    state: \"ok\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb = ovh.IpLoadBalancing.get_ip_load_balancing(service_name=\"XXXXXX\",\n    state=\"ok\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var lb = Ovh.IpLoadBalancing.GetIpLoadBalancing.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        State = \"ok\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iploadbalancing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := iploadbalancing.GetIpLoadBalancing(ctx, \u0026iploadbalancing.GetIpLoadBalancingArgs{\n\t\t\tServiceName: pulumi.StringRef(\"XXXXXX\"),\n\t\t\tState:       pulumi.StringRef(\"ok\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.IpLoadBalancing.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetIpLoadBalancingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var lb = IpLoadBalancingFunctions.getIpLoadBalancing(GetIpLoadBalancingArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .state(\"ok\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  lb:\n    fn::invoke:\n      function: ovh:IpLoadBalancing:getIpLoadBalancing\n      arguments:\n        serviceName: XXXXXX\n        state: ok\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIpLoadBalancing.\n","properties":{"displayName":{"type":"string","description":"the name displayed in ManagerV6 for your iplb (max 50 chars)\n"},"ipLoadbalancing":{"type":"string","description":"Your IP load balancing\n"},"ipv4":{"type":"string","description":"The IPV4 associated to your IP load balancing\n"},"ipv6":{"type":"string","description":"The IPV6 associated to your IP load balancing\n"},"offer":{"type":"string","description":"The offer of your IP load balancing\n"},"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"sslConfiguration":{"type":"string","description":"Modern oldest compatible clients : Firefox 27, Chrome 30, IE 11 on Windows 7, Edge, Opera 17, Safari 9, Android 5.0, and Java 8. Intermediate oldest compatible clients : Firefox 1, Chrome 1, IE 7, Opera 5, Safari 1, Windows XP IE8, Android 2.3, Java 7. Can take any of the following value: \"intermediate\", \"modern\"\n"},"state":{"type":"string","description":"Current state of your IP. Can take any of the following value: \"blacklisted\", \"deleted\", \"free\", \"ok\", \"quarantined\", \"suspended\"\n"},"vrackEligibility":{"type":"boolean","description":"Vrack eligibility. Takes a boolean value.\n"},"vrackName":{"type":"string","description":"Name of the vRack on which the current Load Balancer is attached to, as it is named on vRack product\n"},"zones":{"type":"array","items":{"type":"string"},"description":"Location where your service is. This takes an array of values.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getIpLoadBalancing.\n","properties":{"displayName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"ipLoadbalancing":{"type":"string"},"ipv4":{"type":"string"},"ipv6":{"type":"string"},"metricsToken":{"description":"The metrics token associated with your IP load balancing This attribute is sensitive.\n","secret":true,"type":"string"},"offer":{"type":"string"},"orderableZones":{"description":"Available additional zone for your Load Balancer\n","items":{"$ref":"#/types/ovh:IpLoadBalancing/getIpLoadBalancingOrderableZone:getIpLoadBalancingOrderableZone"},"type":"array"},"serviceName":{"type":"string"},"sslConfiguration":{"type":"string"},"state":{"type":"string"},"urn":{"description":"The URN of the load balancer, to be used in IAM policies\n","type":"string"},"vrackEligibility":{"type":"boolean"},"vrackName":{"type":"string"},"zones":{"items":{"type":"string"},"type":"array"}},"required":["displayName","ipLoadbalancing","ipv4","ipv6","metricsToken","offer","orderableZones","serviceName","sslConfiguration","state","urn","vrackEligibility","vrackName","zones","id"],"type":"object"}},"ovh:IpLoadBalancing/getVrackNetwork:getVrackNetwork":{"description":"Use this data source to get the details of Vrack network available for your IPLoadbalancer 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 \"@ovhcloud/pulumi-ovh\";\n\nconst lbNetwork = ovh.IpLoadBalancing.getVrackNetwork({\n    serviceName: \"XXXXXX\",\n    vrackNetworkId: \"yyy\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb_network = ovh.IpLoadBalancing.get_vrack_network(service_name=\"XXXXXX\",\n    vrack_network_id=\"yyy\")\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 lbNetwork = Ovh.IpLoadBalancing.GetVrackNetwork.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        VrackNetworkId = \"yyy\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/iploadbalancing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := iploadbalancing.GetVrackNetwork(ctx, \u0026iploadbalancing.GetVrackNetworkArgs{\n\t\t\tServiceName:    \"XXXXXX\",\n\t\t\tVrackNetworkId: \"yyy\",\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.IpLoadBalancing.IpLoadBalancingFunctions;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.GetVrackNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 lbNetwork = IpLoadBalancingFunctions.getVrackNetwork(GetVrackNetworkArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .vrackNetworkId(\"yyy\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  lbNetwork:\n    fn::invoke:\n      function: ovh:IpLoadBalancing:getVrackNetwork\n      arguments:\n        serviceName: XXXXXX\n        vrackNetworkId: yyy\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVrackNetwork.\n","properties":{"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"vrackNetworkId":{"type":"integer","description":"Internal Load Balancer identifier of the vRack private network\n"}},"type":"object","required":["serviceName","vrackNetworkId"]},"outputs":{"description":"A collection of values returned by getVrackNetwork.\n","properties":{"displayName":{"description":"Human readable name for your vrack network\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"natIp":{"description":"An IP block used as a pool of IPs by this Load Balancer to connect to the servers in this private network. The blck must be in the private network and reserved for the Load Balancer\n","type":"string"},"serviceName":{"type":"string"},"subnet":{"description":"IP block of the private network in the vRack\n","type":"string"},"vlan":{"description":"VLAN of the private network in the vRack. 0 if the private network is not in a VLAN\n","type":"integer"},"vrackNetworkId":{"type":"integer"}},"required":["displayName","natIp","serviceName","subnet","vlan","vrackNetworkId","id"],"type":"object"}},"ovh:Me/getAPIOAuth2Client:getAPIOAuth2Client":{"description":"Use this data source to retrieve information about an existing OAuth2 service account.\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 myOauth2Client = ovh.Me.getAPIOAuth2Client({\n    clientId: \"5f8969a993ec8b4b\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_oauth2_client = ovh.Me.get_apio_auth2_client(client_id=\"5f8969a993ec8b4b\")\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 myOauth2Client = Ovh.Me.GetAPIOAuth2Client.Invoke(new()\n    {\n        ClientId = \"5f8969a993ec8b4b\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetAPIOAuth2Client(ctx, \u0026me.GetAPIOAuth2ClientArgs{\n\t\t\tClientId: \"5f8969a993ec8b4b\",\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.GetAPIOAuth2ClientArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myOauth2Client = MeFunctions.getAPIOAuth2Client(GetAPIOAuth2ClientArgs.builder()\n            .clientId(\"5f8969a993ec8b4b\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myOauth2Client:\n    fn::invoke:\n      function: ovh:Me:getAPIOAuth2Client\n      arguments:\n        clientId: 5f8969a993ec8b4b\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAPIOAuth2Client.\n","properties":{"clientId":{"type":"string","description":"Client ID of an existing OAuth2 service account.\n"}},"type":"object","required":["clientId"]},"outputs":{"description":"A collection of values returned by getAPIOAuth2Client.\n","properties":{"callbackUrls":{"description":"List of callback urls when configuring the `AUTHORIZATION_CODE` flow.\n","items":{"type":"string"},"type":"array"},"clientId":{"description":"Client ID of the created service account.\n","type":"string"},"description":{"description":"OAuth2 client description.\n","type":"string"},"flow":{"description":"The OAuth2 flow to use. `AUTHORIZATION_CODE` or `CLIENT_CREDENTIALS` are supported at the moment.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"identity":{"description":"Identity URN of the service account to be used inside an IAM policy.\n","type":"string"},"name":{"description":"OAuth2 client name.\n","type":"string"}},"required":["callbackUrls","clientId","description","flow","identity","name","id"],"type":"object"}},"ovh:Me/getAPIOAuth2Clients:getAPIOAuth2Clients":{"description":"Use this data source to retrieve information the list of existing OAuth2 service account IDs.\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 myOauth2Clients = ovh.Me.getAPIOAuth2Clients({});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_oauth2_clients = ovh.Me.get_apio_auth2_clients()\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 myOauth2Clients = Ovh.Me.GetAPIOAuth2Clients.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetAPIOAuth2Clients(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.MeFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myOauth2Clients = MeFunctions.getAPIOAuth2Clients(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n    }\n}\n```\n```yaml\nvariables:\n  myOauth2Clients:\n    fn::invoke:\n      function: ovh:Me:getAPIOAuth2Clients\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getAPIOAuth2Clients.\n","properties":{"clientIds":{"description":"The list of all the existing client IDs.\n","items":{"type":"string"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"}},"required":["clientIds","id"],"type":"object"}},"ovh:Me/getIdentityGroup:getIdentityGroup":{"description":"Use this data source to retrieve information about an identity group.\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 myGroup = ovh.Me.getIdentityGroup({\n    name: \"my_group_name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_group = ovh.Me.get_identity_group(name=\"my_group_name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myGroup = Ovh.Me.GetIdentityGroup.Invoke(new()\n    {\n        Name = \"my_group_name\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetIdentityGroup(ctx, \u0026me.GetIdentityGroupArgs{\n\t\t\tName: \"my_group_name\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.MeFunctions;\nimport com.pulumi.ovh.Me.inputs.GetIdentityGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myGroup = MeFunctions.getIdentityGroup(GetIdentityGroupArgs.builder()\n            .name(\"my_group_name\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myGroup:\n    fn::invoke:\n      function: ovh:Me:getIdentityGroup\n      arguments:\n        name: my_group_name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIdentityGroup.\n","properties":{"name":{"type":"string","description":"Group name.\n"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getIdentityGroup.\n","properties":{"GroupURN":{"description":"Identity URN of the group.\n","type":"string"},"creation":{"description":"Creation date of this group.\n","type":"string"},"defaultGroup":{"description":"Is the group a default and immutable one.\n","type":"boolean"},"description":{"description":"Group description.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"lastUpdate":{"description":"Date of the last update of this group.\n","type":"string"},"name":{"type":"string"},"role":{"description":"Role associated with the group. Valid roles are ADMIN, REGULAR, UNPRIVILEGED, and NONE.\n","type":"string"}},"required":["creation","defaultGroup","description","lastUpdate","name","role","GroupURN","id"],"type":"object"}},"ovh:Me/getIdentityGroups:getIdentityGroups":{"description":"Use this data source to retrieve the list of the account's identity groups\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 groups = ovh.Me.getIdentityGroups({});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ngroups = ovh.Me.get_identity_groups()\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 groups = Ovh.Me.GetIdentityGroups.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetIdentityGroups(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.MeFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 groups = MeFunctions.getIdentityGroups(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n    }\n}\n```\n```yaml\nvariables:\n  groups:\n    fn::invoke:\n      function: ovh:Me:getIdentityGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getIdentityGroups.\n","properties":{"groups":{"description":"The list of the group names of all the identity groups.\n","items":{"type":"string"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"}},"required":["groups","id"],"type":"object"}},"ovh:Me/getIdentityUser:getIdentityUser":{"description":"Use this data source to retrieve information about an identity user.\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 myUser = ovh.Me.getIdentityUser({\n    user: \"my_user_login\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_user = ovh.Me.get_identity_user(user=\"my_user_login\")\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 myUser = Ovh.Me.GetIdentityUser.Invoke(new()\n    {\n        User = \"my_user_login\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetIdentityUser(ctx, \u0026me.GetIdentityUserArgs{\n\t\t\tUser: \"my_user_login\",\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.GetIdentityUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myUser = MeFunctions.getIdentityUser(GetIdentityUserArgs.builder()\n            .user(\"my_user_login\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myUser:\n    fn::invoke:\n      function: ovh:Me:getIdentityUser\n      arguments:\n        user: my_user_login\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIdentityUser.\n","properties":{"user":{"type":"string","description":"User's login.\n"}},"type":"object","required":["user"]},"outputs":{"description":"A collection of values returned by getIdentityUser.\n","properties":{"UserURN":{"description":"User's identity URN.\n","type":"string"},"creation":{"description":"Creation date of this user.\n","type":"string"},"description":{"description":"User description.\n","type":"string"},"email":{"description":"User's email.\n","type":"string"},"group":{"description":"User's group.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"lastUpdate":{"description":"Last update of this user.\n","type":"string"},"login":{"description":"User's login suffix.\n","type":"string"},"passwordLastUpdate":{"description":"When the user changed his password for the last time.\n","type":"string"},"status":{"description":"Current user's status.\n","type":"string"},"user":{"type":"string"}},"required":["creation","description","email","group","lastUpdate","login","passwordLastUpdate","status","UserURN","user","id"],"type":"object"}},"ovh:Me/getIdentityUsers:getIdentityUsers":{"description":"Use this data source to retrieve list of user logins of the account's identity users.\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 users = ovh.Me.getIdentityUsers({});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nusers = ovh.Me.get_identity_users()\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 users = Ovh.Me.GetIdentityUsers.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetIdentityUsers(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.MeFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var users = MeFunctions.getIdentityUsers(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n    }\n}\n```\n```yaml\nvariables:\n  users:\n    fn::invoke:\n      function: ovh:Me:getIdentityUsers\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getIdentityUsers.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"users":{"description":"The list of the user's logins of all the identity users.\n","items":{"type":"string"},"type":"array"}},"required":["users","id"],"type":"object"}},"ovh:Me/getMe:getMe":{"description":"Use this data source to get information about the current OVHcloud account.\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 myAccount = ovh.Me.getMe({});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_account = ovh.Me.get_me()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myAccount = Ovh.Me.GetMe.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetMe(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.MeFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myAccount = MeFunctions.getMe(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n    }\n}\n```\n```yaml\nvariables:\n  myAccount:\n    fn::invoke:\n      function: ovh:Me:getMe\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getMe.\n","properties":{"AccountURN":{"description":"The resource URN of the account, to be used when writing IAM policies\n","type":"string"},"address":{"description":"Postal address of the account\n","type":"string"},"area":{"description":"Area of the account\n","type":"string"},"birthCity":{"description":"City of birth\n","type":"string"},"birthDay":{"description":"Birth date\n","type":"string"},"city":{"description":"City of the account\n","type":"string"},"companyNationalIdentificationNumber":{"description":"This is the national identification number of the company that possess this account\n","type":"string"},"corporationType":{"description":"Type of corporation\n","type":"string"},"country":{"description":"Country of the account\n","type":"string"},"currencies":{"items":{"$ref":"#/types/ovh:Me/getMeCurrency:getMeCurrency"},"type":"array"},"customerCode":{"description":"The customer code of this account (a numerical value used for identification when contacting support via phone call)\n","type":"string"},"email":{"description":"Email address\n","type":"string"},"fax":{"description":"Fax number\n","type":"string"},"firstname":{"description":"First name\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"italianSdi":{"description":"Italian SDI\n","type":"string"},"language":{"description":"Preferred language for this account\n","type":"string"},"legalform":{"description":"Legal form of the account\n","type":"string"},"name":{"description":"Name of the account holder\n","type":"string"},"nationalIdentificationNumber":{"description":"National Identification Number of this account\n","type":"string"},"nichandle":{"description":"Nic handle / customer identifier\n","type":"string"},"organisation":{"description":"Name of the organisation for this account\n","type":"string"},"ovhCompany":{"description":"OVHcloud subsidiary\n","type":"string"},"ovhSubsidiary":{"description":"OVHcloud subsidiary\n","type":"string"},"phone":{"description":"Phone number\n","type":"string"},"phoneCountry":{"description":"Country code of the phone number\n","type":"string"},"sex":{"description":"Gender of the account holder\n","type":"string"},"spareEmail":{"description":"Backup email address\n","type":"string"},"state":{"description":"State of the postal address\n","type":"string"},"vat":{"description":"VAT number\n","type":"string"},"zip":{"description":"Zipcode of the address\n","type":"string"}},"required":["address","area","birthCity","birthDay","city","companyNationalIdentificationNumber","corporationType","country","currencies","customerCode","email","fax","firstname","italianSdi","language","legalform","name","nationalIdentificationNumber","nichandle","organisation","ovhCompany","ovhSubsidiary","phone","phoneCountry","sex","spareEmail","state","AccountURN","vat","zip","id"],"type":"object"}},"ovh:Me/getPaymentmeanBankAccount:getPaymentmeanBankAccount":{"description":"Use this data source to retrieve information about a bank account payment mean associated with an OVHcloud account.\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 ba = ovh.Me.getPaymentmeanBankAccount({\n    useDefault: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nba = ovh.Me.get_paymentmean_bank_account(use_default=True)\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 ba = Ovh.Me.GetPaymentmeanBankAccount.Invoke(new()\n    {\n        UseDefault = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetPaymentmeanBankAccount(ctx, \u0026me.GetPaymentmeanBankAccountArgs{\n\t\t\tUseDefault: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.MeFunctions;\nimport com.pulumi.ovh.Me.inputs.GetPaymentmeanBankAccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 ba = MeFunctions.getPaymentmeanBankAccount(GetPaymentmeanBankAccountArgs.builder()\n            .useDefault(true)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  ba:\n    fn::invoke:\n      function: ovh:Me:getPaymentmeanBankAccount\n      arguments:\n        useDefault: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPaymentmeanBankAccount.\n","properties":{"descriptionRegexp":{"type":"string","description":"a regexp used to filter bank accounts on their `description` attributes.\n","willReplaceOnChanges":true},"state":{"type":"string","description":"Filter bank accounts on their `state` attribute. Can be \"blockedForIncidents\", \"valid\", \"pendingValidation\"\n"},"useDefault":{"type":"boolean","description":"Retrieve bank account marked as default payment mean.\n","willReplaceOnChanges":true},"useOldest":{"type":"boolean","description":"Retrieve oldest bank account. project.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getPaymentmeanBankAccount.\n","properties":{"default":{"description":"a boolean which tells if the retrieved bank account is marked as the default payment mean\n","type":"boolean"},"description":{"description":"the description attribute of the bank account\n","type":"string"},"descriptionRegexp":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"state":{"type":"string"},"useDefault":{"type":"boolean"},"useOldest":{"type":"boolean"}},"required":["default","description","state","id"],"type":"object"}},"ovh:Me/getPaymentmeanCreditCard:getPaymentmeanCreditCard":{"description":"Use this data source to retrieve information about a credit card payment mean associated with an OVHcloud account.\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 cc = ovh.Me.getPaymentmeanCreditCard({\n    useDefault: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ncc = ovh.Me.get_paymentmean_credit_card(use_default=True)\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 cc = Ovh.Me.GetPaymentmeanCreditCard.Invoke(new()\n    {\n        UseDefault = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetPaymentmeanCreditCard(ctx, \u0026me.GetPaymentmeanCreditCardArgs{\n\t\t\tUseDefault: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.MeFunctions;\nimport com.pulumi.ovh.Me.inputs.GetPaymentmeanCreditCardArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 cc = MeFunctions.getPaymentmeanCreditCard(GetPaymentmeanCreditCardArgs.builder()\n            .useDefault(true)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  cc:\n    fn::invoke:\n      function: ovh:Me:getPaymentmeanCreditCard\n      arguments:\n        useDefault: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPaymentmeanCreditCard.\n","properties":{"descriptionRegexp":{"type":"string","description":"a regexp used to filter credit cards on their `description` attributes.\n","willReplaceOnChanges":true},"states":{"type":"array","items":{"type":"string"},"description":"Filter credit cards on their `state` attribute. Can be \"expired\", \"valid\", \"tooManyFailures\"\n"},"useDefault":{"type":"boolean","description":"Retrieve credit card marked as default payment mean.\n","willReplaceOnChanges":true},"useLastToExpire":{"type":"boolean","description":"Retrieve the credit card that will be the last to expire according to its expiration date.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getPaymentmeanCreditCard.\n","properties":{"default":{"description":"a boolean which tells if the retrieved credit card is marked as the default payment mean\n","type":"boolean"},"description":{"description":"the description attribute of the credit card\n","type":"string"},"descriptionRegexp":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"state":{"description":"the state attribute of the credit card\n","type":"string"},"states":{"items":{"type":"string"},"type":"array"},"useDefault":{"type":"boolean"},"useLastToExpire":{"type":"boolean"}},"required":["default","description","state","id"],"type":"object"}},"ovh:OVHcloud/connect:Connect":{"description":"Use this data source to retrieve information about an Ovhcloud Connect product\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 occ = ovh.OVHcloud.Connect({\n    serviceName: \"XXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nocc = ovh.OVHcloud.connect(service_name=\"XXX\")\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 occ = Ovh.OVHcloud.Connect.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/ovhcloud\"\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 := ovhcloud.Connect(ctx, \u0026ovhcloud.ConnectArgs{\n\t\t\tServiceName: \"XXX\",\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.OVHcloud.OVHcloudFunctions;\nimport com.pulumi.ovh.OVHcloud.inputs.ConnectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 occ = OVHcloudFunctions.Connect(ConnectArgs.builder()\n            .serviceName(\"XXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  occ:\n    fn::invoke:\n      function: ovh:OVHcloud:Connect\n      arguments:\n        serviceName: XXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking Connect.\n","properties":{"serviceName":{"type":"string","description":"The uuid of the Ovhcloud connect.\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by Connect.\n","properties":{"bandwidth":{"description":"Service bandwidth\n","type":"string"},"description":{"description":"Service description\n","type":"string"},"iam":{"$ref":"#/types/ovh:OVHcloud/ConnectIam:ConnectIam","description":"IAM resource information\n"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"interfaceLists":{"description":"List of interfaces linked to a service\n","items":{"type":"number"},"type":"array"},"pop":{"description":"Pop reference where the service is delivered\n","type":"string"},"portQuantity":{"description":"Port quantity\n","type":"string"},"product":{"description":"Product name of the service\n","type":"string"},"providerName":{"description":"Service provider\n","type":"string"},"serviceName":{"description":"Service name\n","type":"string"},"status":{"description":"Service status\n","type":"string"},"uuid":{"description":"uuid of the Ovhcloud Connect service\n","type":"string"},"vrack":{"description":"vrack linked to the service\n","type":"string"}},"required":["bandwidth","description","iam","interfaceLists","pop","portQuantity","product","providerName","serviceName","status","uuid","vrack","id"],"type":"object"}},"ovh:OVHcloud/connects:Connects":{"description":"Get the details of your Ovhcloud Connect products.\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 occs = ovh.OVHcloud.Connect({});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\noccs = ovh.OVHcloud.connect()\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 occs = Ovh.OVHcloud.Connect.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/ovhcloud\"\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 := ovhcloud.Connect(ctx, \u0026ovhcloud.ConnectArgs{}, 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.OVHcloud.OVHcloudFunctions;\nimport com.pulumi.ovh.OVHcloud.inputs.ConnectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 occs = OVHcloudFunctions.Connect(ConnectArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  occs:\n    fn::invoke:\n      function: ovh:OVHcloud:Connect\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by Connects.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"occs":{"items":{"$ref":"#/types/ovh:OVHcloud/ConnectsOcc:ConnectsOcc"},"type":"array"}},"required":["occs","id"],"type":"object"}},"ovh:Okms/getOkmsCredential:getOkmsCredential":{"description":"Use this data source to retrieve data associated with a KMS credential, such as the PEM encoded certificate.\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 kms = ovh.Okms.getOkmsCredential({\n    okmsId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    id: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nkms = ovh.Okms.get_okms_credential(okms_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\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 kms = Ovh.Okms.GetOkmsCredential.Invoke(new()\n    {\n        OkmsId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n        Id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/okms\"\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 := okms.GetOkmsCredential(ctx, \u0026okms.GetOkmsCredentialArgs{\n\t\t\tOkmsId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n\t\t\tId:     \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Okms.OkmsFunctions;\nimport com.pulumi.ovh.Okms.inputs.GetOkmsCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 kms = OkmsFunctions.getOkmsCredential(GetOkmsCredentialArgs.builder()\n            .okmsId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n            .id(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  kms:\n    fn::invoke:\n      function: ovh:Okms:getOkmsCredential\n      arguments:\n        okmsId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n        id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getOkmsCredential.\n","properties":{"id":{"type":"string","description":"ID of the credential\n"},"okmsId":{"type":"string","description":"ID of the KMS\n"}},"type":"object","required":["id","okmsId"]},"outputs":{"description":"A collection of values returned by getOkmsCredential.\n","properties":{"certificatePem":{"description":"(String) PEM encoded certificate of the credential\n","type":"string"},"certificateType":{"description":"(String) Type of certificate key (`ECDSA` or `RSA`).\n","type":"string"},"createdAt":{"description":"(String) Creation time of the credential\n","type":"string"},"description":{"description":"(String) Description of the credential\n","type":"string"},"expiredAt":{"description":"(String) Expiration time of the credential\n","type":"string"},"fromCsr":{"description":"(Boolean) Is the credential generated from CSR\n","type":"boolean"},"id":{"type":"string"},"identityUrns":{"description":"(List of String) List of identity URNs associated with the credential\n","items":{"type":"string"},"type":"array"},"name":{"description":"(String) Name of the credential\n","type":"string"},"okmsId":{"type":"string"},"status":{"description":"(String) Status of the credential\n","type":"string"}},"required":["certificatePem","certificateType","createdAt","description","expiredAt","fromCsr","id","identityUrns","name","okmsId","status"],"type":"object"}},"ovh:Okms/getOkmsResource:getOkmsResource":{"description":"Use this data source to retrieve information about a KMS associated with this account\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 kms = ovh.Okms.getOkmsResource({\n    id: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nkms = ovh.Okms.get_okms_resource(id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\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 kms = Ovh.Okms.GetOkmsResource.Invoke(new()\n    {\n        Id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/okms\"\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 := okms.GetOkmsResource(ctx, \u0026okms.GetOkmsResourceArgs{\n\t\t\tId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Okms.OkmsFunctions;\nimport com.pulumi.ovh.Okms.inputs.GetOkmsResourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 kms = OkmsFunctions.getOkmsResource(GetOkmsResourceArgs.builder()\n            .id(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  kms:\n    fn::invoke:\n      function: ovh:Okms:getOkmsResource\n      arguments:\n        id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getOkmsResource.\n","properties":{"id":{"type":"string","description":"Should be set to the ID of your KMS\n"}},"type":"object","required":["id"]},"outputs":{"description":"A collection of values returned by getOkmsResource.\n","properties":{"iam":{"$ref":"#/types/ovh:Okms/getOkmsResourceIam:getOkmsResourceIam","description":"(Attributes) IAM resource metadata (see below for nested schema)\n"},"id":{"description":"(String) Unique identifier of the resource\n","type":"string"},"kmipEndpoint":{"description":"(String) KMS kmip API endpoint\n","type":"string"},"publicCa":{"description":"(String) KMS public CA (Certificate Authority)\n","type":"string"},"region":{"description":"(String) Region\n","type":"string"},"restEndpoint":{"description":"(String) KMS rest API endpoint\n","type":"string"},"swaggerEndpoint":{"description":"(String) KMS rest API swagger UI\n","type":"string"}},"required":["iam","id","kmipEndpoint","publicCa","region","restEndpoint","swaggerEndpoint"],"type":"object"}},"ovh:Okms/getOkmsServiceKey:getOkmsServiceKey":{"description":"Use this data source to retrieve information about a KMS service key.\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 keyInfo = ovh.Okms.getOkmsServiceKey({\n    okmsId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    id: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nkey_info = ovh.Okms.get_okms_service_key(okms_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\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 keyInfo = Ovh.Okms.GetOkmsServiceKey.Invoke(new()\n    {\n        OkmsId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n        Id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/okms\"\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 := okms.GetOkmsServiceKey(ctx, \u0026okms.GetOkmsServiceKeyArgs{\n\t\t\tOkmsId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n\t\t\tId:     \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Okms.OkmsFunctions;\nimport com.pulumi.ovh.Okms.inputs.GetOkmsServiceKeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 keyInfo = OkmsFunctions.getOkmsServiceKey(GetOkmsServiceKeyArgs.builder()\n            .okmsId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n            .id(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  keyInfo:\n    fn::invoke:\n      function: ovh:Okms:getOkmsServiceKey\n      arguments:\n        okmsId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n        id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getOkmsServiceKey.\n","properties":{"id":{"type":"string","description":"ID of the service key\n"},"okmsId":{"type":"string","description":"ID of the KMS\n"}},"type":"object","required":["id","okmsId"]},"outputs":{"description":"A collection of values returned by getOkmsServiceKey.\n","properties":{"createdAt":{"type":"string"},"curve":{"type":"string"},"iam":{"$ref":"#/types/ovh:Okms/getOkmsServiceKeyIam:getOkmsServiceKeyIam"},"id":{"type":"string"},"name":{"type":"string"},"okmsId":{"type":"string"},"operations":{"items":{"type":"string"},"type":"array"},"size":{"type":"number"},"state":{"type":"string"},"type":{"type":"string"}},"required":["createdAt","curve","iam","id","name","okmsId","operations","size","state","type"],"type":"object"}},"ovh:Okms/getOkmsServiceKeyJwk:getOkmsServiceKeyJwk":{"description":"Use this data source to retrieve information about a KMS service key, in the JWK format.\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 keyInfo = ovh.Okms.getOkmsServiceKey({\n    okmsId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    id: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nkey_info = ovh.Okms.get_okms_service_key(okms_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\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 keyInfo = Ovh.Okms.GetOkmsServiceKey.Invoke(new()\n    {\n        OkmsId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n        Id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/okms\"\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 := okms.GetOkmsServiceKey(ctx, \u0026okms.GetOkmsServiceKeyArgs{\n\t\t\tOkmsId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n\t\t\tId:     \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Okms.OkmsFunctions;\nimport com.pulumi.ovh.Okms.inputs.GetOkmsServiceKeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 keyInfo = OkmsFunctions.getOkmsServiceKey(GetOkmsServiceKeyArgs.builder()\n            .okmsId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n            .id(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  keyInfo:\n    fn::invoke:\n      function: ovh:Okms:getOkmsServiceKey\n      arguments:\n        okmsId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n        id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getOkmsServiceKeyJwk.\n","properties":{"id":{"type":"string","description":"ID of the service key\n"},"okmsId":{"type":"string","description":"ID of the KMS\n"}},"type":"object","required":["id","okmsId"]},"outputs":{"description":"A collection of values returned by getOkmsServiceKeyJwk.\n","properties":{"createdAt":{"type":"string"},"iam":{"$ref":"#/types/ovh:Okms/getOkmsServiceKeyJwkIam:getOkmsServiceKeyJwkIam"},"id":{"type":"string"},"keys":{"items":{"$ref":"#/types/ovh:Okms/getOkmsServiceKeyJwkKey:getOkmsServiceKeyJwkKey"},"type":"array"},"name":{"type":"string"},"okmsId":{"type":"string"},"size":{"type":"number"},"state":{"type":"string"},"type":{"type":"string"}},"required":["createdAt","iam","id","keys","name","okmsId","size","state","type"],"type":"object"}},"ovh:Okms/getOkmsServiceKeyPem:getOkmsServiceKeyPem":{"description":"Use this data source to retrieve information about a KMS service key, in the PEM format.\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 keyInfo = ovh.Okms.getOkmsServiceKeyPem({\n    okmsId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    id: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nkey_info = ovh.Okms.get_okms_service_key_pem(okms_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\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 keyInfo = Ovh.Okms.GetOkmsServiceKeyPem.Invoke(new()\n    {\n        OkmsId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n        Id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/okms\"\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 := okms.GetOkmsServiceKeyPem(ctx, \u0026okms.GetOkmsServiceKeyPemArgs{\n\t\t\tOkmsId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n\t\t\tId:     \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Okms.OkmsFunctions;\nimport com.pulumi.ovh.Okms.inputs.GetOkmsServiceKeyPemArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 keyInfo = OkmsFunctions.getOkmsServiceKeyPem(GetOkmsServiceKeyPemArgs.builder()\n            .okmsId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n            .id(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  keyInfo:\n    fn::invoke:\n      function: ovh:Okms:getOkmsServiceKeyPem\n      arguments:\n        okmsId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n        id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getOkmsServiceKeyPem.\n","properties":{"id":{"type":"string"},"okmsId":{"type":"string"}},"type":"object","required":["id","okmsId"]},"outputs":{"description":"A collection of values returned by getOkmsServiceKeyPem.\n","properties":{"createdAt":{"type":"string"},"curve":{"type":"string"},"iam":{"$ref":"#/types/ovh:Okms/getOkmsServiceKeyPemIam:getOkmsServiceKeyPemIam"},"id":{"type":"string"},"keysPems":{"items":{"$ref":"#/types/ovh:Okms/getOkmsServiceKeyPemKeysPem:getOkmsServiceKeyPemKeysPem"},"type":"array"},"name":{"type":"string"},"okmsId":{"type":"string"},"operations":{"items":{"type":"string"},"type":"array"},"size":{"type":"number"},"state":{"type":"string"},"type":{"type":"string"}},"required":["createdAt","curve","iam","id","keysPems","name","okmsId","operations","size","state","type"],"type":"object"}},"ovh:Order/getCart:getCart":{"description":"Use this data source to create a temporary order cart to retrieve information order cart products.\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 myAccount = ovh.Me.getMe({});\nconst myCart = myAccount.then(myAccount =\u003e ovh.Order.getCart({\n    ovhSubsidiary: myAccount.ovhSubsidiary,\n}));\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_account = ovh.Me.get_me()\nmy_cart = ovh.Order.get_cart(ovh_subsidiary=my_account.ovh_subsidiary)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myAccount = Ovh.Me.GetMe.Invoke();\n\n    var myCart = Ovh.Order.GetCart.Invoke(new()\n    {\n        OvhSubsidiary = myAccount.Apply(getMeResult =\u003e getMeResult.OvhSubsidiary),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/me\"\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/order\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyAccount, err := me.GetMe(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = order.GetCart(ctx, \u0026order.GetCartArgs{\n\t\t\tOvhSubsidiary: myAccount.OvhSubsidiary,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.MeFunctions;\nimport com.pulumi.ovh.Order.OrderFunctions;\nimport com.pulumi.ovh.Order.inputs.GetCartArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myAccount = MeFunctions.getMe(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var myCart = OrderFunctions.getCart(GetCartArgs.builder()\n            .ovhSubsidiary(myAccount.ovhSubsidiary())\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myAccount:\n    fn::invoke:\n      function: ovh:Me:getMe\n      arguments: {}\n  myCart:\n    fn::invoke:\n      function: ovh:Order:getCart\n      arguments:\n        ovhSubsidiary: ${myAccount.ovhSubsidiary}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCart.\n","properties":{"assign":{"type":"boolean","description":"Assign a shopping cart to a logged in client. Values can be `true` or `false`.\n"},"description":{"type":"string","description":"Description of your cart\n","willReplaceOnChanges":true},"expire":{"type":"string","description":"Expiration time (format: 2006-01-02T15:04:05+00:00)\n"},"ovhSubsidiary":{"type":"string","description":"OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json)\n","willReplaceOnChanges":true}},"type":"object","required":["ovhSubsidiary"]},"outputs":{"description":"A collection of values returned by getCart.\n","properties":{"assign":{"type":"boolean"},"cartId":{"description":"Cart identifier\n","type":"string"},"description":{"type":"string"},"expire":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"items":{"description":"Items of your cart\n","items":{"type":"integer"},"type":"array"},"ovhSubsidiary":{"type":"string"},"readOnly":{"description":"Indicates if the cart has already been validated\n","type":"boolean"}},"required":["cartId","expire","items","ovhSubsidiary","readOnly","id"],"type":"object"}},"ovh:Order/getCartProduct:getCartProduct":{"description":"Use this data source to retrieve information of order cart product products.\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 myAccount = ovh.Me.getMe({});\nconst myCart = myAccount.then(myAccount =\u003e ovh.Order.getCart({\n    ovhSubsidiary: myAccount.ovhSubsidiary,\n}));\nconst plans = myCart.then(myCart =\u003e ovh.Order.getCartProduct({\n    cartId: myCart.id,\n    product: \"...\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_account = ovh.Me.get_me()\nmy_cart = ovh.Order.get_cart(ovh_subsidiary=my_account.ovh_subsidiary)\nplans = ovh.Order.get_cart_product(cart_id=my_cart.id,\n    product=\"...\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myAccount = Ovh.Me.GetMe.Invoke();\n\n    var myCart = Ovh.Order.GetCart.Invoke(new()\n    {\n        OvhSubsidiary = myAccount.Apply(getMeResult =\u003e getMeResult.OvhSubsidiary),\n    });\n\n    var plans = Ovh.Order.GetCartProduct.Invoke(new()\n    {\n        CartId = myCart.Apply(getCartResult =\u003e getCartResult.Id),\n        Product = \"...\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/me\"\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/order\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyAccount, err := me.GetMe(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyCart, err := order.GetCart(ctx, \u0026order.GetCartArgs{\n\t\t\tOvhSubsidiary: myAccount.OvhSubsidiary,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = order.GetCartProduct(ctx, \u0026order.GetCartProductArgs{\n\t\t\tCartId:  myCart.Id,\n\t\t\tProduct: \"...\",\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.Order.OrderFunctions;\nimport com.pulumi.ovh.Order.inputs.GetCartArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myAccount = MeFunctions.getMe(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var myCart = OrderFunctions.getCart(GetCartArgs.builder()\n            .ovhSubsidiary(myAccount.ovhSubsidiary())\n            .build());\n\n        final var plans = OrderFunctions.getCartProduct(GetCartProductArgs.builder()\n            .cartId(myCart.id())\n            .product(\"...\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myAccount:\n    fn::invoke:\n      function: ovh:Me:getMe\n      arguments: {}\n  myCart:\n    fn::invoke:\n      function: ovh:Order:getCart\n      arguments:\n        ovhSubsidiary: ${myAccount.ovhSubsidiary}\n  plans:\n    fn::invoke:\n      function: ovh:Order:getCartProduct\n      arguments:\n        cartId: ${myCart.id}\n        product: '...'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCartProduct.\n","properties":{"cartId":{"type":"string","description":"Cart identifier\n"},"product":{"type":"string","description":"product\n"}},"type":"object","required":["cartId","product"]},"outputs":{"description":"A collection of values returned by getCartProduct.\n","properties":{"cartId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"product":{"type":"string"},"results":{"description":"products results\n","items":{"$ref":"#/types/ovh:Order/getCartProductResult:getCartProductResult"},"type":"array"}},"required":["cartId","product","results","id"],"type":"object"}},"ovh:Order/getCartProductOptions:getCartProductOptions":{"description":"Use this data source to retrieve information of order cart product options.\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 myAccount = ovh.Me.getMe({});\nconst myCart = myAccount.then(myAccount =\u003e ovh.Order.getCart({\n    ovhSubsidiary: myAccount.ovhSubsidiary,\n}));\nconst options = myCart.then(myCart =\u003e ovh.Order.getCartProductOptions({\n    cartId: myCart.id,\n    product: \"cloud\",\n    planCode: \"project\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_account = ovh.Me.get_me()\nmy_cart = ovh.Order.get_cart(ovh_subsidiary=my_account.ovh_subsidiary)\noptions = ovh.Order.get_cart_product_options(cart_id=my_cart.id,\n    product=\"cloud\",\n    plan_code=\"project\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myAccount = Ovh.Me.GetMe.Invoke();\n\n    var myCart = Ovh.Order.GetCart.Invoke(new()\n    {\n        OvhSubsidiary = myAccount.Apply(getMeResult =\u003e getMeResult.OvhSubsidiary),\n    });\n\n    var options = Ovh.Order.GetCartProductOptions.Invoke(new()\n    {\n        CartId = myCart.Apply(getCartResult =\u003e getCartResult.Id),\n        Product = \"cloud\",\n        PlanCode = \"project\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/me\"\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/order\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyAccount, err := me.GetMe(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyCart, err := order.GetCart(ctx, \u0026order.GetCartArgs{\n\t\t\tOvhSubsidiary: myAccount.OvhSubsidiary,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = order.GetCartProductOptions(ctx, \u0026order.GetCartProductOptionsArgs{\n\t\t\tCartId:   myCart.Id,\n\t\t\tProduct:  \"cloud\",\n\t\t\tPlanCode: \"project\",\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.Order.OrderFunctions;\nimport com.pulumi.ovh.Order.inputs.GetCartArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductOptionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myAccount = MeFunctions.getMe(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var myCart = OrderFunctions.getCart(GetCartArgs.builder()\n            .ovhSubsidiary(myAccount.ovhSubsidiary())\n            .build());\n\n        final var options = OrderFunctions.getCartProductOptions(GetCartProductOptionsArgs.builder()\n            .cartId(myCart.id())\n            .product(\"cloud\")\n            .planCode(\"project\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myAccount:\n    fn::invoke:\n      function: ovh:Me:getMe\n      arguments: {}\n  myCart:\n    fn::invoke:\n      function: ovh:Order:getCart\n      arguments:\n        ovhSubsidiary: ${myAccount.ovhSubsidiary}\n  options:\n    fn::invoke:\n      function: ovh:Order:getCartProductOptions\n      arguments:\n        cartId: ${myCart.id}\n        product: cloud\n        planCode: project\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCartProductOptions.\n","properties":{"cartId":{"type":"string","description":"Cart identifier\n"},"catalogName":{"type":"string","description":"Catalog name\n"},"planCode":{"type":"string","description":"Product offer identifier\n"},"product":{"type":"string","description":"Product\n"}},"type":"object","required":["cartId","planCode","product"]},"outputs":{"description":"A collection of values returned by getCartProductOptions.\n","properties":{"cartId":{"type":"string"},"catalogName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"planCode":{"description":"Product offer identifier\n","type":"string"},"product":{"type":"string"},"results":{"description":"products results\n","items":{"$ref":"#/types/ovh:Order/getCartProductOptionsResult:getCartProductOptionsResult"},"type":"array"}},"required":["cartId","planCode","product","results","id"],"type":"object"}},"ovh:Order/getCartProductOptionsPlan:getCartProductOptionsPlan":{"description":"Use this data source to retrieve information of order cart product options plan.\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 myAccount = ovh.Me.getMe({});\nconst myCart = myAccount.then(myAccount =\u003e ovh.Order.getCart({\n    ovhSubsidiary: myAccount.ovhSubsidiary,\n}));\nconst plan = myCart.then(myCart =\u003e ovh.Order.getCartProductOptionsPlan({\n    cartId: myCart.id,\n    priceCapacity: \"renew\",\n    product: \"cloud\",\n    planCode: \"project\",\n    optionsPlanCode: \"vrack\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_account = ovh.Me.get_me()\nmy_cart = ovh.Order.get_cart(ovh_subsidiary=my_account.ovh_subsidiary)\nplan = ovh.Order.get_cart_product_options_plan(cart_id=my_cart.id,\n    price_capacity=\"renew\",\n    product=\"cloud\",\n    plan_code=\"project\",\n    options_plan_code=\"vrack\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myAccount = Ovh.Me.GetMe.Invoke();\n\n    var myCart = Ovh.Order.GetCart.Invoke(new()\n    {\n        OvhSubsidiary = myAccount.Apply(getMeResult =\u003e getMeResult.OvhSubsidiary),\n    });\n\n    var plan = Ovh.Order.GetCartProductOptionsPlan.Invoke(new()\n    {\n        CartId = myCart.Apply(getCartResult =\u003e getCartResult.Id),\n        PriceCapacity = \"renew\",\n        Product = \"cloud\",\n        PlanCode = \"project\",\n        OptionsPlanCode = \"vrack\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/me\"\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/order\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyAccount, err := me.GetMe(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyCart, err := order.GetCart(ctx, \u0026order.GetCartArgs{\n\t\t\tOvhSubsidiary: myAccount.OvhSubsidiary,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = order.GetCartProductOptionsPlan(ctx, \u0026order.GetCartProductOptionsPlanArgs{\n\t\t\tCartId:          myCart.Id,\n\t\t\tPriceCapacity:   \"renew\",\n\t\t\tProduct:         \"cloud\",\n\t\t\tPlanCode:        \"project\",\n\t\t\tOptionsPlanCode: \"vrack\",\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.Order.OrderFunctions;\nimport com.pulumi.ovh.Order.inputs.GetCartArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductOptionsPlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myAccount = MeFunctions.getMe(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var myCart = OrderFunctions.getCart(GetCartArgs.builder()\n            .ovhSubsidiary(myAccount.ovhSubsidiary())\n            .build());\n\n        final var plan = OrderFunctions.getCartProductOptionsPlan(GetCartProductOptionsPlanArgs.builder()\n            .cartId(myCart.id())\n            .priceCapacity(\"renew\")\n            .product(\"cloud\")\n            .planCode(\"project\")\n            .optionsPlanCode(\"vrack\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myAccount:\n    fn::invoke:\n      function: ovh:Me:getMe\n      arguments: {}\n  myCart:\n    fn::invoke:\n      function: ovh:Order:getCart\n      arguments:\n        ovhSubsidiary: ${myAccount.ovhSubsidiary}\n  plan:\n    fn::invoke:\n      function: ovh:Order:getCartProductOptionsPlan\n      arguments:\n        cartId: ${myCart.id}\n        priceCapacity: renew\n        product: cloud\n        planCode: project\n        optionsPlanCode: vrack\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCartProductOptionsPlan.\n","properties":{"cartId":{"type":"string","description":"Cart identifier\n"},"catalogName":{"type":"string","description":"Catalog name\n"},"optionsPlanCode":{"type":"string","description":"options plan code.\n"},"planCode":{"type":"string","description":"Product offer identifier\n"},"priceCapacity":{"type":"string","description":"Capacity of the pricing (type of pricing)\n"},"product":{"type":"string","description":"Product\n"}},"type":"object","required":["cartId","optionsPlanCode","planCode","priceCapacity","product"]},"outputs":{"description":"A collection of values returned by getCartProductOptionsPlan.\n","properties":{"cartId":{"type":"string"},"catalogName":{"type":"string"},"exclusive":{"description":"Define if options of this family are exclusive with each other\n","type":"boolean"},"family":{"description":"Option family\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"mandatory":{"description":"Define if an option of this family is mandatory\n","type":"boolean"},"optionsPlanCode":{"type":"string"},"planCode":{"description":"Product offer identifier\n","type":"string"},"priceCapacity":{"type":"string"},"prices":{"description":"Prices of the product offer\n","items":{"$ref":"#/types/ovh:Order/getCartProductOptionsPlanPrice:getCartProductOptionsPlanPrice"},"type":"array"},"product":{"type":"string"},"productName":{"description":"Name of the product\n","type":"string"},"productType":{"description":"Product type\n","type":"string"},"selectedPrices":{"description":"Selected Price according to capacity\n","items":{"$ref":"#/types/ovh:Order/getCartProductOptionsPlanSelectedPrice:getCartProductOptionsPlanSelectedPrice"},"type":"array"}},"required":["cartId","exclusive","family","mandatory","optionsPlanCode","planCode","priceCapacity","prices","product","productName","productType","selectedPrices","id"],"type":"object"}},"ovh:Order/getCartProductPlan:getCartProductPlan":{"description":"Use this data source to retrieve information of order cart product plan.\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 myAccount = ovh.Me.getMe({});\nconst myCart = myAccount.then(myAccount =\u003e ovh.Order.getCart({\n    ovhSubsidiary: myAccount.ovhSubsidiary,\n}));\nconst plan = myCart.then(myCart =\u003e ovh.Order.getCartProductPlan({\n    cartId: myCart.id,\n    priceCapacity: \"renew\",\n    product: \"cloud\",\n    planCode: \"project\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_account = ovh.Me.get_me()\nmy_cart = ovh.Order.get_cart(ovh_subsidiary=my_account.ovh_subsidiary)\nplan = ovh.Order.get_cart_product_plan(cart_id=my_cart.id,\n    price_capacity=\"renew\",\n    product=\"cloud\",\n    plan_code=\"project\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myAccount = Ovh.Me.GetMe.Invoke();\n\n    var myCart = Ovh.Order.GetCart.Invoke(new()\n    {\n        OvhSubsidiary = myAccount.Apply(getMeResult =\u003e getMeResult.OvhSubsidiary),\n    });\n\n    var plan = Ovh.Order.GetCartProductPlan.Invoke(new()\n    {\n        CartId = myCart.Apply(getCartResult =\u003e getCartResult.Id),\n        PriceCapacity = \"renew\",\n        Product = \"cloud\",\n        PlanCode = \"project\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/me\"\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/order\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyAccount, err := me.GetMe(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyCart, err := order.GetCart(ctx, \u0026order.GetCartArgs{\n\t\t\tOvhSubsidiary: myAccount.OvhSubsidiary,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = order.GetCartProductPlan(ctx, \u0026order.GetCartProductPlanArgs{\n\t\t\tCartId:        myCart.Id,\n\t\t\tPriceCapacity: \"renew\",\n\t\t\tProduct:       \"cloud\",\n\t\t\tPlanCode:      \"project\",\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.Order.OrderFunctions;\nimport com.pulumi.ovh.Order.inputs.GetCartArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductPlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myAccount = MeFunctions.getMe(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var myCart = OrderFunctions.getCart(GetCartArgs.builder()\n            .ovhSubsidiary(myAccount.ovhSubsidiary())\n            .build());\n\n        final var plan = OrderFunctions.getCartProductPlan(GetCartProductPlanArgs.builder()\n            .cartId(myCart.id())\n            .priceCapacity(\"renew\")\n            .product(\"cloud\")\n            .planCode(\"project\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myAccount:\n    fn::invoke:\n      function: ovh:Me:getMe\n      arguments: {}\n  myCart:\n    fn::invoke:\n      function: ovh:Order:getCart\n      arguments:\n        ovhSubsidiary: ${myAccount.ovhSubsidiary}\n  plan:\n    fn::invoke:\n      function: ovh:Order:getCartProductPlan\n      arguments:\n        cartId: ${myCart.id}\n        priceCapacity: renew\n        product: cloud\n        planCode: project\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCartProductPlan.\n","properties":{"cartId":{"type":"string","description":"Cart identifier\n"},"catalogName":{"type":"string","description":"Catalog name\n"},"planCode":{"type":"string","description":"Product offer identifier\n"},"priceCapacity":{"type":"string","description":"Capacity of the pricing (type of pricing)\n"},"product":{"type":"string","description":"Product\n"}},"type":"object","required":["cartId","planCode","priceCapacity","product"]},"outputs":{"description":"A collection of values returned by getCartProductPlan.\n","properties":{"cartId":{"type":"string"},"catalogName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"planCode":{"description":"Product offer identifier\n","type":"string"},"priceCapacity":{"type":"string"},"prices":{"description":"Prices of the product offer\n","items":{"$ref":"#/types/ovh:Order/getCartProductPlanPrice:getCartProductPlanPrice"},"type":"array"},"product":{"type":"string"},"productName":{"description":"Name of the product\n","type":"string"},"productType":{"description":"Product type\n","type":"string"},"selectedPrices":{"description":"Selected Price according to capacity\n","items":{"$ref":"#/types/ovh:Order/getCartProductPlanSelectedPrice:getCartProductPlanSelectedPrice"},"type":"array"}},"required":["cartId","planCode","priceCapacity","prices","product","productName","productType","selectedPrices","id"],"type":"object"}},"ovh:VMware/getCloudDirectorBackup:getCloudDirectorBackup":{"description":"Get information about a VMware Cloud Director Backup service\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst backup = ovh.VMware.getCloudDirectorBackup({\n    backupId: \"\u003cVCD backup ID\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nbackup = ovh.VMware.get_cloud_director_backup(backup_id=\"\u003cVCD backup ID\u003e\")\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 backup = Ovh.VMware.GetCloudDirectorBackup.Invoke(new()\n    {\n        BackupId = \"\u003cVCD backup ID\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/vmware\"\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 := vmware.GetCloudDirectorBackup(ctx, \u0026vmware.GetCloudDirectorBackupArgs{\n\t\t\tBackupId: \"\u003cVCD backup ID\u003e\",\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.VMware.VMwareFunctions;\nimport com.pulumi.ovh.VMware.inputs.GetCloudDirectorBackupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 backup = VMwareFunctions.getCloudDirectorBackup(GetCloudDirectorBackupArgs.builder()\n            .backupId(\"\u003cVCD backup ID\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  backup:\n    fn::invoke:\n      function: ovh:VMware:getCloudDirectorBackup\n      arguments:\n        backupId: \u003cVCD backup ID\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudDirectorBackup.\n","properties":{"backupId":{"type":"string","description":"Backup ID\n"}},"type":"object","required":["backupId"]},"outputs":{"description":"A collection of values returned by getCloudDirectorBackup.\n","properties":{"backupId":{"description":"Backup ID\n","type":"string"},"createdAt":{"description":"Datetime when backup was enabled\n","type":"string"},"currentState":{"$ref":"#/types/ovh:VMware/getCloudDirectorBackupCurrentState:getCloudDirectorBackupCurrentState","description":"VMware Cloud Director Backup service current state\n"},"currentTasks":{"description":"Asynchronous operations ongoing on the VMware Cloud Director organization backup service\n","items":{"$ref":"#/types/ovh:VMware/getCloudDirectorBackupCurrentTask:getCloudDirectorBackupCurrentTask"},"type":"array"},"iam":{"$ref":"#/types/ovh:VMware/getCloudDirectorBackupIam:getCloudDirectorBackupIam","description":"IAM resource metadata\n"},"id":{"description":"Unique identifier of the VMware Cloud Director backup\n","type":"string"},"resourceStatus":{"description":"Reflects the readiness of the VMware Cloud Director organization backup service\n","type":"string"},"targetSpec":{"$ref":"#/types/ovh:VMware/getCloudDirectorBackupTargetSpec:getCloudDirectorBackupTargetSpec","description":"VMware Cloud Director Backup target spec\n"},"updatedAt":{"description":"Datetime when backup is modified\n","type":"string"}},"required":["backupId","createdAt","currentState","currentTasks","iam","id","resourceStatus","targetSpec","updatedAt"],"type":"object"}},"ovh:VMware/getCloudDirectorOrganization:getCloudDirectorOrganization":{"description":"Get VMware Cloud Director organization details\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 organization = ovh.VMware.getCloudDirectorOrganization({\n    organizationId: \"\u003cVCD organization ID\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\norganization = ovh.VMware.get_cloud_director_organization(organization_id=\"\u003cVCD organization ID\u003e\")\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 organization = Ovh.VMware.GetCloudDirectorOrganization.Invoke(new()\n    {\n        OrganizationId = \"\u003cVCD organization ID\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/vmware\"\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 := vmware.GetCloudDirectorOrganization(ctx, \u0026vmware.GetCloudDirectorOrganizationArgs{\n\t\t\tOrganizationId: \"\u003cVCD organization ID\u003e\",\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.VMware.VMwareFunctions;\nimport com.pulumi.ovh.VMware.inputs.GetCloudDirectorOrganizationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 organization = VMwareFunctions.getCloudDirectorOrganization(GetCloudDirectorOrganizationArgs.builder()\n            .organizationId(\"\u003cVCD organization ID\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  organization:\n    fn::invoke:\n      function: ovh:VMware:getCloudDirectorOrganization\n      arguments:\n        organizationId: \u003cVCD organization ID\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudDirectorOrganization.\n","properties":{"organizationId":{"type":"string","description":"Organization ID\n"}},"type":"object","required":["organizationId"]},"outputs":{"description":"A collection of values returned by getCloudDirectorOrganization.\n","properties":{"currentState":{"$ref":"#/types/ovh:VMware/getCloudDirectorOrganizationCurrentState:getCloudDirectorOrganizationCurrentState","description":"Current state of VMware Cloud Director organization service\n"},"currentTasks":{"description":"Asynchronous operations ongoing on the VMware Cloud Director organization\n","items":{"$ref":"#/types/ovh:VMware/getCloudDirectorOrganizationCurrentTask:getCloudDirectorOrganizationCurrentTask"},"type":"array"},"iam":{"$ref":"#/types/ovh:VMware/getCloudDirectorOrganizationIam:getCloudDirectorOrganizationIam","description":"IAM resource metadata\n"},"id":{"description":"Unique identifier\n","type":"string"},"organizationId":{"description":"Organization ID\n","type":"string"},"resourceStatus":{"description":"Reflects the readiness of the VMware Cloud Director organization.\n","type":"string"},"targetSpec":{"$ref":"#/types/ovh:VMware/getCloudDirectorOrganizationTargetSpec:getCloudDirectorOrganizationTargetSpec","description":"Target specification of VMware Cloud Director organization service\n"},"updatedAt":{"type":"string"}},"required":["currentState","currentTasks","iam","id","organizationId","resourceStatus","targetSpec","updatedAt"],"type":"object"}},"ovh:Vps/getVps:getVps":{"description":"Use this data source to retrieve information about a vps 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 \"@ovhcloud/pulumi-ovh\";\n\nconst server = ovh.Vps.getVps({\n    serviceName: \"XXXXXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nserver = ovh.Vps.get_vps(service_name=\"XXXXXX\")\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.Vps.GetVps.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/vps\"\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 := vps.GetVps(ctx, \u0026vps.GetVpsArgs{\n\t\t\tServiceName: \"XXXXXX\",\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.Vps.VpsFunctions;\nimport com.pulumi.ovh.Vps.inputs.GetVpsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 = VpsFunctions.getVps(GetVpsArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  server:\n    fn::invoke:\n      function: ovh:Vps:getVps\n      arguments:\n        serviceName: XXXXXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVps.\n","properties":{"serviceName":{"type":"string","description":"The service_name of your dedicated server.\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getVps.\n","properties":{"VpsURN":{"description":"The URN of the vps\n","type":"string"},"cluster":{"description":"The OVHcloud cluster the vps is in\n","type":"string"},"datacenter":{"additionalProperties":{"type":"string"},"description":"The datacenter in which the vps is located\n","type":"object"},"displayname":{"description":"The displayed name in the OVHcloud web admin\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"ips":{"description":"The list of IPs addresses attached to the vps\n","items":{"type":"string"},"type":"array"},"keymap":{"description":"The keymap for the ip kvm, valid values \"\", \"fr\", \"us\"\n","type":"string"},"memory":{"description":"The amount of memory in MB of the vps.\n","type":"integer"},"model":{"additionalProperties":{"type":"string"},"description":"A dict describing the type of vps.\n","type":"object"},"name":{"type":"string"},"netbootmode":{"description":"The source of the boot kernel\n","type":"string"},"offertype":{"description":"The type of offer (ssd, cloud, classic)\n","type":"string"},"serviceName":{"type":"string"},"slamonitoring":{"description":"A boolean to indicate if OVHcloud SLA monitoring is active.\n","type":"boolean"},"state":{"description":"The state of the vps\n","type":"string"},"type":{"description":"The type of server\n","type":"string"},"vcore":{"description":"The number of vcore of the vps\n","type":"integer"},"zone":{"description":"The OVHcloud zone where the vps is\n","type":"string"}},"required":["cluster","datacenter","displayname","ips","keymap","memory","model","name","netbootmode","offertype","serviceName","slamonitoring","state","type","VpsURN","vcore","zone","id"],"type":"object"}},"ovh:Vps/getVpss:getVpss":{"description":"Use this data source to get the list of VPS associated with your OVH Account.\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 servers = ovh.Vps.getVpss({});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nservers = ovh.Vps.get_vpss()\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 servers = Ovh.Vps.GetVpss.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh/vps\"\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 := vps.GetVpss(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Vps.VpsFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 servers = VpsFunctions.getVpss(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n    }\n}\n```\n```yaml\nvariables:\n  servers:\n    fn::invoke:\n      function: ovh:Vps:getVpss\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getVpss.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"results":{"description":"The list of VPS IDs associated with your OVH Account.\n","items":{"type":"string"},"type":"array"}},"required":["results","id"],"type":"object"}},"ovh:Vrack/getVracks:getVracks":{"description":"Use this data source to get the list of Vrack IDs available for 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 \"@ovhcloud/pulumi-ovh\";\n\nconst vracks = ovh.Vrack.getVracks({});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nvracks = ovh.Vrack.get_vracks()\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 vracks = Ovh.Vrack.GetVracks.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/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.GetVracks(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Vrack.VrackFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 vracks = VrackFunctions.getVracks(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n    }\n}\n```\n```yaml\nvariables:\n  vracks:\n    fn::invoke:\n      function: ovh:Vrack:getVracks\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getVracks.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"results":{"description":"The list of vrack service name available for your OVHcloud account.\n","items":{"type":"string"},"type":"array"}},"required":["results","id"],"type":"object"}},"ovh:index/getCloudProjectDatabaseClickhouseUser:getCloudProjectDatabaseClickhouseUser":{"description":"Use this data source to get information about a user of a clickhouse cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst chUser = ovh.getCloudProjectDatabaseClickhouseUser({\n    serviceName: \"XXX\",\n    clusterId: \"YYY\",\n    name: \"ZZZ\",\n});\nexport const chUserRoles = chUser.then(chUser =\u003e chUser.roles);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nch_user = ovh.get_cloud_project_database_clickhouse_user(service_name=\"XXX\",\n    cluster_id=\"YYY\",\n    name=\"ZZZ\")\npulumi.export(\"chUserRoles\", ch_user.roles)\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 chUser = Ovh.GetCloudProjectDatabaseClickhouseUser.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        ClusterId = \"YYY\",\n        Name = \"ZZZ\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"chUserRoles\"] = chUser.Apply(getCloudProjectDatabaseClickhouseUserResult =\u003e getCloudProjectDatabaseClickhouseUserResult.Roles),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tchUser, err := ovh.LookupCloudProjectDatabaseClickhouseUser(ctx, \u0026ovh.LookupCloudProjectDatabaseClickhouseUserArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tClusterId:   \"YYY\",\n\t\t\tName:        \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"chUserRoles\", chUser.Roles)\n\t\treturn nil\n\t})\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.GetCloudProjectDatabaseClickhouseUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 chUser = OvhFunctions.getCloudProjectDatabaseClickhouseUser(GetCloudProjectDatabaseClickhouseUserArgs.builder()\n            .serviceName(\"XXX\")\n            .clusterId(\"YYY\")\n            .name(\"ZZZ\")\n            .build());\n\n        ctx.export(\"chUserRoles\", chUser.roles());\n    }\n}\n```\n```yaml\nvariables:\n  chUser:\n    fn::invoke:\n      function: ovh:getCloudProjectDatabaseClickhouseUser\n      arguments:\n        serviceName: XXX\n        clusterId: YYY\n        name: ZZZ\noutputs:\n  chUserRoles: ${chUser.roles}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudProjectDatabaseClickhouseUser.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"name":{"type":"string","description":"Name of the user.\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","name","serviceName"]},"outputs":{"description":"A collection of values returned by getCloudProjectDatabaseClickhouseUser.\n","properties":{"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"createdAt":{"description":"Date of the creation of the user.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"name":{"description":"Name of the user.\n","type":"string"},"roles":{"description":"Roles the user belongs to.\n","items":{"type":"string"},"type":"array"},"serviceName":{"description":"See Argument Reference above.\n","type":"string"},"status":{"description":"Current status of the user.\n","type":"string"}},"required":["clusterId","createdAt","name","roles","serviceName","status","id"],"type":"object"}},"ovh:index/getCloudProjectDatabaseValkeyUser:getCloudProjectDatabaseValkeyUser":{"description":"Use this data source to get information about a user of a valkey cluster associated with a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst valkeyUser = ovh.getCloudProjectDatabaseValkeyUser({\n    serviceName: \"XXX\",\n    clusterId: \"YYY\",\n    name: \"ZZZ\",\n});\nexport const valkeyUserCommands = valkeyUser.then(valkeyUser =\u003e valkeyUser.commands);\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nvalkey_user = ovh.get_cloud_project_database_valkey_user(service_name=\"XXX\",\n    cluster_id=\"YYY\",\n    name=\"ZZZ\")\npulumi.export(\"valkeyUserCommands\", valkey_user.commands)\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 valkeyUser = Ovh.GetCloudProjectDatabaseValkeyUser.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        ClusterId = \"YYY\",\n        Name = \"ZZZ\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"valkeyUserCommands\"] = valkeyUser.Apply(getCloudProjectDatabaseValkeyUserResult =\u003e getCloudProjectDatabaseValkeyUserResult.Commands),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvalkeyUser, err := ovh.LookupCloudProjectDatabaseValkeyUser(ctx, \u0026ovh.LookupCloudProjectDatabaseValkeyUserArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tClusterId:   \"YYY\",\n\t\t\tName:        \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"valkeyUserCommands\", valkeyUser.Commands)\n\t\treturn nil\n\t})\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.GetCloudProjectDatabaseValkeyUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 valkeyUser = OvhFunctions.getCloudProjectDatabaseValkeyUser(GetCloudProjectDatabaseValkeyUserArgs.builder()\n            .serviceName(\"XXX\")\n            .clusterId(\"YYY\")\n            .name(\"ZZZ\")\n            .build());\n\n        ctx.export(\"valkeyUserCommands\", valkeyUser.commands());\n    }\n}\n```\n```yaml\nvariables:\n  valkeyUser:\n    fn::invoke:\n      function: ovh:getCloudProjectDatabaseValkeyUser\n      arguments:\n        serviceName: XXX\n        clusterId: YYY\n        name: ZZZ\noutputs:\n  valkeyUserCommands: ${valkeyUser.commands}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudProjectDatabaseValkeyUser.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"name":{"type":"string","description":"Name of the user\n"},"serviceName":{"type":"string","description":"The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["clusterId","name","serviceName"]},"outputs":{"description":"A collection of values returned by getCloudProjectDatabaseValkeyUser.\n","properties":{"categories":{"description":"Categories of the user.\n","items":{"type":"string"},"type":"array"},"channels":{"description":"Channels of the user.\n","items":{"type":"string"},"type":"array"},"clusterId":{"description":"See Argument Reference above.\n","type":"string"},"commands":{"description":"Commands of the user.\n","items":{"type":"string"},"type":"array"},"createdAt":{"description":"Date of the creation of the user.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"keys":{"description":"Keys of the user.\n","items":{"type":"string"},"type":"array"},"name":{"description":"See Argument Reference above.\n","type":"string"},"serviceName":{"description":"Current status of the user.\n","type":"string"},"status":{"description":"Current status of the user.\n","type":"string"}},"required":["categories","channels","clusterId","commands","createdAt","keys","name","serviceName","status","id"],"type":"object"}},"ovh:index/getCloudProjectFlavor:getCloudProjectFlavor":{"description":"Retrieves the given flavor in a public cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst flavor = ovh.getCloudProjectFlavor({\n    serviceName: \"YYYY\",\n    id: \"XXXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nflavor = ovh.get_cloud_project_flavor(service_name=\"YYYY\",\n    id=\"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 flavor = Ovh.GetCloudProjectFlavor.Invoke(new()\n    {\n        ServiceName = \"YYYY\",\n        Id = \"XXXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.GetCloudProjectFlavor(ctx, \u0026ovh.GetCloudProjectFlavorArgs{\n\t\t\tServiceName: \"YYYY\",\n\t\t\tId:          \"XXXX\",\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.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetCloudProjectFlavorArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 flavor = OvhFunctions.getCloudProjectFlavor(GetCloudProjectFlavorArgs.builder()\n            .serviceName(\"YYYY\")\n            .id(\"XXXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  flavor:\n    fn::invoke:\n      function: ovh:getCloudProjectFlavor\n      arguments:\n        serviceName: YYYY\n        id: XXXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudProjectFlavor.\n","properties":{"id":{"type":"string","description":"Flavor id\n"},"serviceName":{"type":"string","description":"Service name\n"}},"type":"object","required":["id","serviceName"]},"outputs":{"description":"A collection of values returned by getCloudProjectFlavor.\n","properties":{"available":{"description":"Available in stock\n","type":"boolean"},"capabilities":{"description":"Capabilities of the flavor\n","items":{"$ref":"#/types/ovh:index/getCloudProjectFlavorCapability:getCloudProjectFlavorCapability"},"type":"array"},"disk":{"description":"Number of disks\n","type":"number"},"id":{"description":"Flavor id\n","type":"string"},"inboundBandwidth":{"description":"Max capacity of inbound traffic in Mbit/s\n","type":"number"},"name":{"description":"Flavor name\n","type":"string"},"osType":{"description":"OS to install on\n","type":"string"},"outboundBandwidth":{"description":"Max capacity of outbound traffic in Mbit/s\n","type":"number"},"planCodes":{"$ref":"#/types/ovh:index/getCloudProjectFlavorPlanCodes:getCloudProjectFlavorPlanCodes","description":"Plan codes to order instances\n"},"quota":{"description":"Number instance you can spawn with your actual quota\n","type":"number"},"ram":{"description":"Ram quantity (Gio)\n","type":"number"},"region":{"description":"Flavor region\n","type":"string"},"serviceName":{"description":"Service name\n","type":"string"},"type":{"description":"Flavor type\n","type":"string"},"vcpus":{"description":"Number of VCPUs\n","type":"number"}},"required":["available","capabilities","disk","id","inboundBandwidth","name","osType","outboundBandwidth","planCodes","quota","ram","region","serviceName","type","vcpus"],"type":"object"}},"ovh:index/getCloudProjectGateway:getCloudProjectGateway":{"description":"Get gateway\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 gateway = ovh.getCloudProjectGateway({\n    serviceName: \"\u003cpublic cloud project ID\u003e\",\n    region: \"GRA11\",\n    id: \"\u003cgateway ID\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ngateway = ovh.get_cloud_project_gateway(service_name=\"\u003cpublic cloud project ID\u003e\",\n    region=\"GRA11\",\n    id=\"\u003cgateway ID\u003e\")\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 gateway = Ovh.GetCloudProjectGateway.Invoke(new()\n    {\n        ServiceName = \"\u003cpublic cloud project ID\u003e\",\n        Region = \"GRA11\",\n        Id = \"\u003cgateway ID\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.GetCloudProjectGateway(ctx, \u0026ovh.GetCloudProjectGatewayArgs{\n\t\t\tServiceName: \"\u003cpublic cloud project ID\u003e\",\n\t\t\tRegion:      \"GRA11\",\n\t\t\tId:          \"\u003cgateway ID\u003e\",\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.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetCloudProjectGatewayArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 gateway = OvhFunctions.getCloudProjectGateway(GetCloudProjectGatewayArgs.builder()\n            .serviceName(\"\u003cpublic cloud project ID\u003e\")\n            .region(\"GRA11\")\n            .id(\"\u003cgateway ID\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  gateway:\n    fn::invoke:\n      function: ovh:getCloudProjectGateway\n      arguments:\n        serviceName: \u003cpublic cloud project ID\u003e\n        region: GRA11\n        id: \u003cgateway ID\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudProjectGateway.\n","properties":{"id":{"type":"string","description":"Id\n"},"region":{"type":"string","description":"Gateway region\n"},"serviceName":{"type":"string","description":"Service name\n"}},"type":"object","required":["id","region","serviceName"]},"outputs":{"description":"A collection of values returned by getCloudProjectGateway.\n","properties":{"externalInformation":{"$ref":"#/types/ovh:index/getCloudProjectGatewayExternalInformation:getCloudProjectGatewayExternalInformation","description":"External information\n"},"id":{"description":"Id\n","type":"string"},"interfaces":{"description":"Interfaces list of the gateway\n","items":{"$ref":"#/types/ovh:index/getCloudProjectGatewayInterface:getCloudProjectGatewayInterface"},"type":"array"},"model":{"description":"Model of the gateway\n","type":"string"},"name":{"description":"Name of the gateway\n","type":"string"},"region":{"description":"Gateway region\n","type":"string"},"serviceName":{"description":"Service name\n","type":"string"},"status":{"description":"Status of the gateway\n","type":"string"}},"required":["externalInformation","id","interfaces","model","name","region","serviceName","status"],"type":"object"}},"ovh:index/getCloudProjectRancherCapabilitiesPlan:getCloudProjectRancherCapabilitiesPlan":{"description":"List available and current plans for the given managed Rancher service\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst plans = ovh.getCloudProjectRancherCapabilitiesPlan({\n    projectId: \"XXX\",\n    rancherId: \"YYY\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nplans = ovh.get_cloud_project_rancher_capabilities_plan(project_id=\"XXX\",\n    rancher_id=\"YYY\")\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 plans = Ovh.GetCloudProjectRancherCapabilitiesPlan.Invoke(new()\n    {\n        ProjectId = \"XXX\",\n        RancherId = \"YYY\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.GetCloudProjectRancherCapabilitiesPlan(ctx, \u0026ovh.GetCloudProjectRancherCapabilitiesPlanArgs{\n\t\t\tProjectId: \"XXX\",\n\t\t\tRancherId: \"YYY\",\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.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetCloudProjectRancherCapabilitiesPlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 plans = OvhFunctions.getCloudProjectRancherCapabilitiesPlan(GetCloudProjectRancherCapabilitiesPlanArgs.builder()\n            .projectId(\"XXX\")\n            .rancherId(\"YYY\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  plans:\n    fn::invoke:\n      function: ovh:getCloudProjectRancherCapabilitiesPlan\n      arguments:\n        projectId: XXX\n        rancherId: YYY\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudProjectRancherCapabilitiesPlan.\n","properties":{"projectId":{"type":"string","description":"Project ID\n"},"rancherId":{"type":"string","description":"Rancher ID\n"}},"type":"object","required":["projectId","rancherId"]},"outputs":{"description":"A collection of values returned by getCloudProjectRancherCapabilitiesPlan.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"plans":{"items":{"$ref":"#/types/ovh:index/getCloudProjectRancherCapabilitiesPlanPlan:getCloudProjectRancherCapabilitiesPlanPlan"},"type":"array"},"projectId":{"description":"Project ID\n","type":"string"},"rancherId":{"description":"Rancher ID\n","type":"string"}},"required":["plans","projectId","rancherId","id"],"type":"object"}},"ovh:index/getCloudProjectRancherCapabilitiesVersion:getCloudProjectRancherCapabilitiesVersion":{"description":"List available and current versions for the given managed Rancher service\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst versions = ovh.getCloudProjectRancherCapabilitiesVersion({\n    projectId: \"XXX\",\n    rancherId: \"YYY\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nversions = ovh.get_cloud_project_rancher_capabilities_version(project_id=\"XXX\",\n    rancher_id=\"YYY\")\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 versions = Ovh.GetCloudProjectRancherCapabilitiesVersion.Invoke(new()\n    {\n        ProjectId = \"XXX\",\n        RancherId = \"YYY\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.GetCloudProjectRancherCapabilitiesVersion(ctx, \u0026ovh.GetCloudProjectRancherCapabilitiesVersionArgs{\n\t\t\tProjectId: \"XXX\",\n\t\t\tRancherId: \"YYY\",\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.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetCloudProjectRancherCapabilitiesVersionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 versions = OvhFunctions.getCloudProjectRancherCapabilitiesVersion(GetCloudProjectRancherCapabilitiesVersionArgs.builder()\n            .projectId(\"XXX\")\n            .rancherId(\"YYY\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  versions:\n    fn::invoke:\n      function: ovh:getCloudProjectRancherCapabilitiesVersion\n      arguments:\n        projectId: XXX\n        rancherId: YYY\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudProjectRancherCapabilitiesVersion.\n","properties":{"projectId":{"type":"string","description":"Project ID\n"},"rancherId":{"type":"string","description":"Rancher ID\n"}},"type":"object","required":["projectId","rancherId"]},"outputs":{"description":"A collection of values returned by getCloudProjectRancherCapabilitiesVersion.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"projectId":{"description":"Project ID\n","type":"string"},"rancherId":{"description":"Rancher ID\n","type":"string"},"versions":{"items":{"$ref":"#/types/ovh:index/getCloudProjectRancherCapabilitiesVersionVersion:getCloudProjectRancherCapabilitiesVersionVersion"},"type":"array"}},"required":["projectId","rancherId","versions","id"],"type":"object"}},"ovh:index/getCloudProjectSshKey:getCloudProjectSshKey":{"description":"Retrieve information about a SSH key.\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 key = ovh.getCloudProjectSshKey({\n    serviceName: \"XXX\",\n    id: \"YYY\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nkey = ovh.get_cloud_project_ssh_key(service_name=\"XXX\",\n    id=\"YYY\")\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 key = Ovh.GetCloudProjectSshKey.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        Id = \"YYY\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.LookupCloudProjectSshKey(ctx, \u0026ovh.LookupCloudProjectSshKeyArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tId:          \"YYY\",\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.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetCloudProjectSshKeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 key = OvhFunctions.getCloudProjectSshKey(GetCloudProjectSshKeyArgs.builder()\n            .serviceName(\"XXX\")\n            .id(\"YYY\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  key:\n    fn::invoke:\n      function: ovh:getCloudProjectSshKey\n      arguments:\n        serviceName: XXX\n        id: YYY\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudProjectSshKey.\n","properties":{"id":{"type":"string","description":"SSH key ID\n"},"serviceName":{"type":"string","description":"Service name\n"}},"type":"object","required":["id","serviceName"]},"outputs":{"description":"A collection of values returned by getCloudProjectSshKey.\n","properties":{"fingerPrint":{"description":"SSH key fingerprint\n","type":"string"},"id":{"description":"SSH key ID\n","type":"string"},"name":{"description":"SSH key name\n","type":"string"},"publicKey":{"description":"SSH public key\n","type":"string"},"regions":{"description":"SSH key regions\n","items":{"type":"string"},"type":"array"},"serviceName":{"description":"Service name\n","type":"string"}},"required":["fingerPrint","id","name","publicKey","regions","serviceName"],"type":"object"}},"ovh:index/getCloudProjectSshKeys:getCloudProjectSshKeys":{"description":"Get SSH keys in a Public Cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst keys = ovh.getCloudProjectSshKeys({\n    serviceName: \"XXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nkeys = ovh.get_cloud_project_ssh_keys(service_name=\"XXX\")\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 keys = Ovh.GetCloudProjectSshKeys.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.GetCloudProjectSshKeys(ctx, \u0026ovh.GetCloudProjectSshKeysArgs{\n\t\t\tServiceName: \"XXX\",\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.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetCloudProjectSshKeysArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 keys = OvhFunctions.getCloudProjectSshKeys(GetCloudProjectSshKeysArgs.builder()\n            .serviceName(\"XXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  keys:\n    fn::invoke:\n      function: ovh:getCloudProjectSshKeys\n      arguments:\n        serviceName: XXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudProjectSshKeys.\n","properties":{"region":{"type":"string","description":"Region\n"},"serviceName":{"type":"string","description":"Service name\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getCloudProjectSshKeys.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"region":{"description":"Region\n","type":"string"},"serviceName":{"description":"Service name\n","type":"string"},"sshKeys":{"items":{"$ref":"#/types/ovh:index/getCloudProjectSshKeysSshKey:getCloudProjectSshKeysSshKey"},"type":"array"}},"required":["region","serviceName","sshKeys","id"],"type":"object"}},"ovh:index/getCloudProjectStorageObjectBucketLifecycleConfiguration:getCloudProjectStorageObjectBucketLifecycleConfiguration":{"description":"Get lifecycle configuration of a S3™* compatible storage container. \\* S3 is a trademark filed by Amazon Technologies,Inc. OVHcloud's service is not sponsored by, endorsed by, or otherwise affiliated with Amazon Technologies,Inc.\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 lifecycle = ovh.getCloudProjectStorageObjectBucketLifecycleConfiguration({\n    serviceName: \"\u003cpublic cloud project ID\u003e\",\n    regionName: \"GRA\",\n    containerName: \"my-bucket\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlifecycle = ovh.get_cloud_project_storage_object_bucket_lifecycle_configuration(service_name=\"\u003cpublic cloud project ID\u003e\",\n    region_name=\"GRA\",\n    container_name=\"my-bucket\")\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 lifecycle = Ovh.GetCloudProjectStorageObjectBucketLifecycleConfiguration.Invoke(new()\n    {\n        ServiceName = \"\u003cpublic cloud project ID\u003e\",\n        RegionName = \"GRA\",\n        ContainerName = \"my-bucket\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.LookupCloudProjectStorageObjectBucketLifecycleConfiguration(ctx, \u0026ovh.LookupCloudProjectStorageObjectBucketLifecycleConfigurationArgs{\n\t\t\tServiceName:   pulumi.StringRef(\"\u003cpublic cloud project ID\u003e\"),\n\t\t\tRegionName:    \"GRA\",\n\t\t\tContainerName: \"my-bucket\",\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.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetCloudProjectStorageObjectBucketLifecycleConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 lifecycle = OvhFunctions.getCloudProjectStorageObjectBucketLifecycleConfiguration(GetCloudProjectStorageObjectBucketLifecycleConfigurationArgs.builder()\n            .serviceName(\"\u003cpublic cloud project ID\u003e\")\n            .regionName(\"GRA\")\n            .containerName(\"my-bucket\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  lifecycle:\n    fn::invoke:\n      function: ovh:getCloudProjectStorageObjectBucketLifecycleConfiguration\n      arguments:\n        serviceName: \u003cpublic cloud project ID\u003e\n        regionName: GRA\n        containerName: my-bucket\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudProjectStorageObjectBucketLifecycleConfiguration.\n","properties":{"containerName":{"type":"string","description":"Name of the storage container.\n"},"regionName":{"type":"string","description":"Region name of the storage container.\n"},"serviceName":{"type":"string","description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n"}},"type":"object","required":["containerName","regionName"]},"outputs":{"description":"A collection of values returned by getCloudProjectStorageObjectBucketLifecycleConfiguration.\n","properties":{"containerName":{"description":"Name of the storage container.\n","type":"string"},"id":{"description":"Unique identifier for the resource (service*name/region*name/container_name)\n","type":"string"},"regionName":{"description":"Region name of the storage container.\n","type":"string"},"rules":{"description":"List of lifecycle rules.\n","items":{"$ref":"#/types/ovh:index/getCloudProjectStorageObjectBucketLifecycleConfigurationRule:getCloudProjectStorageObjectBucketLifecycleConfigurationRule"},"type":"array"},"serviceName":{"description":"The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n","type":"string"}},"required":["containerName","id","regionName","rules","serviceName"],"type":"object"}},"ovh:index/getDbaasLogsOutputGraylogStreamUrl:getDbaasLogsOutputGraylogStreamUrl":{"description":"Use this data source to retrieve the list of URLs for a DBaas logs output Graylog stream.\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 urls = ovh.getDbaasLogsOutputGraylogStreamUrl({\n    serviceName: \"ldp-xx-xxxxx\",\n    streamId: \"STREAM_ID\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nurls = ovh.get_dbaas_logs_output_graylog_stream_url(service_name=\"ldp-xx-xxxxx\",\n    stream_id=\"STREAM_ID\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var urls = Ovh.GetDbaasLogsOutputGraylogStreamUrl.Invoke(new()\n    {\n        ServiceName = \"ldp-xx-xxxxx\",\n        StreamId = \"STREAM_ID\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.GetDbaasLogsOutputGraylogStreamUrl(ctx, \u0026ovh.GetDbaasLogsOutputGraylogStreamUrlArgs{\n\t\t\tServiceName: \"ldp-xx-xxxxx\",\n\t\t\tStreamId:    \"STREAM_ID\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetDbaasLogsOutputGraylogStreamUrlArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 urls = OvhFunctions.getDbaasLogsOutputGraylogStreamUrl(GetDbaasLogsOutputGraylogStreamUrlArgs.builder()\n            .serviceName(\"ldp-xx-xxxxx\")\n            .streamId(\"STREAM_ID\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  urls:\n    fn::invoke:\n      function: ovh:getDbaasLogsOutputGraylogStreamUrl\n      arguments:\n        serviceName: ldp-xx-xxxxx\n        streamId: STREAM_ID\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDbaasLogsOutputGraylogStreamUrl.\n","properties":{"serviceName":{"type":"string","description":"The service name. It's the ID of your Logs Data Platform instance.\n"},"streamId":{"type":"string","description":"Stream ID.\n"}},"type":"object","required":["serviceName","streamId"]},"outputs":{"description":"A collection of values returned by getDbaasLogsOutputGraylogStreamUrl.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"serviceName":{"type":"string"},"streamId":{"type":"string"},"urls":{"description":"List of URLs. Each element contains:\n","items":{"$ref":"#/types/ovh:index/getDbaasLogsOutputGraylogStreamUrlUrl:getDbaasLogsOutputGraylogStreamUrlUrl"},"type":"array"}},"required":["serviceName","streamId","urls","id"],"type":"object"}},"ovh:index/getDedicatedServerOrderableBandwidth:getDedicatedServerOrderableBandwidth":{"description":"Use this data source to get the list of orderable additional bandwidth for 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 \"@ovhcloud/pulumi-ovh\";\n\nconst spec = ovh.getDedicatedServerOrderableBandwidth({\n    serviceName: \"myserver\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nspec = ovh.get_dedicated_server_orderable_bandwidth(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.GetDedicatedServerOrderableBandwidth.Invoke(new()\n    {\n        ServiceName = \"myserver\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.GetDedicatedServerOrderableBandwidth(ctx, \u0026ovh.GetDedicatedServerOrderableBandwidthArgs{\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.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetDedicatedServerOrderableBandwidthArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 = OvhFunctions.getDedicatedServerOrderableBandwidth(GetDedicatedServerOrderableBandwidthArgs.builder()\n            .serviceName(\"myserver\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  spec:\n    fn::invoke:\n      function: ovh:getDedicatedServerOrderableBandwidth\n      arguments:\n        serviceName: myserver\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDedicatedServerOrderableBandwidth.\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 getDedicatedServerOrderableBandwidth.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"orderable":{"description":"Whether or not additional bandwidth is orderable\n","type":"boolean"},"platinia":{"description":"Additional orderable platinium bandwidth\n","items":{"type":"integer"},"type":"array"},"premia":{"description":"Additional orderable premium bandwidth\n","items":{"type":"integer"},"type":"array"},"serviceName":{"type":"string"},"ultimates":{"description":"Additional orderable ultimate bandwidth\n","items":{"type":"integer"},"type":"array"}},"required":["orderable","platinia","premia","serviceName","ultimates","id"],"type":"object"}},"ovh:index/getDedicatedServerOrderableBandwidthVrack:getDedicatedServerOrderableBandwidthVrack":{"description":"Use this data source to get the orderable vrack bandwidth 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 \"@ovhcloud/pulumi-ovh\";\n\nconst spec = ovh.getDedicatedServerOrderableBandwidthVrack({\n    serviceName: \"myserver\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nspec = ovh.get_dedicated_server_orderable_bandwidth_vrack(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.GetDedicatedServerOrderableBandwidthVrack.Invoke(new()\n    {\n        ServiceName = \"myserver\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.GetDedicatedServerOrderableBandwidthVrack(ctx, \u0026ovh.GetDedicatedServerOrderableBandwidthVrackArgs{\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.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetDedicatedServerOrderableBandwidthVrackArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 = OvhFunctions.getDedicatedServerOrderableBandwidthVrack(GetDedicatedServerOrderableBandwidthVrackArgs.builder()\n            .serviceName(\"myserver\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  spec:\n    fn::invoke:\n      function: ovh:getDedicatedServerOrderableBandwidthVrack\n      arguments:\n        serviceName: myserver\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDedicatedServerOrderableBandwidthVrack.\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 getDedicatedServerOrderableBandwidthVrack.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"orderable":{"description":"Whether or not additional bandwidth is orderable\n","type":"boolean"},"serviceName":{"type":"string"},"vracks":{"description":"Additional orderable vrack bandwidth\n","items":{"type":"integer"},"type":"array"}},"required":["orderable","serviceName","vracks","id"],"type":"object"}},"ovh:index/getDomainZoneRecord:getDomainZoneRecord":{"description":"Get record object properties\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 record = ovh.getDomainZoneRecord({\n    zoneName: \"\u003czone_name\u003e\",\n    id: \"\u003crecord_id\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nrecord = ovh.get_domain_zone_record(zone_name=\"\u003czone_name\u003e\",\n    id=\"\u003crecord_id\u003e\")\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 record = Ovh.GetDomainZoneRecord.Invoke(new()\n    {\n        ZoneName = \"\u003czone_name\u003e\",\n        Id = \"\u003crecord_id\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.GetDomainZoneRecord(ctx, \u0026ovh.GetDomainZoneRecordArgs{\n\t\t\tZoneName: \"\u003czone_name\u003e\",\n\t\t\tId:       \"\u003crecord_id\u003e\",\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.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetDomainZoneRecordArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 record = OvhFunctions.getDomainZoneRecord(GetDomainZoneRecordArgs.builder()\n            .zoneName(\"\u003czone_name\u003e\")\n            .id(\"\u003crecord_id\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  record:\n    fn::invoke:\n      function: ovh:getDomainZoneRecord\n      arguments:\n        zoneName: \u003czone_name\u003e\n        id: \u003crecord_id\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDomainZoneRecord.\n","properties":{"id":{"type":"number","description":"Record ID\n"},"zoneName":{"type":"string","description":"Zone name\n"}},"type":"object","required":["id","zoneName"]},"outputs":{"description":"A collection of values returned by getDomainZoneRecord.\n","properties":{"fieldType":{"description":"Field type\n","type":"string"},"id":{"description":"Record ID\n","type":"number"},"subDomain":{"description":"Record subDomain\n","type":"string"},"target":{"description":"Target of the record\n","type":"string"},"ttl":{"description":"TTL of the record\n","type":"number"},"zone":{"description":"Resource record zone\n","type":"string"},"zoneName":{"description":"Zone name\n","type":"string"}},"required":["fieldType","id","subDomain","target","ttl","zone","zoneName"],"type":"object"}},"ovh:index/getDomainZoneRecords:getDomainZoneRecords":{"description":"List record\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 records = ovh.getDomainZoneRecords({\n    zoneName: \"\u003czone_name\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nrecords = ovh.get_domain_zone_records(zone_name=\"\u003czone_name\u003e\")\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 records = Ovh.GetDomainZoneRecords.Invoke(new()\n    {\n        ZoneName = \"\u003czone_name\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.GetDomainZoneRecords(ctx, \u0026ovh.GetDomainZoneRecordsArgs{\n\t\t\tZoneName: \"\u003czone_name\u003e\",\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.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetDomainZoneRecordsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 records = OvhFunctions.getDomainZoneRecords(GetDomainZoneRecordsArgs.builder()\n            .zoneName(\"\u003czone_name\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  records:\n    fn::invoke:\n      function: ovh:getDomainZoneRecords\n      arguments:\n        zoneName: \u003czone_name\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDomainZoneRecords.\n","properties":{"zoneName":{"type":"string","description":"Zone name\n"}},"type":"object","required":["zoneName"]},"outputs":{"description":"A collection of values returned by getDomainZoneRecords.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"ids":{"description":"IDs of the records in the zone\n","items":{"type":"number"},"type":"array"},"zoneName":{"description":"Zone name\n","type":"string"}},"required":["ids","zoneName","id"],"type":"object"}},"ovh:index/getInstallationTemplate:getInstallationTemplate":{"description":"Use this data source to retrieve information about a specific OVH dedicated server installation template.\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 ovhTemplate = ovh.getInstallationTemplate({\n    templateName: \"debian12_64\",\n});\nexport const template = ovhTemplate;\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\novh_template = ovh.get_installation_template(template_name=\"debian12_64\")\npulumi.export(\"template\", ovh_template)\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 ovhTemplate = Ovh.GetInstallationTemplate.Invoke(new()\n    {\n        TemplateName = \"debian12_64\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"template\"] = ovhTemplate,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tovhTemplate, err := ovh.GetInstallationTemplate(ctx, \u0026ovh.GetInstallationTemplateArgs{\n\t\t\tTemplateName: \"debian12_64\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"template\", ovhTemplate)\n\t\treturn nil\n\t})\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.GetInstallationTemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 ovhTemplate = OvhFunctions.getInstallationTemplate(GetInstallationTemplateArgs.builder()\n            .templateName(\"debian12_64\")\n            .build());\n\n        ctx.export(\"template\", ovhTemplate);\n    }\n}\n```\n```yaml\nvariables:\n  ovhTemplate:\n    fn::invoke:\n      function: ovh:getInstallationTemplate\n      arguments:\n        templateName: debian12_64\noutputs:\n  template: ${ovhTemplate}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstallationTemplate.\n","properties":{"templateName":{"type":"string","description":"The name of the template.\n"}},"type":"object","required":["templateName"]},"outputs":{"description":"A collection of values returned by getInstallationTemplate.\n","properties":{"bitFormat":{"description":"Template bit format (32 or 64).\n","type":"integer"},"category":{"description":"Category of this template (informative only).\n","type":"string"},"description":{"description":"Information about this template.\n","type":"string"},"distribution":{"description":"Distribution this template is based on.\n","type":"string"},"endOfInstall":{"description":"End of install date of the template.\n","type":"string"},"family":{"description":"Template family type.\n","type":"string"},"filesystems":{"description":"Filesystems available.\n","items":{"type":"string"},"type":"array"},"hardRaidConfiguration":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"inputs":{"description":"Represents the questions of the expected answers in the userMetadata field.\n","items":{"$ref":"#/types/ovh:index/getInstallationTemplateInput:getInstallationTemplateInput"},"type":"array"},"licenses":{"description":"License available for this template.\n","items":{"$ref":"#/types/ovh:index/getInstallationTemplateLicense:getInstallationTemplateLicense"},"type":"array"},"lvmReady":{"description":"Whether this template supports LVM.\n","type":"boolean"},"noPartitioning":{"description":"Partitioning customization is not available for this OS template.\n","type":"boolean"},"projects":{"description":"Distribution project details.\n","items":{"$ref":"#/types/ovh:index/getInstallationTemplateProject:getInstallationTemplateProject"},"type":"array"},"softRaidOnlyMirroring":{"description":"Template supports RAID0 and RAID1 on 2 disks.\n","type":"boolean"},"subfamily":{"description":"Subfamily of the template.\n","type":"string"},"templateName":{"type":"string"}},"required":["bitFormat","category","description","distribution","endOfInstall","family","filesystems","hardRaidConfiguration","inputs","licenses","lvmReady","noPartitioning","projects","softRaidOnlyMirroring","subfamily","templateName","id"],"type":"object"}},"ovh:index/getInstallationTemplates:getInstallationTemplates":{"description":"Use this data source to get the list of installation templates 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 templates = ovh.getInstallationTemplates({});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ntemplates = ovh.get_installation_templates()\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 templates = Ovh.GetInstallationTemplates.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.GetInstallationTemplates(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.OvhFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 templates = OvhFunctions.getInstallationTemplates(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n    }\n}\n```\n```yaml\nvariables:\n  templates:\n    fn::invoke:\n      function: ovh:getInstallationTemplates\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getInstallationTemplates.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"results":{"description":"The list of installation templates IDs available for dedicated servers.\n","items":{"type":"string"},"type":"array"}},"required":["results","id"],"type":"object"}},"ovh:index/getIploadbalancingNatIps:getIploadbalancingNatIps":{"description":"Retrieve the IP subnet used by OVHcloud IPLB to contact your backends.\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 iplb = ovh.getIploadbalancingNatIps({\n    serviceName: \"iplb-example-1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\niplb = ovh.get_iploadbalancing_nat_ips(service_name=\"iplb-example-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 iplb = Ovh.GetIploadbalancingNatIps.Invoke(new()\n    {\n        ServiceName = \"iplb-example-1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.GetIploadbalancingNatIps(ctx, \u0026ovh.GetIploadbalancingNatIpsArgs{\n\t\t\tServiceName: \"iplb-example-1\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetIploadbalancingNatIpsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 iplb = OvhFunctions.getIploadbalancingNatIps(GetIploadbalancingNatIpsArgs.builder()\n            .serviceName(\"iplb-example-1\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  iplb:\n    fn::invoke:\n      function: ovh:getIploadbalancingNatIps\n      arguments:\n        serviceName: iplb-example-1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIploadbalancingNatIps.\n","properties":{"serviceName":{"type":"string","description":"The service name of your IP load balancing\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getIploadbalancingNatIps.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"natIps":{"items":{"$ref":"#/types/ovh:index/getIploadbalancingNatIpsNatIp:getIploadbalancingNatIpsNatIp"},"type":"array"},"serviceName":{"description":"The service name of your IP load balancing\n","type":"string"}},"required":["natIps","serviceName","id"],"type":"object"}},"ovh:index/getIploadbalancings:getIploadbalancings":{"description":"List of your Load Balancers (IPLB)\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 iplbs = ovh.getIploadbalancings({});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\niplbs = ovh.get_iploadbalancings()\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 iplbs = Ovh.GetIploadbalancings.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.GetIploadbalancings(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.OvhFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 iplbs = OvhFunctions.getIploadbalancings(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n    }\n}\n```\n```yaml\nvariables:\n  iplbs:\n    fn::invoke:\n      function: ovh:getIploadbalancings\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getIploadbalancings.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"iploadbalancings":{"items":{"type":"string"},"type":"array"}},"required":["iploadbalancings","id"],"type":"object"}},"ovh:index/getLocation:getLocation":{"description":"Get available regions and their availability zones\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 paris = ovh.getLocation({\n    name: \"eu-west-par\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nparis = ovh.get_location(name=\"eu-west-par\")\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 paris = Ovh.GetLocation.Invoke(new()\n    {\n        Name = \"eu-west-par\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.GetLocation(ctx, \u0026ovh.GetLocationArgs{\n\t\t\tName: \"eu-west-par\",\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.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetLocationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 paris = OvhFunctions.getLocation(GetLocationArgs.builder()\n            .name(\"eu-west-par\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  paris:\n    fn::invoke:\n      function: ovh:getLocation\n      arguments:\n        name: eu-west-par\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLocation.\n","properties":{"name":{"type":"string","description":"Name\n"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getLocation.\n","properties":{"availabilityZones":{"description":"List of availability zones for the region\n","items":{"type":"string"},"type":"array"},"cardinalPoint":{"description":"Cardinal direction where the region is located\n","type":"string"},"cityCode":{"description":"ISO code of the city\n","type":"string"},"cityLatitude":{"description":"Geographical latitude of the city\n","type":"number"},"cityLongitude":{"description":"Geographical longitude of the city\n","type":"number"},"cityName":{"description":"Full name of the city\n","type":"string"},"code":{"description":"Region's short code\n","type":"string"},"countryCode":{"description":"ISO code of the country\n","type":"string"},"countryName":{"description":"Full name of the country\n","type":"string"},"geographyCode":{"description":"Short code representing the geographical area\n","type":"string"},"geographyName":{"description":"Name of the geographical area\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"location":{"description":"Location of the region\n","type":"string"},"name":{"description":"Name\n","type":"string"},"openingYear":{"description":"Year the region was opened\n","type":"number"},"specificType":{"description":"Specific typology of the region\n","type":"string"},"type":{"description":"General typology of the region\n","type":"string"}},"required":["availabilityZones","cardinalPoint","cityCode","cityLatitude","cityLongitude","cityName","code","countryCode","countryName","geographyCode","geographyName","location","name","openingYear","specificType","type","id"],"type":"object"}},"ovh:index/getOkmsSecret:getOkmsSecret":{"description":"## Example Usage\n\nGet the latest secret version (metadata only):\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst latest = ovh.getOkmsSecret({\n    okmsId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    path: \"app/api_credentials\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlatest = ovh.get_okms_secret(okms_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n    path=\"app/api_credentials\")\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 latest = Ovh.GetOkmsSecret.Invoke(new()\n    {\n        OkmsId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n        Path = \"app/api_credentials\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.GetOkmsSecret(ctx, \u0026ovh.GetOkmsSecretArgs{\n\t\t\tOkmsId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n\t\t\tPath:   \"app/api_credentials\",\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.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetOkmsSecretArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 latest = OvhFunctions.getOkmsSecret(GetOkmsSecretArgs.builder()\n            .okmsId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n            .path(\"app/api_credentials\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  latest:\n    fn::invoke:\n      function: ovh:getOkmsSecret\n      arguments:\n        okmsId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n        path: app/api_credentials\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nGet the latest secret version including its data:\n\n","inputs":{"description":"A collection of arguments for invoking getOkmsSecret.\n","properties":{"includeData":{"type":"boolean"},"okmsId":{"type":"string"},"path":{"type":"string"},"version":{"type":"number"}},"type":"object","required":["okmsId","path"]},"outputs":{"description":"A collection of values returned by getOkmsSecret.\n","properties":{"data":{"secret":true,"type":"string"},"iam":{"$ref":"#/types/ovh:index/getOkmsSecretIam:getOkmsSecretIam"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"includeData":{"type":"boolean"},"metadata":{"$ref":"#/types/ovh:index/getOkmsSecretMetadata:getOkmsSecretMetadata"},"okmsId":{"type":"string"},"path":{"type":"string"},"version":{"type":"number"}},"required":["data","iam","metadata","okmsId","path","version","id"],"type":"object"}},"ovh:index/getOvhcloudConnectConfigPopDatacenterExtras:getOvhcloudConnectConfigPopDatacenterExtras":{"description":"Use this data source to retrieve information about an Ovhcloud Connect Datacenter Extra configuration\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 extraCfgs = ovh.getOvhcloudConnectConfigPopDatacenterExtras({\n    serviceName: \"XXX\",\n    configPopId: \"YYY\",\n    configDatacenterId: \"ZZZ\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nextra_cfgs = ovh.get_ovhcloud_connect_config_pop_datacenter_extras(service_name=\"XXX\",\n    config_pop_id=\"YYY\",\n    config_datacenter_id=\"ZZZ\")\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 extraCfgs = Ovh.GetOvhcloudConnectConfigPopDatacenterExtras.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        ConfigPopId = \"YYY\",\n        ConfigDatacenterId = \"ZZZ\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.GetOvhcloudConnectConfigPopDatacenterExtras(ctx, \u0026ovh.GetOvhcloudConnectConfigPopDatacenterExtrasArgs{\n\t\t\tServiceName:        \"XXX\",\n\t\t\tConfigPopId:        \"YYY\",\n\t\t\tConfigDatacenterId: \"ZZZ\",\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.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetOvhcloudConnectConfigPopDatacenterExtrasArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 extraCfgs = OvhFunctions.getOvhcloudConnectConfigPopDatacenterExtras(GetOvhcloudConnectConfigPopDatacenterExtrasArgs.builder()\n            .serviceName(\"XXX\")\n            .configPopId(\"YYY\")\n            .configDatacenterId(\"ZZZ\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  extraCfgs:\n    fn::invoke:\n      function: ovh:getOvhcloudConnectConfigPopDatacenterExtras\n      arguments:\n        serviceName: XXX\n        configPopId: YYY\n        configDatacenterId: ZZZ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getOvhcloudConnectConfigPopDatacenterExtras.\n","properties":{"configDatacenterId":{"type":"number","description":"ID of the Datacenter Configuration\n"},"configPopId":{"type":"number","description":"ID of the Pop Configuration\n"},"serviceName":{"type":"string","description":"Service name\n"}},"type":"object","required":["configDatacenterId","configPopId","serviceName"]},"outputs":{"description":"A collection of values returned by getOvhcloudConnectConfigPopDatacenterExtras.\n","properties":{"configDatacenterId":{"description":"ID of the Datacenter Configuration\n","type":"number"},"configPopId":{"description":"ID of the Pop Configuration\n","type":"number"},"extraConfigs":{"items":{"$ref":"#/types/ovh:index/getOvhcloudConnectConfigPopDatacenterExtrasExtraConfig:getOvhcloudConnectConfigPopDatacenterExtrasExtraConfig"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"serviceName":{"description":"Service name\n","type":"string"}},"required":["configDatacenterId","configPopId","extraConfigs","serviceName","id"],"type":"object"}},"ovh:index/getOvhcloudConnectConfigPopDatacenters:getOvhcloudConnectConfigPopDatacenters":{"description":"Use this data source to retrieve information about an Ovhcloud Connect Datacenter configuration\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 datacenterCfgs = ovh.getOvhcloudConnectConfigPopDatacenters({\n    serviceName: \"XXX\",\n    configPopId: \"YYY\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ndatacenter_cfgs = ovh.get_ovhcloud_connect_config_pop_datacenters(service_name=\"XXX\",\n    config_pop_id=\"YYY\")\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 datacenterCfgs = Ovh.GetOvhcloudConnectConfigPopDatacenters.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n        ConfigPopId = \"YYY\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.GetOvhcloudConnectConfigPopDatacenters(ctx, \u0026ovh.GetOvhcloudConnectConfigPopDatacentersArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tConfigPopId: \"YYY\",\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.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetOvhcloudConnectConfigPopDatacentersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 datacenterCfgs = OvhFunctions.getOvhcloudConnectConfigPopDatacenters(GetOvhcloudConnectConfigPopDatacentersArgs.builder()\n            .serviceName(\"XXX\")\n            .configPopId(\"YYY\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  datacenterCfgs:\n    fn::invoke:\n      function: ovh:getOvhcloudConnectConfigPopDatacenters\n      arguments:\n        serviceName: XXX\n        configPopId: YYY\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getOvhcloudConnectConfigPopDatacenters.\n","properties":{"configPopId":{"type":"number","description":"ID of the Pop Configuration\n"},"serviceName":{"type":"string","description":"Service name\n"}},"type":"object","required":["configPopId","serviceName"]},"outputs":{"description":"A collection of values returned by getOvhcloudConnectConfigPopDatacenters.\n","properties":{"configPopId":{"description":"ID of the Pop Configuration\n","type":"number"},"datacenterConfigs":{"items":{"$ref":"#/types/ovh:index/getOvhcloudConnectConfigPopDatacentersDatacenterConfig:getOvhcloudConnectConfigPopDatacentersDatacenterConfig"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"serviceName":{"description":"Service name\n","type":"string"}},"required":["configPopId","datacenterConfigs","serviceName","id"],"type":"object"}},"ovh:index/getOvhcloudConnectConfigPops:getOvhcloudConnectConfigPops":{"description":"Use this data source to retrieve information about an Ovhcloud Connect Pop configuration\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 popCfgs = ovh.getOvhcloudConnectConfigPops({\n    serviceName: \"XXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\npop_cfgs = ovh.get_ovhcloud_connect_config_pops(service_name=\"XXX\")\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 popCfgs = Ovh.GetOvhcloudConnectConfigPops.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.GetOvhcloudConnectConfigPops(ctx, \u0026ovh.GetOvhcloudConnectConfigPopsArgs{\n\t\t\tServiceName: \"XXX\",\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.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetOvhcloudConnectConfigPopsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 popCfgs = OvhFunctions.getOvhcloudConnectConfigPops(GetOvhcloudConnectConfigPopsArgs.builder()\n            .serviceName(\"XXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  popCfgs:\n    fn::invoke:\n      function: ovh:getOvhcloudConnectConfigPops\n      arguments:\n        serviceName: XXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getOvhcloudConnectConfigPops.\n","properties":{"serviceName":{"type":"string","description":"Service name\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getOvhcloudConnectConfigPops.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"popConfigs":{"items":{"$ref":"#/types/ovh:index/getOvhcloudConnectConfigPopsPopConfig:getOvhcloudConnectConfigPopsPopConfig"},"type":"array"},"serviceName":{"description":"Service name\n","type":"string"}},"required":["popConfigs","serviceName","id"],"type":"object"}},"ovh:index/getOvhcloudConnectDatacenters:getOvhcloudConnectDatacenters":{"description":"Use this data source to retrieve information about Datacenters for an Ovhcloud Connect product.\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 dcs = ovh.getOvhcloudConnectDatacenters({\n    serviceName: \"XXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ndcs = ovh.get_ovhcloud_connect_datacenters(service_name=\"XXX\")\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 dcs = Ovh.GetOvhcloudConnectDatacenters.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.GetOvhcloudConnectDatacenters(ctx, \u0026ovh.GetOvhcloudConnectDatacentersArgs{\n\t\t\tServiceName: \"XXX\",\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.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetOvhcloudConnectDatacentersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 dcs = OvhFunctions.getOvhcloudConnectDatacenters(GetOvhcloudConnectDatacentersArgs.builder()\n            .serviceName(\"XXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  dcs:\n    fn::invoke:\n      function: ovh:getOvhcloudConnectDatacenters\n      arguments:\n        serviceName: XXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getOvhcloudConnectDatacenters.\n","properties":{"serviceName":{"type":"string","description":"Service name\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getOvhcloudConnectDatacenters.\n","properties":{"datacenters":{"items":{"$ref":"#/types/ovh:index/getOvhcloudConnectDatacentersDatacenter:getOvhcloudConnectDatacentersDatacenter"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"serviceName":{"description":"Service name\n","type":"string"}},"required":["datacenters","serviceName","id"],"type":"object"}},"ovh:index/getServer:getServer":{"description":"Use this data source to retrieve 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 \"@ovhcloud/pulumi-ovh\";\n\nconst server = ovh.getServer({\n    serviceName: \"XXXXXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nserver = ovh.get_server(service_name=\"XXXXXX\")\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 = \"XXXXXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.GetServer(ctx, \u0026ovh.GetServerArgs{\n\t\t\tServiceName: \"XXXXXX\",\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.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var server = OvhFunctions.getServer(GetServerArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  server:\n    fn::invoke:\n      function: ovh:getServer\n      arguments:\n        serviceName: XXXXXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServer.\n","properties":{"serviceName":{"type":"string","description":"The service_name of your dedicated server.\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getServer.\n","properties":{"ServerURN":{"description":"URN of the dedicated server instance\n","type":"string"},"availabilityZone":{"description":"Dedicated AZ localisation\n","type":"string"},"bootId":{"description":"Boot id of the server\n","type":"integer"},"bootScript":{"description":"Boot script of the server\n","type":"string"},"commercialRange":{"description":"Dedicated server commercial range\n","type":"string"},"datacenter":{"description":"Dedicated datacenter localisation (bhs1,bhs2,...)\n","type":"string"},"displayName":{"description":"Dedicated server display name\n","type":"string"},"efiBootloaderPath":{"description":"Path of the EFI bootloader of the dedicated server\n","type":"string"},"enabledPublicVnis":{"description":"List of enabled public VNI uuids\n","items":{"type":"string"},"type":"array"},"enabledVrackAggregationVnis":{"description":"List of enabled vrack_aggregation VNI uuids\n","items":{"type":"string"},"type":"array"},"enabledVrackVnis":{"description":"List of enabled vrack VNI uuids\n","items":{"type":"string"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"ip":{"description":"Dedicated server ip (IPv4)\n","type":"string"},"ips":{"description":"Dedicated server ip blocks\n","items":{"type":"string"},"type":"array"},"linkSpeed":{"description":"Link speed of the server\n","type":"integer"},"monitoring":{"description":"Icmp monitoring state\n","type":"boolean"},"name":{"description":"User defined VirtualNetworkInterface name\n","type":"string"},"newUpgradeSystem":{"type":"boolean"},"noIntervention":{"description":"Prevent datacenter intervention\n","type":"boolean"},"os":{"description":"Operating system\n","type":"string"},"powerState":{"description":"Power state of the server (poweroff, poweron)\n","type":"string"},"professionalUse":{"description":"Does this server have professional use option\n","type":"boolean"},"rack":{"description":"Rack id of the server\n","type":"string"},"region":{"description":"Dedicated region localisation\n","type":"string"},"rescueMail":{"description":"Rescue mail of the server\n","type":"string"},"rescueSshKey":{"description":"Public SSH Key used in the rescue mode\n","type":"string"},"reverse":{"description":"Dedicated server reverse\n","type":"string"},"rootDevice":{"description":"Root device of the server\n","type":"string"},"serverId":{"description":"Server id\n","type":"integer"},"serviceName":{"type":"string"},"state":{"description":"Error, hacked, hackedBlocked, ok\n","type":"string"},"supportLevel":{"description":"Dedicated server support level (critical, fastpath, gs, pro)\n","type":"string"},"vnis":{"description":"The list of Virtualnetworkinterface associated with this server\n","items":{"$ref":"#/types/ovh:index/getServerVni:getServerVni"},"type":"array"}},"required":["availabilityZone","bootId","bootScript","commercialRange","datacenter","displayName","efiBootloaderPath","enabledPublicVnis","enabledVrackAggregationVnis","enabledVrackVnis","ip","ips","linkSpeed","monitoring","name","newUpgradeSystem","noIntervention","os","powerState","professionalUse","rack","region","rescueMail","rescueSshKey","reverse","rootDevice","serverId","serviceName","state","supportLevel","ServerURN","vnis","id"],"type":"object"}},"ovh:index/getServers:getServers":{"description":"Use this data source to get the list of dedicated servers 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 \"@ovhcloud/pulumi-ovh\";\n\nconst servers = ovh.getServers({});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nservers = ovh.get_servers()\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 servers = Ovh.GetServers.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.GetServers(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.OvhFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 servers = OvhFunctions.getServers(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n    }\n}\n```\n```yaml\nvariables:\n  servers:\n    fn::invoke:\n      function: ovh:getServers\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getServers.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"results":{"description":"The list of dedicated servers IDs associated with your OVHcloud Account.\n","items":{"type":"string"},"type":"array"}},"required":["results","id"],"type":"object"}},"ovh:index/getStorageEfs:getStorageEfs":{"description":"Get information about an EFS service.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst efs = ovh.getStorageEfs({\n    serviceName: \"XXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nefs = ovh.get_storage_efs(service_name=\"XXX\")\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 efs = Ovh.GetStorageEfs.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.LookupStorageEfs(ctx, \u0026ovh.LookupStorageEfsArgs{\n\t\t\tServiceName: \"XXX\",\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.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetStorageEfsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 efs = OvhFunctions.getStorageEfs(GetStorageEfsArgs.builder()\n            .serviceName(\"XXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  efs:\n    fn::invoke:\n      function: ovh:getStorageEfs\n      arguments:\n        serviceName: XXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStorageEfs.\n","properties":{"serviceName":{"type":"string","description":"Service name\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getStorageEfs.\n","properties":{"createdAt":{"description":"Service creation date\n","type":"string"},"iam":{"$ref":"#/types/ovh:index/getStorageEfsIam:getStorageEfsIam","description":"IAM resource metadata\n"},"id":{"description":"Service ID\n","type":"string"},"name":{"description":"Service name\n","type":"string"},"performanceLevel":{"description":"Service performance level\n","type":"string"},"product":{"description":"Product name\n","type":"string"},"quota":{"description":"Service quota\n","type":"number"},"region":{"description":"Service region\n","type":"string"},"serviceName":{"description":"Service name\n","type":"string"},"status":{"description":"Service status\n","type":"string"}},"required":["createdAt","iam","id","name","performanceLevel","product","quota","region","serviceName","status"],"type":"object"}},"ovh:index/getStorageEfsShareAccessPath:getStorageEfsShareAccessPath":{"description":"Get access path detailed information.\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 efs = ovh.getStorageEfs({\n    serviceName: \"XXX\",\n});\nconst accessPath = efs.then(efs =\u003e ovh.getStorageEfsShareAccessPath({\n    serviceName: efs.serviceName,\n    shareId: \"XXX\",\n    id: \"XXX\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nefs = ovh.get_storage_efs(service_name=\"XXX\")\naccess_path = ovh.get_storage_efs_share_access_path(service_name=efs.service_name,\n    share_id=\"XXX\",\n    id=\"XXX\")\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 efs = Ovh.GetStorageEfs.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n    });\n\n    var accessPath = Ovh.GetStorageEfsShareAccessPath.Invoke(new()\n    {\n        ServiceName = efs.Apply(getStorageEfsResult =\u003e getStorageEfsResult.ServiceName),\n        ShareId = \"XXX\",\n        Id = \"XXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tefs, err := ovh.LookupStorageEfs(ctx, \u0026ovh.LookupStorageEfsArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ovh.GetStorageEfsShareAccessPath(ctx, \u0026ovh.GetStorageEfsShareAccessPathArgs{\n\t\t\tServiceName: efs.ServiceName,\n\t\t\tShareId:     \"XXX\",\n\t\t\tId:          \"XXX\",\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.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetStorageEfsArgs;\nimport com.pulumi.ovh.inputs.GetStorageEfsShareAccessPathArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 efs = OvhFunctions.getStorageEfs(GetStorageEfsArgs.builder()\n            .serviceName(\"XXX\")\n            .build());\n\n        final var accessPath = OvhFunctions.getStorageEfsShareAccessPath(GetStorageEfsShareAccessPathArgs.builder()\n            .serviceName(efs.serviceName())\n            .shareId(\"XXX\")\n            .id(\"XXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  efs:\n    fn::invoke:\n      function: ovh:getStorageEfs\n      arguments:\n        serviceName: XXX\n  accessPath:\n    fn::invoke:\n      function: ovh:getStorageEfsShareAccessPath\n      arguments:\n        serviceName: ${efs.serviceName}\n        shareId: XXX\n        id: XXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStorageEfsShareAccessPath.\n","properties":{"id":{"type":"string","description":"Access path ID\n"},"serviceName":{"type":"string","description":"Service name\n"},"shareId":{"type":"string","description":"Share ID\n"}},"type":"object","required":["id","serviceName","shareId"]},"outputs":{"description":"A collection of values returned by getStorageEfsShareAccessPath.\n","properties":{"id":{"description":"Access path ID\n","type":"string"},"path":{"description":"Access path\n","type":"string"},"preferred":{"description":"Is this the preferred access path?\n","type":"boolean"},"serviceName":{"description":"Service name\n","type":"string"},"shareId":{"description":"Share ID\n","type":"string"}},"required":["id","path","preferred","serviceName","shareId"],"type":"object"}},"ovh:index/getStorageEfsShareAccessPaths:getStorageEfsShareAccessPaths":{"description":"List access paths for a share belonging to an EFS service.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst efs = ovh.getStorageEfs({\n    serviceName: \"XXX\",\n});\nconst accessPaths = efs.then(efs =\u003e ovh.getStorageEfsShareAccessPaths({\n    serviceName: efs.serviceName,\n    shareId: \"XXX\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nefs = ovh.get_storage_efs(service_name=\"XXX\")\naccess_paths = ovh.get_storage_efs_share_access_paths(service_name=efs.service_name,\n    share_id=\"XXX\")\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 efs = Ovh.GetStorageEfs.Invoke(new()\n    {\n        ServiceName = \"XXX\",\n    });\n\n    var accessPaths = Ovh.GetStorageEfsShareAccessPaths.Invoke(new()\n    {\n        ServiceName = efs.Apply(getStorageEfsResult =\u003e getStorageEfsResult.ServiceName),\n        ShareId = \"XXX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tefs, err := ovh.LookupStorageEfs(ctx, \u0026ovh.LookupStorageEfsArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ovh.GetStorageEfsShareAccessPaths(ctx, \u0026ovh.GetStorageEfsShareAccessPathsArgs{\n\t\t\tServiceName: efs.ServiceName,\n\t\t\tShareId:     \"XXX\",\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.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetStorageEfsArgs;\nimport com.pulumi.ovh.inputs.GetStorageEfsShareAccessPathsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 efs = OvhFunctions.getStorageEfs(GetStorageEfsArgs.builder()\n            .serviceName(\"XXX\")\n            .build());\n\n        final var accessPaths = OvhFunctions.getStorageEfsShareAccessPaths(GetStorageEfsShareAccessPathsArgs.builder()\n            .serviceName(efs.serviceName())\n            .shareId(\"XXX\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  efs:\n    fn::invoke:\n      function: ovh:getStorageEfs\n      arguments:\n        serviceName: XXX\n  accessPaths:\n    fn::invoke:\n      function: ovh:getStorageEfsShareAccessPaths\n      arguments:\n        serviceName: ${efs.serviceName}\n        shareId: XXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStorageEfsShareAccessPaths.\n","properties":{"serviceName":{"type":"string","description":"Service name\n"},"shareId":{"type":"string","description":"Share ID\n"}},"type":"object","required":["serviceName","shareId"]},"outputs":{"description":"A collection of values returned by getStorageEfsShareAccessPaths.\n","properties":{"accessPaths":{"items":{"$ref":"#/types/ovh:index/getStorageEfsShareAccessPathsAccessPath:getStorageEfsShareAccessPathsAccessPath"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"serviceName":{"description":"Service name\n","type":"string"},"shareId":{"description":"Share ID\n","type":"string"}},"required":["accessPaths","serviceName","shareId","id"],"type":"object"}},"ovh:index/getVrackNetworks:getVrackNetworks":{"description":"Use this data source to get the list of Vrack network ids available for your IPLoadbalancer 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 \"@ovhcloud/pulumi-ovh\";\n\nconst lbNetworks = ovh.getVrackNetworks({\n    serviceName: \"XXXXXX\",\n    subnet: \"10.0.0.0/24\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlb_networks = ovh.get_vrack_networks(service_name=\"XXXXXX\",\n    subnet=\"10.0.0.0/24\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var lbNetworks = Ovh.GetVrackNetworks.Invoke(new()\n    {\n        ServiceName = \"XXXXXX\",\n        Subnet = \"10.0.0.0/24\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/v2/go/ovh\"\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 := ovh.GetVrackNetworks(ctx, \u0026ovh.GetVrackNetworksArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tSubnet:      pulumi.StringRef(\"10.0.0.0/24\"),\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.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetVrackNetworksArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 lbNetworks = OvhFunctions.getVrackNetworks(GetVrackNetworksArgs.builder()\n            .serviceName(\"XXXXXX\")\n            .subnet(\"10.0.0.0/24\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  lbNetworks:\n    fn::invoke:\n      function: ovh:getVrackNetworks\n      arguments:\n        serviceName: XXXXXX\n        subnet: 10.0.0.0/24\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVrackNetworks.\n","properties":{"serviceName":{"type":"string","description":"The internal name of your IP load balancing\n"},"subnet":{"type":"string","description":"Filters networks on the subnet.\n"},"vlanId":{"type":"integer","description":"Filters networks on the vlan id.\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getVrackNetworks.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"results":{"description":"The list of vrack network ids.\n","items":{"type":"integer"},"type":"array"},"serviceName":{"type":"string"},"subnet":{"type":"string"},"vlanId":{"type":"integer"}},"required":["results","serviceName","id"],"type":"object"}},"ovh:index/getVrackservices:getVrackservices":{"description":"Retrieve a vRack Services\n","inputs":{"description":"A collection of arguments for invoking getVrackservices.\n","properties":{"vrackServicesId":{"type":"string","description":"Vrack services ID\n"}},"type":"object","required":["vrackServicesId"]},"outputs":{"description":"A collection of values returned by getVrackservices.\n","properties":{"checksum":{"description":"Computed hash used to control concurrent modification requests. Here, it represents the current target specification value\n","type":"string"},"createdAt":{"description":"Date of the vRack Services delivery\n","type":"string"},"currentState":{"$ref":"#/types/ovh:index/getVrackservicesCurrentState:getVrackservicesCurrentState","description":"Current configuration applied to the vRack Services\n"},"currentTasks":{"description":"Asynchronous operations ongoing on the vRack Services\n","items":{"$ref":"#/types/ovh:index/getVrackservicesCurrentTask:getVrackservicesCurrentTask"},"type":"array"},"iam":{"$ref":"#/types/ovh:index/getVrackservicesIam:getVrackservicesIam","description":"IAM resource metadata\n"},"id":{"description":"Unique identifier\n","type":"string"},"resourceStatus":{"description":"Reflects the readiness of the vRack Services. A new target specification request will be accepted only in `READY` status\n","type":"string"},"targetSpec":{"$ref":"#/types/ovh:index/getVrackservicesTargetSpec:getVrackservicesTargetSpec","description":"Last target specification of the vRack Services\n"},"updatedAt":{"description":"Date of the Last vRack Services update\n","type":"string"},"vrackServicesId":{"description":"Vrack services ID\n","type":"string"}},"required":["checksum","createdAt","currentState","currentTasks","iam","id","resourceStatus","targetSpec","updatedAt","vrackServicesId"],"type":"object"}},"ovh:index/getVrackservicess:getVrackservicess":{"description":"List all vRack Services\n","outputs":{"description":"A collection of values returned by getVrackservicess.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.\n","type":"string"},"vrackservicesses":{"items":{"$ref":"#/types/ovh:index/getVrackservicessVrackservicess:getVrackservicessVrackservicess"},"type":"array"}},"required":["vrackservicesses","id"],"type":"object"}},"pulumi:providers:ovh/terraformConfig":{"description":"This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.","inputs":{"properties":{"__self__":{"type":"ref","$ref":"#/provider"}},"type":"pulumi:providers:ovh/terraformConfig","required":["__self__"]},"outputs":{"properties":{"result":{"additionalProperties":{"$ref":"pulumi.json#/Any"},"type":"object"}},"required":["result"],"type":"object"}}}}