diff --git a/.pulumi-java-gen.version b/.pulumi-java-gen.version new file mode 100644 index 00000000..6f060dcb --- /dev/null +++ b/.pulumi-java-gen.version @@ -0,0 +1 @@ +0.9.9 \ No newline at end of file diff --git a/examples/go.sum b/examples/go.sum new file mode 100644 index 00000000..e69de29b diff --git a/provider/cmd/pulumi-resource-ovh/bridge-metadata.json b/provider/cmd/pulumi-resource-ovh/bridge-metadata.json new file mode 100644 index 00000000..5a3664b4 --- /dev/null +++ b/provider/cmd/pulumi-resource-ovh/bridge-metadata.json @@ -0,0 +1,1977 @@ +{ + "mux": { + "resources": { + "ovh:CloudProject/containerRegistry:ContainerRegistry": 0, + "ovh:CloudProject/containerRegistryIPRestrictionsManagement:ContainerRegistryIPRestrictionsManagement": 0, + "ovh:CloudProject/containerRegistryIPRestrictionsRegistry:ContainerRegistryIPRestrictionsRegistry": 0, + "ovh:CloudProject/containerRegistryOIDC:ContainerRegistryOIDC": 0, + "ovh:CloudProject/containerRegistryUser:ContainerRegistryUser": 0, + "ovh:CloudProject/database:Database": 0, + "ovh:CloudProject/failoverIpAttach:FailoverIpAttach": 0, + "ovh:CloudProject/kube:Kube": 0, + "ovh:CloudProject/kubeIpRestrictions:KubeIpRestrictions": 0, + "ovh:CloudProject/kubeNodePool:KubeNodePool": 0, + "ovh:CloudProject/kubeOidc:KubeOidc": 0, + "ovh:CloudProject/networkPrivate:NetworkPrivate": 0, + "ovh:CloudProject/networkPrivateSubnet:NetworkPrivateSubnet": 0, + "ovh:CloudProject/project:Project": 0, + "ovh:CloudProject/regionStoragePresign:RegionStoragePresign": 0, + "ovh:CloudProject/s3Credential:S3Credential": 0, + "ovh:CloudProject/s3Policy:S3Policy": 0, + "ovh:CloudProject/user:User": 0, + "ovh:CloudProject/workflowBackup:WorkflowBackup": 0, + "ovh:CloudProjectDatabase/databaseInstance:DatabaseInstance": 0, + "ovh:CloudProjectDatabase/integration:Integration": 0, + "ovh:CloudProjectDatabase/ipRestriction:IpRestriction": 0, + "ovh:CloudProjectDatabase/kafkaAcl:KafkaAcl": 0, + "ovh:CloudProjectDatabase/kafkaSchemaRegistryAcl:KafkaSchemaRegistryAcl": 0, + "ovh:CloudProjectDatabase/kafkaTopic:KafkaTopic": 0, + "ovh:CloudProjectDatabase/m3DbNamespace:M3DbNamespace": 0, + "ovh:CloudProjectDatabase/m3DbUser:M3DbUser": 0, + "ovh:CloudProjectDatabase/mongoDbUser:MongoDbUser": 0, + "ovh:CloudProjectDatabase/opensearchPattern:OpensearchPattern": 0, + "ovh:CloudProjectDatabase/opensearchUser:OpensearchUser": 0, + "ovh:CloudProjectDatabase/postgresSqlConnectionPool:PostgresSqlConnectionPool": 0, + "ovh:CloudProjectDatabase/postgresSqlUser:PostgresSqlUser": 0, + "ovh:CloudProjectDatabase/redisUser:RedisUser": 0, + "ovh:CloudProjectDatabase/user:User": 0, + "ovh:Dbaas/logsCluster:LogsCluster": 0, + "ovh:Dbaas/logsInput:LogsInput": 0, + "ovh:Dbaas/logsOutputGraylogStream:LogsOutputGraylogStream": 0, + "ovh:Dedicated/cephAcl:CephAcl": 0, + "ovh:Dedicated/nasHAPartition:NasHAPartition": 0, + "ovh:Dedicated/nasHAPartitionAccess:NasHAPartitionAccess": 0, + "ovh:Dedicated/nasHAPartitionSnapshot:NasHAPartitionSnapshot": 0, + "ovh:Dedicated/serverInstallTask:ServerInstallTask": 0, + "ovh:Dedicated/serverNetworking:ServerNetworking": 0, + "ovh:Dedicated/serverRebootTask:ServerRebootTask": 0, + "ovh:Dedicated/serverUpdate:ServerUpdate": 0, + "ovh:Domain/zone:Zone": 0, + "ovh:Domain/zoneRecord:ZoneRecord": 0, + "ovh:Domain/zoneRedirection:ZoneRedirection": 0, + "ovh:Hosting/privateDatabase:PrivateDatabase": 0, + "ovh:Hosting/privateDatabaseAllowlist:PrivateDatabaseAllowlist": 0, + "ovh:Hosting/privateDatabaseDb:PrivateDatabaseDb": 0, + "ovh:Hosting/privateDatabaseUser:PrivateDatabaseUser": 0, + "ovh:Hosting/privateDatabaseUserGrant:PrivateDatabaseUserGrant": 0, + "ovh:Iam/permissionsGroup:PermissionsGroup": 0, + "ovh:Iam/policy:Policy": 0, + "ovh:Iam/resourceGroup:ResourceGroup": 0, + "ovh:Ip/ipService:IpService": 0, + "ovh:Ip/reverse:Reverse": 0, + "ovh:IpLoadBalancing/httpFarm:HttpFarm": 0, + "ovh:IpLoadBalancing/httpFarmServer:HttpFarmServer": 0, + "ovh:IpLoadBalancing/httpFrontend:HttpFrontend": 0, + "ovh:IpLoadBalancing/httpRoute:HttpRoute": 0, + "ovh:IpLoadBalancing/httpRouteRule:HttpRouteRule": 0, + "ovh:IpLoadBalancing/loadBalancer:LoadBalancer": 0, + "ovh:IpLoadBalancing/refresh:Refresh": 0, + "ovh:IpLoadBalancing/tcpFarm:TcpFarm": 0, + "ovh:IpLoadBalancing/tcpFarmServer:TcpFarmServer": 0, + "ovh:IpLoadBalancing/tcpFrontend:TcpFrontend": 0, + "ovh:IpLoadBalancing/tcpRoute:TcpRoute": 0, + "ovh:IpLoadBalancing/tcpRouteRule:TcpRouteRule": 0, + "ovh:IpLoadBalancing/vrackNetwork:VrackNetwork": 0, + "ovh:Me/aPIOAuth2Client:APIOAuth2Client": 0, + "ovh:Me/identityGroup:IdentityGroup": 0, + "ovh:Me/identityUser:IdentityUser": 0, + "ovh:Me/installationTemplate:InstallationTemplate": 0, + "ovh:Me/installationTemplatePartitionScheme:InstallationTemplatePartitionScheme": 0, + "ovh:Me/installationTemplatePartitionSchemeHardwareRaid:InstallationTemplatePartitionSchemeHardwareRaid": 0, + "ovh:Me/installationTemplatePartitionSchemePartition:InstallationTemplatePartitionSchemePartition": 0, + "ovh:Me/ipxeScript:IpxeScript": 0, + "ovh:Me/sshKey:SshKey": 0, + "ovh:Vrack/cloudProject:CloudProject": 0, + "ovh:Vrack/dedicatedServer:DedicatedServer": 0, + "ovh:Vrack/dedicatedServerInterface:DedicatedServerInterface": 0, + "ovh:Vrack/ipAddress:IpAddress": 0, + "ovh:Vrack/ipLoadbalancing:IpLoadbalancing": 0, + "ovh:Vrack/vrack:Vrack": 0 + }, + "functions": { + "ovh:CloudProject/getCapabilitiesContainerFilter:getCapabilitiesContainerFilter": 0, + "ovh:CloudProject/getCapabilitiesContainerRegistry:getCapabilitiesContainerRegistry": 0, + "ovh:CloudProject/getContainerRegistries:getContainerRegistries": 0, + "ovh:CloudProject/getContainerRegistry:getContainerRegistry": 0, + "ovh:CloudProject/getContainerRegistryIPRestrictionsManagement:getContainerRegistryIPRestrictionsManagement": 0, + "ovh:CloudProject/getContainerRegistryIPRestrictionsRegistry:getContainerRegistryIPRestrictionsRegistry": 0, + "ovh:CloudProject/getContainerRegistryOIDC:getContainerRegistryOIDC": 0, + "ovh:CloudProject/getContainerRegistryUsers:getContainerRegistryUsers": 0, + "ovh:CloudProject/getFailoverIpAttach:getFailoverIpAttach": 0, + "ovh:CloudProject/getKube:getKube": 0, + "ovh:CloudProject/getKubeIpRestrictions:getKubeIpRestrictions": 0, + "ovh:CloudProject/getKubeNodePool:getKubeNodePool": 0, + "ovh:CloudProject/getKubeNodePoolNodes:getKubeNodePoolNodes": 0, + "ovh:CloudProject/getKubeNodes:getKubeNodes": 0, + "ovh:CloudProject/getKubeOidc:getKubeOidc": 0, + "ovh:CloudProject/getM3dbNamespace:getM3dbNamespace": 0, + "ovh:CloudProject/getM3dbNamespaces:getM3dbNamespaces": 0, + "ovh:CloudProject/getM3dbUser:getM3dbUser": 0, + "ovh:CloudProject/getMongoDbUser:getMongoDbUser": 0, + "ovh:CloudProject/getOpenSearchPattern:getOpenSearchPattern": 0, + "ovh:CloudProject/getOpenSearchPatterns:getOpenSearchPatterns": 0, + "ovh:CloudProject/getOpenSearchUser:getOpenSearchUser": 0, + "ovh:CloudProject/getRedisUser:getRedisUser": 0, + "ovh:CloudProject/getRegion:getRegion": 0, + "ovh:CloudProject/getRegions:getRegions": 0, + "ovh:CloudProject/getUser:getUser": 0, + "ovh:CloudProject/getUserS3Credential:getUserS3Credential": 0, + "ovh:CloudProject/getUserS3Credentials:getUserS3Credentials": 0, + "ovh:CloudProject/getUserS3Policy:getUserS3Policy": 0, + "ovh:CloudProject/getUsers:getUsers": 0, + "ovh:CloudProject/getVRack:getVRack": 0, + "ovh:CloudProjectDatabase/getCapabilities:getCapabilities": 0, + "ovh:CloudProjectDatabase/getCertificates:getCertificates": 0, + "ovh:CloudProjectDatabase/getDatabase:getDatabase": 0, + "ovh:CloudProjectDatabase/getDatabaseInstance:getDatabaseInstance": 0, + "ovh:CloudProjectDatabase/getDatabaseInstances:getDatabaseInstances": 0, + "ovh:CloudProjectDatabase/getDatabaseIntegration:getDatabaseIntegration": 0, + "ovh:CloudProjectDatabase/getDatabaseIntegrations:getDatabaseIntegrations": 0, + "ovh:CloudProjectDatabase/getDatabases:getDatabases": 0, + "ovh:CloudProjectDatabase/getIpRestrictions:getIpRestrictions": 1, + "ovh:CloudProjectDatabase/getKafkaAcl:getKafkaAcl": 0, + "ovh:CloudProjectDatabase/getKafkaAcls:getKafkaAcls": 0, + "ovh:CloudProjectDatabase/getKafkaSchemaRegistryAcl:getKafkaSchemaRegistryAcl": 0, + "ovh:CloudProjectDatabase/getKafkaSchemaRegistryAcls:getKafkaSchemaRegistryAcls": 0, + "ovh:CloudProjectDatabase/getKafkaTopic:getKafkaTopic": 0, + "ovh:CloudProjectDatabase/getKafkaTopics:getKafkaTopics": 0, + "ovh:CloudProjectDatabase/getKafkaUserAccess:getKafkaUserAccess": 0, + "ovh:CloudProjectDatabase/getPostgresSqlConnectionPool:getPostgresSqlConnectionPool": 0, + "ovh:CloudProjectDatabase/getPostgresSqlUser:getPostgresSqlUser": 0, + "ovh:CloudProjectDatabase/getUser:getUser": 0, + "ovh:CloudProjectDatabase/getUsers:getUsers": 0, + "ovh:Dbaas/getLogsCluster:getLogsCluster": 0, + "ovh:Dbaas/getLogsClusters:getLogsClusters": 0, + "ovh:Dbaas/getLogsInputEngine:getLogsInputEngine": 0, + "ovh:Dbaas/getLogsOutputGraylogStream:getLogsOutputGraylogStream": 0, + "ovh:Dedicated/getCeph:getCeph": 0, + "ovh:Dedicated/getNasHA:getNasHA": 0, + "ovh:Dedicated/getServerBoots:getServerBoots": 0, + "ovh:Domain/getZone:getZone": 0, + "ovh:Hosting/getPrivateDatabase:getPrivateDatabase": 0, + "ovh:Hosting/getPrivateDatabaseAllowlist:getPrivateDatabaseAllowlist": 0, + "ovh:Hosting/getPrivateDatabaseDb:getPrivateDatabaseDb": 0, + "ovh:Hosting/getPrivateDatabaseUser:getPrivateDatabaseUser": 0, + "ovh:Hosting/getPrivateDatabaseUserGrant:getPrivateDatabaseUserGrant": 0, + "ovh:Iam/getPermissionsGroup:getPermissionsGroup": 0, + "ovh:Iam/getPermissionsGroups:getPermissionsGroups": 0, + "ovh:Iam/getPolicies:getPolicies": 0, + "ovh:Iam/getPolicy:getPolicy": 0, + "ovh:Iam/getReferenceActions:getReferenceActions": 0, + "ovh:Iam/getReferenceResourceType:getReferenceResourceType": 0, + "ovh:Iam/getResourceGroup:getResourceGroup": 0, + "ovh:Iam/getResourceGroups:getResourceGroups": 0, + "ovh:Ip/getService:getService": 0, + "ovh:IpLoadBalancing/getIpLoadBalancing:getIpLoadBalancing": 0, + "ovh:IpLoadBalancing/getVrackNetwork:getVrackNetwork": 0, + "ovh:Me/getAPIOAuth2Client:getAPIOAuth2Client": 0, + "ovh:Me/getAPIOAuth2Clients:getAPIOAuth2Clients": 0, + "ovh:Me/getIdentityGroup:getIdentityGroup": 0, + "ovh:Me/getIdentityGroups:getIdentityGroups": 0, + "ovh:Me/getIdentityUser:getIdentityUser": 0, + "ovh:Me/getIdentityUsers:getIdentityUsers": 0, + "ovh:Me/getInstallationTemplate:getInstallationTemplate": 0, + "ovh:Me/getInstallationTemplates:getInstallationTemplates": 0, + "ovh:Me/getIpxeScript:getIpxeScript": 0, + "ovh:Me/getIpxeScripts:getIpxeScripts": 0, + "ovh:Me/getMe:getMe": 0, + "ovh:Me/getPaymentmeanBankAccount:getPaymentmeanBankAccount": 0, + "ovh:Me/getPaymentmeanCreditCard:getPaymentmeanCreditCard": 0, + "ovh:Me/getSshKey:getSshKey": 0, + "ovh:Me/getSshKeys:getSshKeys": 0, + "ovh:Order/getCart:getCart": 0, + "ovh:Order/getCartProduct:getCartProduct": 0, + "ovh:Order/getCartProductOptions:getCartProductOptions": 0, + "ovh:Order/getCartProductOptionsPlan:getCartProductOptionsPlan": 0, + "ovh:Order/getCartProductPlan:getCartProductPlan": 0, + "ovh:Vps/getVps:getVps": 0, + "ovh:Vps/getVpss:getVpss": 0, + "ovh:Vrack/getVracks:getVracks": 0, + "ovh:index/getInstallationTemplates:getInstallationTemplates": 0, + "ovh:index/getServer:getServer": 0, + "ovh:index/getServers:getServers": 0, + "ovh:index/getVrackNetworks:getVrackNetworks": 0 + } + }, + "renames": { + "resources": { + "ovh:CloudProject/containerRegistry:ContainerRegistry": "ovh_cloud_project_containerregistry", + "ovh:CloudProject/containerRegistryIPRestrictionsManagement:ContainerRegistryIPRestrictionsManagement": "ovh_cloud_project_containerregistry_ip_restrictions_management", + "ovh:CloudProject/containerRegistryIPRestrictionsRegistry:ContainerRegistryIPRestrictionsRegistry": "ovh_cloud_project_containerregistry_ip_restrictions_registry", + "ovh:CloudProject/containerRegistryOIDC:ContainerRegistryOIDC": "ovh_cloud_project_containerregistry_oidc", + "ovh:CloudProject/containerRegistryUser:ContainerRegistryUser": "ovh_cloud_project_containerregistry_user", + "ovh:CloudProject/database:Database": "ovh_cloud_project_database", + "ovh:CloudProject/failoverIpAttach:FailoverIpAttach": "ovh_cloud_project_failover_ip_attach", + "ovh:CloudProject/kube:Kube": "ovh_cloud_project_kube", + "ovh:CloudProject/kubeIpRestrictions:KubeIpRestrictions": "ovh_cloud_project_kube_iprestrictions", + "ovh:CloudProject/kubeNodePool:KubeNodePool": "ovh_cloud_project_kube_nodepool", + "ovh:CloudProject/kubeOidc:KubeOidc": "ovh_cloud_project_kube_oidc", + "ovh:CloudProject/networkPrivate:NetworkPrivate": "ovh_cloud_project_network_private", + "ovh:CloudProject/networkPrivateSubnet:NetworkPrivateSubnet": "ovh_cloud_project_network_private_subnet", + "ovh:CloudProject/project:Project": "ovh_cloud_project", + "ovh:CloudProject/regionStoragePresign:RegionStoragePresign": "ovh_cloud_project_region_storage_presign", + "ovh:CloudProject/s3Credential:S3Credential": "ovh_cloud_project_user_s3_credential", + "ovh:CloudProject/s3Policy:S3Policy": "ovh_cloud_project_user_s3_policy", + "ovh:CloudProject/user:User": "ovh_cloud_project_user", + "ovh:CloudProject/workflowBackup:WorkflowBackup": "ovh_cloud_project_workflow_backup", + "ovh:CloudProjectDatabase/databaseInstance:DatabaseInstance": "ovh_cloud_project_database_database", + "ovh:CloudProjectDatabase/integration:Integration": "ovh_cloud_project_database_integration", + "ovh:CloudProjectDatabase/ipRestriction:IpRestriction": "ovh_cloud_project_database_ip_restriction", + "ovh:CloudProjectDatabase/kafkaAcl:KafkaAcl": "ovh_cloud_project_database_kafka_acl", + "ovh:CloudProjectDatabase/kafkaSchemaRegistryAcl:KafkaSchemaRegistryAcl": "ovh_cloud_project_database_kafka_schemaregistryacl", + "ovh:CloudProjectDatabase/kafkaTopic:KafkaTopic": "ovh_cloud_project_database_kafka_topic", + "ovh:CloudProjectDatabase/m3DbNamespace:M3DbNamespace": "ovh_cloud_project_database_m3db_namespace", + "ovh:CloudProjectDatabase/m3DbUser:M3DbUser": "ovh_cloud_project_database_m3db_user", + "ovh:CloudProjectDatabase/mongoDbUser:MongoDbUser": "ovh_cloud_project_database_mongodb_user", + "ovh:CloudProjectDatabase/opensearchPattern:OpensearchPattern": "ovh_cloud_project_database_opensearch_pattern", + "ovh:CloudProjectDatabase/opensearchUser:OpensearchUser": "ovh_cloud_project_database_opensearch_user", + "ovh:CloudProjectDatabase/postgresSqlConnectionPool:PostgresSqlConnectionPool": "ovh_cloud_project_database_postgresql_connection_pool", + "ovh:CloudProjectDatabase/postgresSqlUser:PostgresSqlUser": "ovh_cloud_project_database_postgresql_user", + "ovh:CloudProjectDatabase/redisUser:RedisUser": "ovh_cloud_project_database_redis_user", + "ovh:CloudProjectDatabase/user:User": "ovh_cloud_project_database_user", + "ovh:Dbaas/logsCluster:LogsCluster": "ovh_dbaas_logs_cluster", + "ovh:Dbaas/logsInput:LogsInput": "ovh_dbaas_logs_input", + "ovh:Dbaas/logsOutputGraylogStream:LogsOutputGraylogStream": "ovh_dbaas_logs_output_graylog_stream", + "ovh:Dedicated/cephAcl:CephAcl": "ovh_dedicated_ceph_acl", + "ovh:Dedicated/nasHAPartition:NasHAPartition": "ovh_dedicated_nasha_partition", + "ovh:Dedicated/nasHAPartitionAccess:NasHAPartitionAccess": "ovh_dedicated_nasha_partition_access", + "ovh:Dedicated/nasHAPartitionSnapshot:NasHAPartitionSnapshot": "ovh_dedicated_nasha_partition_snapshot", + "ovh:Dedicated/serverInstallTask:ServerInstallTask": "ovh_dedicated_server_install_task", + "ovh:Dedicated/serverNetworking:ServerNetworking": "ovh_dedicated_server_networking", + "ovh:Dedicated/serverRebootTask:ServerRebootTask": "ovh_dedicated_server_reboot_task", + "ovh:Dedicated/serverUpdate:ServerUpdate": "ovh_dedicated_server_update", + "ovh:Domain/zone:Zone": "ovh_domain_zone", + "ovh:Domain/zoneRecord:ZoneRecord": "ovh_domain_zone_record", + "ovh:Domain/zoneRedirection:ZoneRedirection": "ovh_domain_zone_redirection", + "ovh:Hosting/privateDatabase:PrivateDatabase": "ovh_hosting_privatedatabase", + "ovh:Hosting/privateDatabaseAllowlist:PrivateDatabaseAllowlist": "ovh_hosting_privatedatabase_whitelist", + "ovh:Hosting/privateDatabaseDb:PrivateDatabaseDb": "ovh_hosting_privatedatabase_database", + "ovh:Hosting/privateDatabaseUser:PrivateDatabaseUser": "ovh_hosting_privatedatabase_user", + "ovh:Hosting/privateDatabaseUserGrant:PrivateDatabaseUserGrant": "ovh_hosting_privatedatabase_user_grant", + "ovh:Iam/permissionsGroup:PermissionsGroup": "ovh_iam_permissions_group", + "ovh:Iam/policy:Policy": "ovh_iam_policy", + "ovh:Iam/resourceGroup:ResourceGroup": "ovh_iam_resource_group", + "ovh:Ip/ipService:IpService": "ovh_ip_service", + "ovh:Ip/reverse:Reverse": "ovh_ip_reverse", + "ovh:IpLoadBalancing/httpFarm:HttpFarm": "ovh_iploadbalancing_http_farm", + "ovh:IpLoadBalancing/httpFarmServer:HttpFarmServer": "ovh_iploadbalancing_http_farm_server", + "ovh:IpLoadBalancing/httpFrontend:HttpFrontend": "ovh_iploadbalancing_http_frontend", + "ovh:IpLoadBalancing/httpRoute:HttpRoute": "ovh_iploadbalancing_http_route", + "ovh:IpLoadBalancing/httpRouteRule:HttpRouteRule": "ovh_iploadbalancing_http_route_rule", + "ovh:IpLoadBalancing/loadBalancer:LoadBalancer": "ovh_iploadbalancing", + "ovh:IpLoadBalancing/refresh:Refresh": "ovh_iploadbalancing_refresh", + "ovh:IpLoadBalancing/tcpFarm:TcpFarm": "ovh_iploadbalancing_tcp_farm", + "ovh:IpLoadBalancing/tcpFarmServer:TcpFarmServer": "ovh_iploadbalancing_tcp_farm_server", + "ovh:IpLoadBalancing/tcpFrontend:TcpFrontend": "ovh_iploadbalancing_tcp_frontend", + "ovh:IpLoadBalancing/tcpRoute:TcpRoute": "ovh_iploadbalancing_tcp_route", + "ovh:IpLoadBalancing/tcpRouteRule:TcpRouteRule": "ovh_iploadbalancing_tcp_route_rule", + "ovh:IpLoadBalancing/vrackNetwork:VrackNetwork": "ovh_iploadbalancing_vrack_network", + "ovh:Me/aPIOAuth2Client:APIOAuth2Client": "ovh_me_api_oauth2_client", + "ovh:Me/identityGroup:IdentityGroup": "ovh_me_identity_group", + "ovh:Me/identityUser:IdentityUser": "ovh_me_identity_user", + "ovh:Me/installationTemplate:InstallationTemplate": "ovh_me_installation_template", + "ovh:Me/installationTemplatePartitionScheme:InstallationTemplatePartitionScheme": "ovh_me_installation_template_partition_scheme", + "ovh:Me/installationTemplatePartitionSchemeHardwareRaid:InstallationTemplatePartitionSchemeHardwareRaid": "ovh_me_installation_template_partition_scheme_hardware_raid", + "ovh:Me/installationTemplatePartitionSchemePartition:InstallationTemplatePartitionSchemePartition": "ovh_me_installation_template_partition_scheme_partition", + "ovh:Me/ipxeScript:IpxeScript": "ovh_me_ipxe_script", + "ovh:Me/sshKey:SshKey": "ovh_me_ssh_key", + "ovh:Vrack/cloudProject:CloudProject": "ovh_vrack_cloudproject", + "ovh:Vrack/dedicatedServer:DedicatedServer": "ovh_vrack_dedicated_server", + "ovh:Vrack/dedicatedServerInterface:DedicatedServerInterface": "ovh_vrack_dedicated_server_interface", + "ovh:Vrack/ipAddress:IpAddress": "ovh_vrack_ip", + "ovh:Vrack/ipLoadbalancing:IpLoadbalancing": "ovh_vrack_iploadbalancing", + "ovh:Vrack/vrack:Vrack": "ovh_vrack" + }, + "functions": { + "ovh:CloudProject/getCapabilitiesContainerFilter:getCapabilitiesContainerFilter": "ovh_cloud_project_capabilities_containerregistry_filter", + "ovh:CloudProject/getCapabilitiesContainerRegistry:getCapabilitiesContainerRegistry": "ovh_cloud_project_capabilities_containerregistry", + "ovh:CloudProject/getContainerRegistries:getContainerRegistries": "ovh_cloud_project_containerregistries", + "ovh:CloudProject/getContainerRegistry:getContainerRegistry": "ovh_cloud_project_containerregistry", + "ovh:CloudProject/getContainerRegistryIPRestrictionsManagement:getContainerRegistryIPRestrictionsManagement": "ovh_cloud_project_containerregistry_ip_restrictions_management", + "ovh:CloudProject/getContainerRegistryIPRestrictionsRegistry:getContainerRegistryIPRestrictionsRegistry": "ovh_cloud_project_containerregistry_ip_restrictions_registry", + "ovh:CloudProject/getContainerRegistryOIDC:getContainerRegistryOIDC": "ovh_cloud_project_containerregistry_oidc", + "ovh:CloudProject/getContainerRegistryUsers:getContainerRegistryUsers": "ovh_cloud_project_containerregistry_users", + "ovh:CloudProject/getFailoverIpAttach:getFailoverIpAttach": "ovh_cloud_project_failover_ip_attach", + "ovh:CloudProject/getKube:getKube": "ovh_cloud_project_kube", + "ovh:CloudProject/getKubeIpRestrictions:getKubeIpRestrictions": "ovh_cloud_project_kube_iprestrictions", + "ovh:CloudProject/getKubeNodePool:getKubeNodePool": "ovh_cloud_project_kube_nodepool", + "ovh:CloudProject/getKubeNodePoolNodes:getKubeNodePoolNodes": "ovh_cloud_project_kube_nodepool_nodes", + "ovh:CloudProject/getKubeNodes:getKubeNodes": "ovh_cloud_project_kube_nodes", + "ovh:CloudProject/getKubeOidc:getKubeOidc": "ovh_cloud_project_kube_oidc", + "ovh:CloudProject/getM3dbNamespace:getM3dbNamespace": "ovh_cloud_project_database_m3db_namespace", + "ovh:CloudProject/getM3dbNamespaces:getM3dbNamespaces": "ovh_cloud_project_database_m3db_namespaces", + "ovh:CloudProject/getM3dbUser:getM3dbUser": "ovh_cloud_project_database_m3db_user", + "ovh:CloudProject/getMongoDbUser:getMongoDbUser": "ovh_cloud_project_database_mongodb_user", + "ovh:CloudProject/getOpenSearchPattern:getOpenSearchPattern": "ovh_cloud_project_database_opensearch_pattern", + "ovh:CloudProject/getOpenSearchPatterns:getOpenSearchPatterns": "ovh_cloud_project_database_opensearch_patterns", + "ovh:CloudProject/getOpenSearchUser:getOpenSearchUser": "ovh_cloud_project_database_opensearch_user", + "ovh:CloudProject/getRedisUser:getRedisUser": "ovh_cloud_project_database_redis_user", + "ovh:CloudProject/getRegion:getRegion": "ovh_cloud_project_region", + "ovh:CloudProject/getRegions:getRegions": "ovh_cloud_project_regions", + "ovh:CloudProject/getUser:getUser": "ovh_cloud_project_user", + "ovh:CloudProject/getUserS3Credential:getUserS3Credential": "ovh_cloud_project_user_s3_credential", + "ovh:CloudProject/getUserS3Credentials:getUserS3Credentials": "ovh_cloud_project_user_s3_credentials", + "ovh:CloudProject/getUserS3Policy:getUserS3Policy": "ovh_cloud_project_user_s3_policy", + "ovh:CloudProject/getUsers:getUsers": "ovh_cloud_project_users", + "ovh:CloudProject/getVRack:getVRack": "ovh_cloud_project_vrack", + "ovh:CloudProjectDatabase/getCapabilities:getCapabilities": "ovh_cloud_project_database_capabilities", + "ovh:CloudProjectDatabase/getCertificates:getCertificates": "ovh_cloud_project_database_certificates", + "ovh:CloudProjectDatabase/getDatabase:getDatabase": "ovh_cloud_project_database", + "ovh:CloudProjectDatabase/getDatabaseInstance:getDatabaseInstance": "ovh_cloud_project_database_database", + "ovh:CloudProjectDatabase/getDatabaseInstances:getDatabaseInstances": "ovh_cloud_project_database_databases", + "ovh:CloudProjectDatabase/getDatabaseIntegration:getDatabaseIntegration": "ovh_cloud_project_database_integration", + "ovh:CloudProjectDatabase/getDatabaseIntegrations:getDatabaseIntegrations": "ovh_cloud_project_database_integrations", + "ovh:CloudProjectDatabase/getDatabases:getDatabases": "ovh_cloud_project_databases", + "ovh:CloudProjectDatabase/getIpRestrictions:getIpRestrictions": "ovh_cloud_project_database_ip_restrictions", + "ovh:CloudProjectDatabase/getKafkaAcl:getKafkaAcl": "ovh_cloud_project_database_kafka_acl", + "ovh:CloudProjectDatabase/getKafkaAcls:getKafkaAcls": "ovh_cloud_project_database_kafka_acls", + "ovh:CloudProjectDatabase/getKafkaSchemaRegistryAcl:getKafkaSchemaRegistryAcl": "ovh_cloud_project_database_kafka_schemaregistryacl", + "ovh:CloudProjectDatabase/getKafkaSchemaRegistryAcls:getKafkaSchemaRegistryAcls": "ovh_cloud_project_database_kafka_schemaregistryacls", + "ovh:CloudProjectDatabase/getKafkaTopic:getKafkaTopic": "ovh_cloud_project_database_kafka_topic", + "ovh:CloudProjectDatabase/getKafkaTopics:getKafkaTopics": "ovh_cloud_project_database_kafka_topics", + "ovh:CloudProjectDatabase/getKafkaUserAccess:getKafkaUserAccess": "ovh_cloud_project_database_kafka_user_access", + "ovh:CloudProjectDatabase/getPostgresSqlConnectionPool:getPostgresSqlConnectionPool": "ovh_cloud_project_database_postgresql_connection_pool", + "ovh:CloudProjectDatabase/getPostgresSqlUser:getPostgresSqlUser": "ovh_cloud_project_database_postgresql_user", + "ovh:CloudProjectDatabase/getUser:getUser": "ovh_cloud_project_database_user", + "ovh:CloudProjectDatabase/getUsers:getUsers": "ovh_cloud_project_database_users", + "ovh:Dbaas/getLogsCluster:getLogsCluster": "ovh_dbaas_logs_cluster", + "ovh:Dbaas/getLogsClusters:getLogsClusters": "ovh_dbaas_logs_clusters", + "ovh:Dbaas/getLogsInputEngine:getLogsInputEngine": "ovh_dbaas_logs_input_engine", + "ovh:Dbaas/getLogsOutputGraylogStream:getLogsOutputGraylogStream": "ovh_dbaas_logs_output_graylog_stream", + "ovh:Dedicated/getCeph:getCeph": "ovh_dedicated_ceph", + "ovh:Dedicated/getNasHA:getNasHA": "ovh_dedicated_nasha", + "ovh:Dedicated/getServerBoots:getServerBoots": "ovh_dedicated_server_boots", + "ovh:Domain/getZone:getZone": "ovh_domain_zone", + "ovh:Hosting/getPrivateDatabase:getPrivateDatabase": "ovh_hosting_privatedatabase", + "ovh:Hosting/getPrivateDatabaseAllowlist:getPrivateDatabaseAllowlist": "ovh_hosting_privatedatabase_whitelist", + "ovh:Hosting/getPrivateDatabaseDb:getPrivateDatabaseDb": "ovh_hosting_privatedatabase_database", + "ovh:Hosting/getPrivateDatabaseUser:getPrivateDatabaseUser": "ovh_hosting_privatedatabase_user", + "ovh:Hosting/getPrivateDatabaseUserGrant:getPrivateDatabaseUserGrant": "ovh_hosting_privatedatabase_user_grant", + "ovh:Iam/getPermissionsGroup:getPermissionsGroup": "ovh_iam_permissions_group", + "ovh:Iam/getPermissionsGroups:getPermissionsGroups": "ovh_iam_permissions_groups", + "ovh:Iam/getPolicies:getPolicies": "ovh_iam_policies", + "ovh:Iam/getPolicy:getPolicy": "ovh_iam_policy", + "ovh:Iam/getReferenceActions:getReferenceActions": "ovh_iam_reference_actions", + "ovh:Iam/getReferenceResourceType:getReferenceResourceType": "ovh_iam_reference_resource_type", + "ovh:Iam/getResourceGroup:getResourceGroup": "ovh_iam_resource_group", + "ovh:Iam/getResourceGroups:getResourceGroups": "ovh_iam_resource_groups", + "ovh:Ip/getService:getService": "ovh_ip_service", + "ovh:IpLoadBalancing/getIpLoadBalancing:getIpLoadBalancing": "ovh_iploadbalancing", + "ovh:IpLoadBalancing/getVrackNetwork:getVrackNetwork": "ovh_iploadbalancing_vrack_network", + "ovh:Me/getAPIOAuth2Client:getAPIOAuth2Client": "ovh_me_api_oauth2_client", + "ovh:Me/getAPIOAuth2Clients:getAPIOAuth2Clients": "ovh_me_api_oauth2_clients", + "ovh:Me/getIdentityGroup:getIdentityGroup": "ovh_me_identity_group", + "ovh:Me/getIdentityGroups:getIdentityGroups": "ovh_me_identity_groups", + "ovh:Me/getIdentityUser:getIdentityUser": "ovh_me_identity_user", + "ovh:Me/getIdentityUsers:getIdentityUsers": "ovh_me_identity_users", + "ovh:Me/getInstallationTemplate:getInstallationTemplate": "ovh_me_installation_template", + "ovh:Me/getInstallationTemplates:getInstallationTemplates": "ovh_me_installation_templates", + "ovh:Me/getIpxeScript:getIpxeScript": "ovh_me_ipxe_script", + "ovh:Me/getIpxeScripts:getIpxeScripts": "ovh_me_ipxe_scripts", + "ovh:Me/getMe:getMe": "ovh_me", + "ovh:Me/getPaymentmeanBankAccount:getPaymentmeanBankAccount": "ovh_me_paymentmean_bankaccount", + "ovh:Me/getPaymentmeanCreditCard:getPaymentmeanCreditCard": "ovh_me_paymentmean_creditcard", + "ovh:Me/getSshKey:getSshKey": "ovh_me_ssh_key", + "ovh:Me/getSshKeys:getSshKeys": "ovh_me_ssh_keys", + "ovh:Order/getCart:getCart": "ovh_order_cart", + "ovh:Order/getCartProduct:getCartProduct": "ovh_order_cart_product", + "ovh:Order/getCartProductOptions:getCartProductOptions": "ovh_order_cart_product_options", + "ovh:Order/getCartProductOptionsPlan:getCartProductOptionsPlan": "ovh_order_cart_product_options_plan", + "ovh:Order/getCartProductPlan:getCartProductPlan": "ovh_order_cart_product_plan", + "ovh:Vps/getVps:getVps": "ovh_vps", + "ovh:Vps/getVpss:getVpss": "ovh_vpss", + "ovh:Vrack/getVracks:getVracks": "ovh_vracks", + "ovh:index/getInstallationTemplates:getInstallationTemplates": "ovh_dedicated_installation_templates", + "ovh:index/getServer:getServer": "ovh_dedicated_server", + "ovh:index/getServers:getServers": "ovh_dedicated_servers", + "ovh:index/getVrackNetworks:getVrackNetworks": "ovh_iploadbalancing_vrack_networks" + }, + "renamedProperties": { + "ovh:CloudProject/ContainerRegistryPlan:ContainerRegistryPlan": { + "createdAt": "created_at", + "registryLimits": "registry_limits", + "updatedAt": "updated_at" + }, + "ovh:CloudProject/ContainerRegistryPlanRegistryLimit:ContainerRegistryPlanRegistryLimit": { + "imageStorage": "image_storage", + "parallelRequest": "parallel_request" + }, + "ovh:CloudProject/DatabaseEndpoint:DatabaseEndpoint": { + "sslMode": "ssl_mode" + }, + "ovh:CloudProject/DatabaseNode:DatabaseNode": { + "networkId": "network_id", + "subnetId": "subnet_id" + }, + "ovh:CloudProject/KubeCustomization:KubeCustomization": { + "apiservers": "apiserver" + }, + "ovh:CloudProject/KubeCustomizationApiserverAdmissionplugin:KubeCustomizationApiserverAdmissionplugin": { + "disableds": "disabled", + "enableds": "enabled" + }, + "ovh:CloudProject/KubeCustomizationKubeProxyIptables:KubeCustomizationKubeProxyIptables": { + "minSyncPeriod": "min_sync_period", + "syncPeriod": "sync_period" + }, + "ovh:CloudProject/KubeCustomizationKubeProxyIpvs:KubeCustomizationKubeProxyIpvs": { + "minSyncPeriod": "min_sync_period", + "syncPeriod": "sync_period", + "tcpFinTimeout": "tcp_fin_timeout", + "tcpTimeout": "tcp_timeout", + "udpTimeout": "udp_timeout" + }, + "ovh:CloudProject/KubeKubeconfigAttribute:KubeKubeconfigAttribute": { + "clientCertificate": "client_certificate", + "clientKey": "client_key", + "clusterCaCertificate": "cluster_ca_certificate" + }, + "ovh:CloudProject/KubePrivateNetworkConfiguration:KubePrivateNetworkConfiguration": { + "defaultVrackGateway": "default_vrack_gateway", + "privateNetworkRoutingAsDefault": "private_network_routing_as_default" + }, + "ovh:CloudProject/ProjectOrder:ProjectOrder": { + "expirationDate": "expiration_date", + "orderId": "order_id" + }, + "ovh:CloudProject/ProjectOrderDetail:ProjectOrderDetail": { + "orderDetailId": "order_detail_id" + }, + "ovh:CloudProject/ProjectPlan:ProjectPlan": { + "catalogName": "catalog_name", + "configurations": "configuration", + "planCode": "plan_code", + "pricingMode": "pricing_mode" + }, + "ovh:CloudProject/ProjectPlanOption:ProjectPlanOption": { + "catalogName": "catalog_name", + "configurations": "configuration", + "planCode": "plan_code", + "pricingMode": "pricing_mode" + }, + "ovh:CloudProject/containerRegistry:ContainerRegistry": { + "createdAt": "created_at", + "planId": "plan_id", + "plans": "plan", + "projectId": "project_id", + "serviceName": "service_name", + "updatedAt": "updated_at" + }, + "ovh:CloudProject/containerRegistryIPRestrictionsManagement:ContainerRegistryIPRestrictionsManagement": { + "ipRestrictions": "ip_restrictions", + "registryId": "registry_id", + "serviceName": "service_name" + }, + "ovh:CloudProject/containerRegistryIPRestrictionsRegistry:ContainerRegistryIPRestrictionsRegistry": { + "ipRestrictions": "ip_restrictions", + "registryId": "registry_id", + "serviceName": "service_name" + }, + "ovh:CloudProject/containerRegistryOIDC:ContainerRegistryOIDC": { + "deleteUsers": "delete_users", + "oidcAdminGroup": "oidc_admin_group", + "oidcAutoOnboard": "oidc_auto_onboard", + "oidcClientId": "oidc_client_id", + "oidcClientSecret": "oidc_client_secret", + "oidcEndpoint": "oidc_endpoint", + "oidcGroupsClaim": "oidc_groups_claim", + "oidcName": "oidc_name", + "oidcScope": "oidc_scope", + "oidcUserClaim": "oidc_user_claim", + "oidcVerifyCert": "oidc_verify_cert", + "registryId": "registry_id", + "serviceName": "service_name" + }, + "ovh:CloudProject/containerRegistryUser:ContainerRegistryUser": { + "registryId": "registry_id", + "serviceName": "service_name" + }, + "ovh:CloudProject/database:Database": { + "advancedConfiguration": "advanced_configuration", + "backupRegions": "backup_regions", + "backupTime": "backup_time", + "createdAt": "created_at", + "diskSize": "disk_size", + "diskType": "disk_type", + "kafkaRestApi": "kafka_rest_api", + "maintenanceTime": "maintenance_time", + "networkType": "network_type", + "opensearchAclsEnabled": "opensearch_acls_enabled", + "serviceName": "service_name" + }, + "ovh:CloudProject/failoverIpAttach:FailoverIpAttach": { + "continentCode": "continent_code", + "geoLoc": "geo_loc", + "routedTo": "routed_to", + "serviceName": "service_name", + "subType": "sub_type" + }, + "ovh:CloudProject/getCapabilitiesContainerFilter:getCapabilitiesContainerFilter": { + "createdAt": "created_at", + "planName": "plan_name", + "registryLimits": "registry_limits", + "serviceName": "service_name", + "updatedAt": "updated_at" + }, + "ovh:CloudProject/getCapabilitiesContainerFilterRegistryLimit:getCapabilitiesContainerFilterRegistryLimit": { + "imageStorage": "image_storage", + "parallelRequest": "parallel_request" + }, + "ovh:CloudProject/getCapabilitiesContainerRegistry:getCapabilitiesContainerRegistry": { + "results": "result", + "serviceName": "service_name" + }, + "ovh:CloudProject/getCapabilitiesContainerRegistryResult:getCapabilitiesContainerRegistryResult": { + "regionName": "region_name" + }, + "ovh:CloudProject/getCapabilitiesContainerRegistryResultPlan:getCapabilitiesContainerRegistryResultPlan": { + "createdAt": "created_at", + "registryLimits": "registry_limits", + "updatedAt": "updated_at" + }, + "ovh:CloudProject/getCapabilitiesContainerRegistryResultPlanRegistryLimit:getCapabilitiesContainerRegistryResultPlanRegistryLimit": { + "imageStorage": "image_storage", + "parallelRequest": "parallel_request" + }, + "ovh:CloudProject/getContainerRegistries:getContainerRegistries": { + "results": "result", + "serviceName": "service_name" + }, + "ovh:CloudProject/getContainerRegistriesResult:getContainerRegistriesResult": { + "createdAt": "created_at", + "projectId": "project_id", + "updatedAt": "updated_at" + }, + "ovh:CloudProject/getContainerRegistry:getContainerRegistry": { + "createdAt": "created_at", + "projectId": "project_id", + "registryId": "registry_id", + "serviceName": "service_name", + "updatedAt": "updated_at" + }, + "ovh:CloudProject/getContainerRegistryIPRestrictionsManagement:getContainerRegistryIPRestrictionsManagement": { + "ipRestrictions": "ip_restrictions", + "registryId": "registry_id", + "serviceName": "service_name" + }, + "ovh:CloudProject/getContainerRegistryIPRestrictionsRegistry:getContainerRegistryIPRestrictionsRegistry": { + "ipRestrictions": "ip_restrictions", + "registryId": "registry_id", + "serviceName": "service_name" + }, + "ovh:CloudProject/getContainerRegistryOIDC:getContainerRegistryOIDC": { + "oidcAdminGroup": "oidc_admin_group", + "oidcAutoOnboard": "oidc_auto_onboard", + "oidcClientId": "oidc_client_id", + "oidcEndpoint": "oidc_endpoint", + "oidcGroupsClaim": "oidc_groups_claim", + "oidcName": "oidc_name", + "oidcScope": "oidc_scope", + "oidcUserClaim": "oidc_user_claim", + "oidcVerifyCert": "oidc_verify_cert", + "registryId": "registry_id", + "serviceName": "service_name" + }, + "ovh:CloudProject/getContainerRegistryUsers:getContainerRegistryUsers": { + "registryId": "registry_id", + "results": "result", + "serviceName": "service_name" + }, + "ovh:CloudProject/getFailoverIpAttach:getFailoverIpAttach": { + "continentCode": "continent_code", + "geoLoc": "geo_loc", + "routedTo": "routed_to", + "serviceName": "service_name", + "subType": "sub_type" + }, + "ovh:CloudProject/getKube:getKube": { + "controlPlaneIsUpToDate": "control_plane_is_up_to_date", + "customizationApiservers": "customization_apiserver", + "customizationKubeProxy": "customization_kube_proxy", + "customizations": "customization", + "isUpToDate": "is_up_to_date", + "kubeId": "kube_id", + "kubeProxyMode": "kube_proxy_mode", + "nextUpgradeVersions": "next_upgrade_versions", + "nodesUrl": "nodes_url", + "privateNetworkId": "private_network_id", + "serviceName": "service_name", + "updatePolicy": "update_policy" + }, + "ovh:CloudProject/getKubeCustomization:getKubeCustomization": { + "apiservers": "apiserver" + }, + "ovh:CloudProject/getKubeCustomizationApiserverAdmissionplugin:getKubeCustomizationApiserverAdmissionplugin": { + "disableds": "disabled", + "enableds": "enabled" + }, + "ovh:CloudProject/getKubeCustomizationKubeProxyIptables:getKubeCustomizationKubeProxyIptables": { + "minSyncPeriod": "min_sync_period", + "syncPeriod": "sync_period" + }, + "ovh:CloudProject/getKubeCustomizationKubeProxyIpvs:getKubeCustomizationKubeProxyIpvs": { + "minSyncPeriod": "min_sync_period", + "syncPeriod": "sync_period", + "tcpFinTimeout": "tcp_fin_timeout", + "tcpTimeout": "tcp_timeout", + "udpTimeout": "udp_timeout" + }, + "ovh:CloudProject/getKubeIpRestrictions:getKubeIpRestrictions": { + "kubeId": "kube_id", + "serviceName": "service_name" + }, + "ovh:CloudProject/getKubeNodePool:getKubeNodePool": { + "antiAffinity": "anti_affinity", + "autoscalingScaleDownUnneededTimeSeconds": "autoscaling_scale_down_unneeded_time_seconds", + "autoscalingScaleDownUnreadyTimeSeconds": "autoscaling_scale_down_unready_time_seconds", + "autoscalingScaleDownUtilizationThreshold": "autoscaling_scale_down_utilization_threshold", + "availableNodes": "available_nodes", + "createdAt": "created_at", + "currentNodes": "current_nodes", + "desiredNodes": "desired_nodes", + "flavorName": "flavor_name", + "kubeId": "kube_id", + "maxNodes": "max_nodes", + "minNodes": "min_nodes", + "monthlyBilled": "monthly_billed", + "projectId": "project_id", + "serviceName": "service_name", + "sizeStatus": "size_status", + "upToDateNodes": "up_to_date_nodes", + "updatedAt": "updated_at" + }, + "ovh:CloudProject/getKubeNodePoolNodes:getKubeNodePoolNodes": { + "kubeId": "kube_id", + "serviceName": "service_name" + }, + "ovh:CloudProject/getKubeNodePoolNodesNode:getKubeNodePoolNodesNode": { + "createdAt": "created_at", + "deployedAt": "deployed_at", + "instanceId": "instance_id", + "isUpToDate": "is_up_to_date", + "nodePoolId": "node_pool_id", + "projectId": "project_id", + "updatedAt": "updated_at" + }, + "ovh:CloudProject/getKubeNodes:getKubeNodes": { + "kubeId": "kube_id", + "serviceName": "service_name" + }, + "ovh:CloudProject/getKubeNodesNode:getKubeNodesNode": { + "createdAt": "created_at", + "deployedAt": "deployed_at", + "instanceId": "instance_id", + "isUpToDate": "is_up_to_date", + "nodePoolId": "node_pool_id", + "projectId": "project_id", + "updatedAt": "updated_at" + }, + "ovh:CloudProject/getKubeOidc:getKubeOidc": { + "clientId": "client_id", + "issuerUrl": "issuer_url", + "kubeId": "kube_id", + "oidcCaContent": "oidc_ca_content", + "oidcGroupsClaims": "oidc_groups_claim", + "oidcGroupsPrefix": "oidc_groups_prefix", + "oidcRequiredClaims": "oidc_required_claim", + "oidcSigningAlgs": "oidc_signing_algs", + "oidcUsernameClaim": "oidc_username_claim", + "oidcUsernamePrefix": "oidc_username_prefix", + "serviceName": "service_name" + }, + "ovh:CloudProject/getM3dbNamespace:getM3dbNamespace": { + "clusterId": "cluster_id", + "retentionBlockDataExpirationDuration": "retention_block_data_expiration_duration", + "retentionBlockSizeDuration": "retention_block_size_duration", + "retentionBufferFutureDuration": "retention_buffer_future_duration", + "retentionBufferPastDuration": "retention_buffer_past_duration", + "retentionPeriodDuration": "retention_period_duration", + "serviceName": "service_name", + "snapshotEnabled": "snapshot_enabled", + "writesToCommitLogEnabled": "writes_to_commit_log_enabled" + }, + "ovh:CloudProject/getM3dbNamespaces:getM3dbNamespaces": { + "clusterId": "cluster_id", + "namespaceIds": "namespace_ids", + "serviceName": "service_name" + }, + "ovh:CloudProject/getM3dbUser:getM3dbUser": { + "clusterId": "cluster_id", + "createdAt": "created_at", + "serviceName": "service_name" + }, + "ovh:CloudProject/getMongoDbUser:getMongoDbUser": { + "clusterId": "cluster_id", + "createdAt": "created_at", + "serviceName": "service_name" + }, + "ovh:CloudProject/getOpenSearchPattern:getOpenSearchPattern": { + "clusterId": "cluster_id", + "maxIndexCount": "max_index_count", + "serviceName": "service_name" + }, + "ovh:CloudProject/getOpenSearchPatterns:getOpenSearchPatterns": { + "clusterId": "cluster_id", + "patternIds": "pattern_ids", + "serviceName": "service_name" + }, + "ovh:CloudProject/getOpenSearchUser:getOpenSearchUser": { + "clusterId": "cluster_id", + "createdAt": "created_at", + "serviceName": "service_name" + }, + "ovh:CloudProject/getRedisUser:getRedisUser": { + "clusterId": "cluster_id", + "createdAt": "created_at", + "serviceName": "service_name" + }, + "ovh:CloudProject/getRegion:getRegion": { + "continentCode": "continent_code", + "datacenterLocation": "datacenter_location", + "serviceName": "service_name" + }, + "ovh:CloudProject/getRegions:getRegions": { + "hasServicesUps": "has_services_up", + "serviceName": "service_name" + }, + "ovh:CloudProject/getUser:getUser": { + "creationDate": "creation_date", + "serviceName": "service_name", + "userId": "user_id" + }, + "ovh:CloudProject/getUserS3Credential:getUserS3Credential": { + "accessKeyId": "access_key_id", + "secretAccessKey": "secret_access_key", + "serviceName": "service_name", + "userId": "user_id" + }, + "ovh:CloudProject/getUserS3Credentials:getUserS3Credentials": { + "accessKeyIds": "access_key_ids", + "serviceName": "service_name", + "userId": "user_id" + }, + "ovh:CloudProject/getUserS3Policy:getUserS3Policy": { + "serviceName": "service_name", + "userId": "user_id" + }, + "ovh:CloudProject/getUsers:getUsers": { + "serviceName": "service_name" + }, + "ovh:CloudProject/getUsersUser:getUsersUser": { + "creationDate": "creation_date", + "userId": "user_id" + }, + "ovh:CloudProject/getVRack:getVRack": { + "serviceName": "service_name" + }, + "ovh:CloudProject/kube:Kube": { + "controlPlaneIsUpToDate": "control_plane_is_up_to_date", + "customizationApiservers": "customization_apiserver", + "customizationKubeProxy": "customization_kube_proxy", + "customizations": "customization", + "isUpToDate": "is_up_to_date", + "kubeProxyMode": "kube_proxy_mode", + "kubeconfigAttributes": "kubeconfig_attributes", + "nextUpgradeVersions": "next_upgrade_versions", + "nodesUrl": "nodes_url", + "privateNetworkConfiguration": "private_network_configuration", + "privateNetworkId": "private_network_id", + "serviceName": "service_name", + "updatePolicy": "update_policy" + }, + "ovh:CloudProject/kubeIpRestrictions:KubeIpRestrictions": { + "kubeId": "kube_id", + "serviceName": "service_name" + }, + "ovh:CloudProject/kubeNodePool:KubeNodePool": { + "antiAffinity": "anti_affinity", + "autoscalingScaleDownUnneededTimeSeconds": "autoscaling_scale_down_unneeded_time_seconds", + "autoscalingScaleDownUnreadyTimeSeconds": "autoscaling_scale_down_unready_time_seconds", + "autoscalingScaleDownUtilizationThreshold": "autoscaling_scale_down_utilization_threshold", + "availableNodes": "available_nodes", + "createdAt": "created_at", + "currentNodes": "current_nodes", + "desiredNodes": "desired_nodes", + "flavorName": "flavor_name", + "kubeId": "kube_id", + "maxNodes": "max_nodes", + "minNodes": "min_nodes", + "monthlyBilled": "monthly_billed", + "projectId": "project_id", + "serviceName": "service_name", + "sizeStatus": "size_status", + "upToDateNodes": "up_to_date_nodes", + "updatedAt": "updated_at" + }, + "ovh:CloudProject/kubeOidc:KubeOidc": { + "clientId": "client_id", + "issuerUrl": "issuer_url", + "kubeId": "kube_id", + "oidcCaContent": "oidc_ca_content", + "oidcGroupsClaims": "oidc_groups_claim", + "oidcGroupsPrefix": "oidc_groups_prefix", + "oidcRequiredClaims": "oidc_required_claim", + "oidcSigningAlgs": "oidc_signing_algs", + "oidcUsernameClaim": "oidc_username_claim", + "oidcUsernamePrefix": "oidc_username_prefix", + "serviceName": "service_name" + }, + "ovh:CloudProject/networkPrivate:NetworkPrivate": { + "regionsAttributes": "regions_attributes", + "regionsStatuses": "regions_status", + "serviceName": "service_name", + "vlanId": "vlan_id" + }, + "ovh:CloudProject/networkPrivateSubnet:NetworkPrivateSubnet": { + "gatewayIp": "gateway_ip", + "ipPools": "ip_pools", + "networkId": "network_id", + "noGateway": "no_gateway", + "serviceName": "service_name" + }, + "ovh:CloudProject/project:Project": { + "ProjectURN": "urn", + "orders": "order", + "ovhSubsidiary": "ovh_subsidiary", + "paymentMean": "payment_mean", + "planOptions": "plan_option", + "projectId": "project_id", + "projectName": "project_name" + }, + "ovh:CloudProject/regionStoragePresign:RegionStoragePresign": { + "regionName": "region_name", + "serviceName": "service_name" + }, + "ovh:CloudProject/s3Credential:S3Credential": { + "accessKeyId": "access_key_id", + "internalUserId": "internal_user_id", + "secretAccessKey": "secret_access_key", + "serviceName": "service_name", + "userId": "user_id" + }, + "ovh:CloudProject/s3Policy:S3Policy": { + "serviceName": "service_name", + "userId": "user_id" + }, + "ovh:CloudProject/user:User": { + "creationDate": "creation_date", + "openstackRc": "openstack_rc", + "roleName": "role_name", + "roleNames": "role_names", + "serviceName": "service_name" + }, + "ovh:CloudProject/workflowBackup:WorkflowBackup": { + "backupName": "backup_name", + "createdAt": "created_at", + "instanceId": "instance_id", + "maxExecutionCount": "max_execution_count", + "regionName": "region_name", + "serviceName": "service_name" + }, + "ovh:CloudProjectDatabase/databaseInstance:DatabaseInstance": { + "clusterId": "cluster_id", + "serviceName": "service_name" + }, + "ovh:CloudProjectDatabase/getCapabilities:getCapabilities": { + "serviceName": "service_name" + }, + "ovh:CloudProjectDatabase/getCapabilitiesEngine:getCapabilitiesEngine": { + "defaultVersion": "default_version", + "sslModes": "ssl_modes" + }, + "ovh:CloudProjectDatabase/getCapabilitiesPlan:getCapabilitiesPlan": { + "backupRetention": "backup_retention" + }, + "ovh:CloudProjectDatabase/getCertificates:getCertificates": { + "clusterId": "cluster_id", + "serviceName": "service_name" + }, + "ovh:CloudProjectDatabase/getDatabase:getDatabase": { + "advancedConfiguration": "advanced_configuration", + "backupRegions": "backup_regions", + "backupTime": "backup_time", + "createdAt": "created_at", + "diskSize": "disk_size", + "diskType": "disk_type", + "kafkaRestApi": "kafka_rest_api", + "maintenanceTime": "maintenance_time", + "networkType": "network_type", + "opensearchAclsEnabled": "opensearch_acls_enabled", + "serviceName": "service_name" + }, + "ovh:CloudProjectDatabase/getDatabaseEndpoint:getDatabaseEndpoint": { + "sslMode": "ssl_mode" + }, + "ovh:CloudProjectDatabase/getDatabaseInstance:getDatabaseInstance": { + "clusterId": "cluster_id", + "serviceName": "service_name" + }, + "ovh:CloudProjectDatabase/getDatabaseInstances:getDatabaseInstances": { + "clusterId": "cluster_id", + "databaseIds": "database_ids", + "serviceName": "service_name" + }, + "ovh:CloudProjectDatabase/getDatabaseIntegration:getDatabaseIntegration": { + "clusterId": "cluster_id", + "destinationServiceId": "destination_service_id", + "serviceName": "service_name", + "sourceServiceId": "source_service_id" + }, + "ovh:CloudProjectDatabase/getDatabaseIntegrations:getDatabaseIntegrations": { + "clusterId": "cluster_id", + "integrationIds": "integration_ids", + "serviceName": "service_name" + }, + "ovh:CloudProjectDatabase/getDatabaseNode:getDatabaseNode": { + "networkId": "network_id", + "subnetId": "subnet_id" + }, + "ovh:CloudProjectDatabase/getDatabases:getDatabases": { + "clusterIds": "cluster_ids", + "serviceName": "service_name" + }, + "ovh:CloudProjectDatabase/getIpRestrictions:getIpRestrictions": { + "clusterId": "cluster_id", + "serviceName": "service_name" + }, + "ovh:CloudProjectDatabase/getKafkaAcl:getKafkaAcl": { + "clusterId": "cluster_id", + "serviceName": "service_name" + }, + "ovh:CloudProjectDatabase/getKafkaAcls:getKafkaAcls": { + "aclIds": "acl_ids", + "clusterId": "cluster_id", + "serviceName": "service_name" + }, + "ovh:CloudProjectDatabase/getKafkaSchemaRegistryAcl:getKafkaSchemaRegistryAcl": { + "clusterId": "cluster_id", + "serviceName": "service_name" + }, + "ovh:CloudProjectDatabase/getKafkaSchemaRegistryAcls:getKafkaSchemaRegistryAcls": { + "aclIds": "acl_ids", + "clusterId": "cluster_id", + "serviceName": "service_name" + }, + "ovh:CloudProjectDatabase/getKafkaTopic:getKafkaTopic": { + "clusterId": "cluster_id", + "minInsyncReplicas": "min_insync_replicas", + "retentionBytes": "retention_bytes", + "retentionHours": "retention_hours", + "serviceName": "service_name" + }, + "ovh:CloudProjectDatabase/getKafkaTopics:getKafkaTopics": { + "clusterId": "cluster_id", + "serviceName": "service_name", + "topicIds": "topic_ids" + }, + "ovh:CloudProjectDatabase/getKafkaUserAccess:getKafkaUserAccess": { + "clusterId": "cluster_id", + "serviceName": "service_name", + "userId": "user_id" + }, + "ovh:CloudProjectDatabase/getPostgresSqlConnectionPool:getPostgresSqlConnectionPool": { + "clusterId": "cluster_id", + "databaseId": "database_id", + "serviceName": "service_name", + "sslMode": "ssl_mode", + "userId": "user_id" + }, + "ovh:CloudProjectDatabase/getPostgresSqlUser:getPostgresSqlUser": { + "clusterId": "cluster_id", + "createdAt": "created_at", + "serviceName": "service_name" + }, + "ovh:CloudProjectDatabase/getUser:getUser": { + "clusterId": "cluster_id", + "createdAt": "created_at", + "serviceName": "service_name" + }, + "ovh:CloudProjectDatabase/getUsers:getUsers": { + "clusterId": "cluster_id", + "serviceName": "service_name", + "userIds": "user_ids" + }, + "ovh:CloudProjectDatabase/integration:Integration": { + "clusterId": "cluster_id", + "destinationServiceId": "destination_service_id", + "serviceName": "service_name", + "sourceServiceId": "source_service_id" + }, + "ovh:CloudProjectDatabase/ipRestriction:IpRestriction": { + "clusterId": "cluster_id", + "serviceName": "service_name" + }, + "ovh:CloudProjectDatabase/kafkaAcl:KafkaAcl": { + "clusterId": "cluster_id", + "serviceName": "service_name" + }, + "ovh:CloudProjectDatabase/kafkaSchemaRegistryAcl:KafkaSchemaRegistryAcl": { + "clusterId": "cluster_id", + "serviceName": "service_name" + }, + "ovh:CloudProjectDatabase/kafkaTopic:KafkaTopic": { + "clusterId": "cluster_id", + "minInsyncReplicas": "min_insync_replicas", + "retentionBytes": "retention_bytes", + "retentionHours": "retention_hours", + "serviceName": "service_name" + }, + "ovh:CloudProjectDatabase/m3DbNamespace:M3DbNamespace": { + "clusterId": "cluster_id", + "retentionBlockDataExpirationDuration": "retention_block_data_expiration_duration", + "retentionBlockSizeDuration": "retention_block_size_duration", + "retentionBufferFutureDuration": "retention_buffer_future_duration", + "retentionBufferPastDuration": "retention_buffer_past_duration", + "retentionPeriodDuration": "retention_period_duration", + "serviceName": "service_name", + "snapshotEnabled": "snapshot_enabled", + "writesToCommitLogEnabled": "writes_to_commit_log_enabled" + }, + "ovh:CloudProjectDatabase/m3DbUser:M3DbUser": { + "clusterId": "cluster_id", + "createdAt": "created_at", + "passwordReset": "password_reset", + "serviceName": "service_name" + }, + "ovh:CloudProjectDatabase/mongoDbUser:MongoDbUser": { + "clusterId": "cluster_id", + "createdAt": "created_at", + "passwordReset": "password_reset", + "serviceName": "service_name" + }, + "ovh:CloudProjectDatabase/opensearchPattern:OpensearchPattern": { + "clusterId": "cluster_id", + "maxIndexCount": "max_index_count", + "serviceName": "service_name" + }, + "ovh:CloudProjectDatabase/opensearchUser:OpensearchUser": { + "clusterId": "cluster_id", + "createdAt": "created_at", + "passwordReset": "password_reset", + "serviceName": "service_name" + }, + "ovh:CloudProjectDatabase/postgresSqlConnectionPool:PostgresSqlConnectionPool": { + "clusterId": "cluster_id", + "databaseId": "database_id", + "serviceName": "service_name", + "sslMode": "ssl_mode", + "userId": "user_id" + }, + "ovh:CloudProjectDatabase/postgresSqlUser:PostgresSqlUser": { + "clusterId": "cluster_id", + "createdAt": "created_at", + "passwordReset": "password_reset", + "serviceName": "service_name" + }, + "ovh:CloudProjectDatabase/redisUser:RedisUser": { + "clusterId": "cluster_id", + "createdAt": "created_at", + "passwordReset": "password_reset", + "serviceName": "service_name" + }, + "ovh:CloudProjectDatabase/user:User": { + "clusterId": "cluster_id", + "createdAt": "created_at", + "passwordReset": "password_reset", + "serviceName": "service_name" + }, + "ovh:Dbaas/LogsInputConfigurationFlowgger:LogsInputConfigurationFlowgger": { + "logFormat": "log_format", + "logFraming": "log_framing" + }, + "ovh:Dbaas/LogsInputConfigurationLogstash:LogsInputConfigurationLogstash": { + "filterSection": "filter_section", + "inputSection": "input_section", + "patternSection": "pattern_section" + }, + "ovh:Dbaas/getLogsCluster:getLogsCluster": { + "archiveAllowedNetworks": "archive_allowed_networks", + "clusterId": "cluster_id", + "clusterType": "cluster_type", + "dedicatedInputPem": "dedicated_input_pem", + "directInputAllowedNetworks": "direct_input_allowed_networks", + "directInputPem": "direct_input_pem", + "isDefault": "is_default", + "isUnlocked": "is_unlocked", + "queryAllowedNetworks": "query_allowed_networks", + "serviceName": "service_name" + }, + "ovh:Dbaas/getLogsClusters:getLogsClusters": { + "serviceName": "service_name" + }, + "ovh:Dbaas/getLogsInputEngine:getLogsInputEngine": { + "isDeprecated": "is_deprecated", + "serviceName": "service_name" + }, + "ovh:Dbaas/getLogsOutputGraylogStream:getLogsOutputGraylogStream": { + "canAlert": "can_alert", + "coldStorageCompression": "cold_storage_compression", + "coldStorageContent": "cold_storage_content", + "coldStorageEnabled": "cold_storage_enabled", + "coldStorageNotifyEnabled": "cold_storage_notify_enabled", + "coldStorageRetention": "cold_storage_retention", + "coldStorageTarget": "cold_storage_target", + "createdAt": "created_at", + "indexingEnabled": "indexing_enabled", + "indexingMaxSize": "indexing_max_size", + "indexingNotifyEnabled": "indexing_notify_enabled", + "isEditable": "is_editable", + "isShareable": "is_shareable", + "nbAlertCondition": "nb_alert_condition", + "nbArchive": "nb_archive", + "parentStreamId": "parent_stream_id", + "pauseIndexingOnMaxSize": "pause_indexing_on_max_size", + "retentionId": "retention_id", + "serviceName": "service_name", + "streamId": "stream_id", + "updatedAt": "updated_at", + "webSocketEnabled": "web_socket_enabled" + }, + "ovh:Dbaas/logsCluster:LogsCluster": { + "archiveAllowedNetworks": "archive_allowed_networks", + "clusterId": "cluster_id", + "clusterType": "cluster_type", + "dedicatedInputPem": "dedicated_input_pem", + "directInputAllowedNetworks": "direct_input_allowed_networks", + "directInputPem": "direct_input_pem", + "initialArchiveAllowedNetworks": "initial_archive_allowed_networks", + "initialDirectInputAllowedNetworks": "initial_direct_input_allowed_networks", + "initialQueryAllowedNetworks": "initial_query_allowed_networks", + "isDefault": "is_default", + "isUnlocked": "is_unlocked", + "queryAllowedNetworks": "query_allowed_networks", + "serviceName": "service_name" + }, + "ovh:Dbaas/logsInput:LogsInput": { + "allowedNetworks": "allowed_networks", + "createdAt": "created_at", + "engineId": "engine_id", + "exposedPort": "exposed_port", + "inputId": "input_id", + "isRestartRequired": "is_restart_required", + "nbInstance": "nb_instance", + "publicAddress": "public_address", + "serviceName": "service_name", + "sslCertificate": "ssl_certificate", + "streamId": "stream_id", + "updatedAt": "updated_at" + }, + "ovh:Dbaas/logsOutputGraylogStream:LogsOutputGraylogStream": { + "canAlert": "can_alert", + "coldStorageCompression": "cold_storage_compression", + "coldStorageContent": "cold_storage_content", + "coldStorageEnabled": "cold_storage_enabled", + "coldStorageNotifyEnabled": "cold_storage_notify_enabled", + "coldStorageRetention": "cold_storage_retention", + "coldStorageTarget": "cold_storage_target", + "createdAt": "created_at", + "indexingEnabled": "indexing_enabled", + "indexingMaxSize": "indexing_max_size", + "indexingNotifyEnabled": "indexing_notify_enabled", + "isEditable": "is_editable", + "isShareable": "is_shareable", + "nbAlertCondition": "nb_alert_condition", + "nbArchive": "nb_archive", + "parentStreamId": "parent_stream_id", + "pauseIndexingOnMaxSize": "pause_indexing_on_max_size", + "retentionId": "retention_id", + "serviceName": "service_name", + "streamId": "stream_id", + "updatedAt": "updated_at", + "webSocketEnabled": "web_socket_enabled" + }, + "ovh:Dedicated/ServerInstallTaskDetails:ServerInstallTaskDetails": { + "changeLog": "change_log", + "customHostname": "custom_hostname", + "diskGroupId": "disk_group_id", + "installRtm": "install_rtm", + "installSqlServer": "install_sql_server", + "noRaid": "no_raid", + "postInstallationScriptLink": "post_installation_script_link", + "postInstallationScriptReturn": "post_installation_script_return", + "resetHwRaid": "reset_hw_raid", + "softRaidDevices": "soft_raid_devices", + "sshKeyName": "ssh_key_name", + "useDistribKernel": "use_distrib_kernel", + "useSpla": "use_spla" + }, + "ovh:Dedicated/cephAcl:CephAcl": { + "serviceName": "service_name" + }, + "ovh:Dedicated/getCeph:getCeph": { + "CephURN": "urn", + "cephMons": "ceph_mons", + "cephVersion": "ceph_version", + "crushTunables": "crush_tunables", + "serviceName": "service_name" + }, + "ovh:Dedicated/getNasHA:getNasHA": { + "NasHAURN": "urn", + "canCreatePartition": "can_create_partition", + "customName": "custom_name", + "diskType": "disk_type", + "serviceName": "service_name", + "zpoolCapacity": "zpool_capacity", + "zpoolSize": "zpool_size" + }, + "ovh:Dedicated/getServerBoots:getServerBoots": { + "bootType": "boot_type", + "results": "result", + "serviceName": "service_name" + }, + "ovh:Dedicated/nasHAPartition:NasHAPartition": { + "serviceName": "service_name", + "usedBySnapshots": "used_by_snapshots" + }, + "ovh:Dedicated/nasHAPartitionAccess:NasHAPartitionAccess": { + "partitionName": "partition_name", + "serviceName": "service_name" + }, + "ovh:Dedicated/nasHAPartitionSnapshot:NasHAPartitionSnapshot": { + "partitionName": "partition_name", + "serviceName": "service_name" + }, + "ovh:Dedicated/serverInstallTask:ServerInstallTask": { + "bootidOnDestroy": "bootid_on_destroy", + "doneDate": "done_date", + "lastUpdate": "last_update", + "partitionSchemeName": "partition_scheme_name", + "serviceName": "service_name", + "startDate": "start_date", + "templateName": "template_name" + }, + "ovh:Dedicated/serverNetworking:ServerNetworking": { + "serviceName": "service_name" + }, + "ovh:Dedicated/serverRebootTask:ServerRebootTask": { + "doneDate": "done_date", + "lastUpdate": "last_update", + "serviceName": "service_name", + "startDate": "start_date" + }, + "ovh:Dedicated/serverUpdate:ServerUpdate": { + "bootId": "boot_id", + "bootScript": "boot_script", + "serviceName": "service_name" + }, + "ovh:Domain/ZoneOrder:ZoneOrder": { + "expirationDate": "expiration_date", + "orderId": "order_id" + }, + "ovh:Domain/ZoneOrderDetail:ZoneOrderDetail": { + "orderDetailId": "order_detail_id" + }, + "ovh:Domain/ZonePlan:ZonePlan": { + "catalogName": "catalog_name", + "configurations": "configuration", + "planCode": "plan_code", + "pricingMode": "pricing_mode" + }, + "ovh:Domain/ZonePlanOption:ZonePlanOption": { + "catalogName": "catalog_name", + "configurations": "configuration", + "planCode": "plan_code", + "pricingMode": "pricing_mode" + }, + "ovh:Domain/getZone:getZone": { + "ZoneURN": "urn", + "dnssecSupported": "dnssec_supported", + "hasDnsAnycast": "has_dns_anycast", + "lastUpdate": "last_update", + "nameServers": "name_servers" + }, + "ovh:Domain/zone:Zone": { + "ZoneURN": "urn", + "dnssecSupported": "dnssec_supported", + "hasDnsAnycast": "has_dns_anycast", + "lastUpdate": "last_update", + "nameServers": "name_servers", + "orders": "order", + "ovhSubsidiary": "ovh_subsidiary", + "paymentMean": "payment_mean", + "planOptions": "plan_option" + }, + "ovh:Hosting/PrivateDatabaseOrder:PrivateDatabaseOrder": { + "expirationDate": "expiration_date", + "orderId": "order_id" + }, + "ovh:Hosting/PrivateDatabaseOrderDetail:PrivateDatabaseOrderDetail": { + "orderDetailId": "order_detail_id" + }, + "ovh:Hosting/PrivateDatabasePlan:PrivateDatabasePlan": { + "catalogName": "catalog_name", + "configurations": "configuration", + "planCode": "plan_code", + "pricingMode": "pricing_mode" + }, + "ovh:Hosting/PrivateDatabasePlanOption:PrivateDatabasePlanOption": { + "catalogName": "catalog_name", + "configurations": "configuration", + "planCode": "plan_code", + "pricingMode": "pricing_mode" + }, + "ovh:Hosting/getPrivateDatabase:getPrivateDatabase": { + "displayName": "display_name", + "hostnameFtp": "hostname_ftp", + "portFtp": "port_ftp", + "quotaSize": "quota_size", + "quotaUsed": "quota_used", + "serviceName": "service_name", + "versionLabel": "version_label", + "versionNumber": "version_number" + }, + "ovh:Hosting/getPrivateDatabaseAllowlist:getPrivateDatabaseAllowlist": { + "creationDate": "creation_date", + "lastUpdate": "last_update", + "serviceName": "service_name" + }, + "ovh:Hosting/getPrivateDatabaseDb:getPrivateDatabaseDb": { + "backupTime": "backup_time", + "creationDate": "creation_date", + "databaseName": "database_name", + "quotaUsed": "quota_used", + "serviceName": "service_name" + }, + "ovh:Hosting/getPrivateDatabaseDbUser:getPrivateDatabaseDbUser": { + "grantType": "grant_type", + "userName": "user_name" + }, + "ovh:Hosting/getPrivateDatabaseUser:getPrivateDatabaseUser": { + "creationDate": "creation_date", + "serviceName": "service_name", + "userName": "user_name" + }, + "ovh:Hosting/getPrivateDatabaseUserDatabase:getPrivateDatabaseUserDatabase": { + "databaseName": "database_name", + "grantType": "grant_type" + }, + "ovh:Hosting/getPrivateDatabaseUserGrant:getPrivateDatabaseUserGrant": { + "creationDate": "creation_date", + "databaseName": "database_name", + "serviceName": "service_name", + "userName": "user_name" + }, + "ovh:Hosting/privateDatabase:PrivateDatabase": { + "DatabaseURN": "urn", + "displayName": "display_name", + "hostnameFtp": "hostname_ftp", + "orders": "order", + "ovhSubsidiary": "ovh_subsidiary", + "paymentMean": "payment_mean", + "planOptions": "plan_option", + "portFtp": "port_ftp", + "quotaSize": "quota_size", + "quotaUsed": "quota_used", + "serviceName": "service_name", + "versionLabel": "version_label", + "versionNumber": "version_number" + }, + "ovh:Hosting/privateDatabaseAllowlist:PrivateDatabaseAllowlist": { + "serviceName": "service_name" + }, + "ovh:Hosting/privateDatabaseDb:PrivateDatabaseDb": { + "databaseName": "database_name", + "serviceName": "service_name" + }, + "ovh:Hosting/privateDatabaseUser:PrivateDatabaseUser": { + "serviceName": "service_name", + "userName": "user_name" + }, + "ovh:Hosting/privateDatabaseUserGrant:PrivateDatabaseUserGrant": { + "databaseName": "database_name", + "serviceName": "service_name", + "userName": "user_name" + }, + "ovh:Iam/getPermissionsGroup:getPermissionsGroup": { + "allows": "allow", + "createdAt": "created_at", + "denies": "deny", + "excepts": "except", + "updatedAt": "updated_at" + }, + "ovh:Iam/getPolicy:getPolicy": { + "allows": "allow", + "createdAt": "created_at", + "denies": "deny", + "excepts": "except", + "permissionsGroups": "permissions_groups", + "readOnly": "read_only", + "updatedAt": "updated_at" + }, + "ovh:Iam/getReferenceActionsAction:getReferenceActionsAction": { + "resourceType": "resource_type" + }, + "ovh:Iam/getResourceGroup:getResourceGroup": { + "GroupURN": "urn", + "createdAt": "created_at", + "readOnly": "read_only", + "updatedAt": "updated_at" + }, + "ovh:Iam/getResourceGroups:getResourceGroups": { + "resourceGroups": "resource_groups" + }, + "ovh:Iam/permissionsGroup:PermissionsGroup": { + "allows": "allow", + "createdAt": "created_at", + "denies": "deny", + "excepts": "except", + "updatedAt": "updated_at" + }, + "ovh:Iam/policy:Policy": { + "allows": "allow", + "createdAt": "created_at", + "denies": "deny", + "excepts": "except", + "permissionsGroups": "permissions_groups", + "readOnly": "read_only", + "updatedAt": "updated_at" + }, + "ovh:Iam/resourceGroup:ResourceGroup": { + "GroupURN": "urn", + "createdAt": "created_at", + "readOnly": "read_only", + "updatedAt": "updated_at" + }, + "ovh:Ip/IpServiceOrder:IpServiceOrder": { + "expirationDate": "expiration_date", + "orderId": "order_id" + }, + "ovh:Ip/IpServiceOrderDetail:IpServiceOrderDetail": { + "orderDetailId": "order_detail_id" + }, + "ovh:Ip/IpServicePlan:IpServicePlan": { + "catalogName": "catalog_name", + "configurations": "configuration", + "planCode": "plan_code", + "pricingMode": "pricing_mode" + }, + "ovh:Ip/IpServicePlanOption:IpServicePlanOption": { + "catalogName": "catalog_name", + "configurations": "configuration", + "planCode": "plan_code", + "pricingMode": "pricing_mode" + }, + "ovh:Ip/IpServiceRoutedTo:IpServiceRoutedTo": { + "serviceName": "service_name" + }, + "ovh:Ip/getService:getService": { + "canBeTerminated": "can_be_terminated", + "organisationId": "organisation_id", + "routedTos": "routed_to", + "serviceName": "service_name" + }, + "ovh:Ip/getServiceRoutedTo:getServiceRoutedTo": { + "serviceName": "service_name" + }, + "ovh:Ip/ipService:IpService": { + "canBeTerminated": "can_be_terminated", + "orders": "order", + "organisationId": "organisation_id", + "ovhSubsidiary": "ovh_subsidiary", + "paymentMean": "payment_mean", + "planOptions": "plan_option", + "routedTos": "routed_to", + "serviceName": "service_name" + }, + "ovh:Ip/reverse:Reverse": { + "ReverseIp": "ip_reverse", + "ReverseValue": "reverse" + }, + "ovh:IpLoadBalancing/HttpFarmProbe:HttpFarmProbe": { + "forceSsl": "force_ssl" + }, + "ovh:IpLoadBalancing/HttpRouteRule:HttpRouteRule": { + "ruleId": "rule_id", + "subField": "sub_field" + }, + "ovh:IpLoadBalancing/LoadBalancerOrder:LoadBalancerOrder": { + "expirationDate": "expiration_date", + "orderId": "order_id" + }, + "ovh:IpLoadBalancing/LoadBalancerOrderDetail:LoadBalancerOrderDetail": { + "orderDetailId": "order_detail_id" + }, + "ovh:IpLoadBalancing/LoadBalancerOrderableZone:LoadBalancerOrderableZone": { + "planCode": "plan_code" + }, + "ovh:IpLoadBalancing/LoadBalancerPlan:LoadBalancerPlan": { + "catalogName": "catalog_name", + "configurations": "configuration", + "planCode": "plan_code", + "pricingMode": "pricing_mode" + }, + "ovh:IpLoadBalancing/LoadBalancerPlanOption:LoadBalancerPlanOption": { + "catalogName": "catalog_name", + "configurations": "configuration", + "planCode": "plan_code", + "pricingMode": "pricing_mode" + }, + "ovh:IpLoadBalancing/TcpFarmProbe:TcpFarmProbe": { + "forceSsl": "force_ssl" + }, + "ovh:IpLoadBalancing/TcpRouteRule:TcpRouteRule": { + "ruleId": "rule_id", + "subField": "sub_field" + }, + "ovh:IpLoadBalancing/getIpLoadBalancing:getIpLoadBalancing": { + "displayName": "display_name", + "ipLoadbalancing": "ip_loadbalancing", + "metricsToken": "metrics_token", + "orderableZones": "orderable_zone", + "serviceName": "service_name", + "sslConfiguration": "ssl_configuration", + "vrackEligibility": "vrack_eligibility", + "vrackName": "vrack_name", + "zones": "zone" + }, + "ovh:IpLoadBalancing/getIpLoadBalancingOrderableZone:getIpLoadBalancingOrderableZone": { + "planCode": "plan_code" + }, + "ovh:IpLoadBalancing/getVrackNetwork:getVrackNetwork": { + "displayName": "display_name", + "natIp": "nat_ip", + "serviceName": "service_name", + "vrackNetworkId": "vrack_network_id" + }, + "ovh:IpLoadBalancing/httpFarm:HttpFarm": { + "displayName": "display_name", + "serviceName": "service_name", + "vrackNetworkId": "vrack_network_id" + }, + "ovh:IpLoadBalancing/httpFarmServer:HttpFarmServer": { + "displayName": "display_name", + "farmId": "farm_id", + "onMarkedDown": "on_marked_down", + "proxyProtocolVersion": "proxy_protocol_version", + "serviceName": "service_name" + }, + "ovh:IpLoadBalancing/httpFrontend:HttpFrontend": { + "allowedSources": "allowed_source", + "dedicatedIpfos": "dedicated_ipfo", + "defaultFarmId": "default_farm_id", + "defaultSslId": "default_ssl_id", + "displayName": "display_name", + "httpHeaders": "http_header", + "redirectLocation": "redirect_location", + "serviceName": "service_name" + }, + "ovh:IpLoadBalancing/httpRoute:HttpRoute": { + "displayName": "display_name", + "frontendId": "frontend_id", + "serviceName": "service_name" + }, + "ovh:IpLoadBalancing/httpRouteRule:HttpRouteRule": { + "displayName": "display_name", + "routeId": "route_id", + "serviceName": "service_name", + "subField": "sub_field" + }, + "ovh:IpLoadBalancing/loadBalancer:LoadBalancer": { + "LoadBalancerURN": "urn", + "displayName": "display_name", + "ipLoadbalancing": "ip_loadbalancing", + "metricsToken": "metrics_token", + "orderableZones": "orderable_zone", + "orders": "order", + "ovhSubsidiary": "ovh_subsidiary", + "paymentMean": "payment_mean", + "planOptions": "plan_option", + "serviceName": "service_name", + "sslConfiguration": "ssl_configuration", + "vrackEligibility": "vrack_eligibility", + "vrackName": "vrack_name", + "zones": "zone" + }, + "ovh:IpLoadBalancing/refresh:Refresh": { + "serviceName": "service_name" + }, + "ovh:IpLoadBalancing/tcpFarm:TcpFarm": { + "displayName": "display_name", + "serviceName": "service_name", + "vrackNetworkId": "vrack_network_id" + }, + "ovh:IpLoadBalancing/tcpFarmServer:TcpFarmServer": { + "displayName": "display_name", + "farmId": "farm_id", + "onMarkedDown": "on_marked_down", + "proxyProtocolVersion": "proxy_protocol_version", + "serviceName": "service_name" + }, + "ovh:IpLoadBalancing/tcpFrontend:TcpFrontend": { + "allowedSources": "allowed_source", + "dedicatedIpfos": "dedicated_ipfo", + "defaultFarmId": "default_farm_id", + "defaultSslId": "default_ssl_id", + "displayName": "display_name", + "serviceName": "service_name" + }, + "ovh:IpLoadBalancing/tcpRoute:TcpRoute": { + "displayName": "display_name", + "frontendId": "frontend_id", + "serviceName": "service_name" + }, + "ovh:IpLoadBalancing/tcpRouteRule:TcpRouteRule": { + "displayName": "display_name", + "routeId": "route_id", + "serviceName": "service_name", + "subField": "sub_field" + }, + "ovh:IpLoadBalancing/vrackNetwork:VrackNetwork": { + "displayName": "display_name", + "farmIds": "farm_id", + "natIp": "nat_ip", + "serviceName": "service_name", + "vrackNetworkId": "vrack_network_id" + }, + "ovh:Me/InstallationTemplateCustomization:InstallationTemplateCustomization": { + "changeLog": "change_log", + "customHostname": "custom_hostname", + "postInstallationScriptLink": "post_installation_script_link", + "postInstallationScriptReturn": "post_installation_script_return", + "sshKeyName": "ssh_key_name", + "useDistributionKernel": "use_distribution_kernel" + }, + "ovh:Me/aPIOAuth2Client:APIOAuth2Client": { + "callbackUrls": "callback_urls", + "clientId": "client_id", + "clientSecret": "client_secret" + }, + "ovh:Me/getAPIOAuth2Client:getAPIOAuth2Client": { + "callbackUrls": "callback_urls", + "clientId": "client_id" + }, + "ovh:Me/getAPIOAuth2Clients:getAPIOAuth2Clients": { + "clientIds": "client_ids" + }, + "ovh:Me/getIdentityGroup:getIdentityGroup": { + "defaultGroup": "default_group", + "lastUpdate": "last_update" + }, + "ovh:Me/getIdentityUser:getIdentityUser": { + "UserURN": "urn", + "lastUpdate": "last_update", + "passwordLastUpdate": "password_last_update" + }, + "ovh:Me/getInstallationTemplate:getInstallationTemplate": { + "availableLanguages": "available_languages", + "bitFormat": "bit_format", + "customizations": "customization", + "defaultLanguage": "default_language", + "hardRaidConfiguration": "hard_raid_configuration", + "lastModification": "last_modification", + "lvmReady": "lvm_ready", + "partitionSchemes": "partition_scheme", + "supportsDistributionKernel": "supports_distribution_kernel", + "supportsRtm": "supports_rtm", + "supportsSqlServer": "supports_sql_server", + "templateName": "template_name" + }, + "ovh:Me/getInstallationTemplateCustomization:getInstallationTemplateCustomization": { + "changeLog": "change_log", + "customHostname": "custom_hostname", + "postInstallationScriptLink": "post_installation_script_link", + "postInstallationScriptReturn": "post_installation_script_return", + "sshKeyName": "ssh_key_name", + "useDistributionKernel": "use_distribution_kernel" + }, + "ovh:Me/getInstallationTemplatePartitionScheme:getInstallationTemplatePartitionScheme": { + "hardwareRaids": "hardware_raid", + "partitions": "partition" + }, + "ovh:Me/getInstallationTemplatePartitionSchemePartition:getInstallationTemplatePartitionSchemePartition": { + "volumeName": "volume_name" + }, + "ovh:Me/getInstallationTemplates:getInstallationTemplates": { + "results": "result" + }, + "ovh:Me/getIpxeScripts:getIpxeScripts": { + "results": "result" + }, + "ovh:Me/getMe:getMe": { + "AccountURN": "urn", + "birthCity": "birth_city", + "birthDay": "birth_day", + "companyNationalIdentificationNumber": "company_national_identification_number", + "corporationType": "corporation_type", + "currencies": "currency", + "customerCode": "customer_code", + "italianSdi": "italian_sdi", + "nationalIdentificationNumber": "national_identification_number", + "ovhCompany": "ovh_company", + "ovhSubsidiary": "ovh_subsidiary", + "phoneCountry": "phone_country", + "spareEmail": "spare_email" + }, + "ovh:Me/getPaymentmeanBankAccount:getPaymentmeanBankAccount": { + "descriptionRegexp": "description_regexp", + "useDefault": "use_default", + "useOldest": "use_oldest" + }, + "ovh:Me/getPaymentmeanCreditCard:getPaymentmeanCreditCard": { + "descriptionRegexp": "description_regexp", + "useDefault": "use_default", + "useLastToExpire": "use_last_to_expire" + }, + "ovh:Me/getSshKey:getSshKey": { + "keyName": "key_name" + }, + "ovh:Me/identityGroup:IdentityGroup": { + "GroupURN": "urn", + "defaultGroup": "default_group", + "lastUpdate": "last_update" + }, + "ovh:Me/identityUser:IdentityUser": { + "UserURN": "urn", + "lastUpdate": "last_update", + "passwordLastUpdate": "password_last_update" + }, + "ovh:Me/installationTemplate:InstallationTemplate": { + "availableLanguages": "available_languages", + "baseTemplateName": "base_template_name", + "bitFormat": "bit_format", + "defaultLanguage": "default_language", + "hardRaidConfiguration": "hard_raid_configuration", + "lastModification": "last_modification", + "lvmReady": "lvm_ready", + "removeDefaultPartitionSchemes": "remove_default_partition_schemes", + "supportsDistributionKernel": "supports_distribution_kernel", + "supportsRtm": "supports_rtm", + "supportsSqlServer": "supports_sql_server", + "templateName": "template_name" + }, + "ovh:Me/installationTemplatePartitionScheme:InstallationTemplatePartitionScheme": { + "templateName": "template_name" + }, + "ovh:Me/installationTemplatePartitionSchemeHardwareRaid:InstallationTemplatePartitionSchemeHardwareRaid": { + "schemeName": "scheme_name", + "templateName": "template_name" + }, + "ovh:Me/installationTemplatePartitionSchemePartition:InstallationTemplatePartitionSchemePartition": { + "schemeName": "scheme_name", + "templateName": "template_name", + "volumeName": "volume_name" + }, + "ovh:Me/sshKey:SshKey": { + "keyName": "key_name" + }, + "ovh:Order/getCart:getCart": { + "cartId": "cart_id", + "ovhSubsidiary": "ovh_subsidiary", + "readOnly": "read_only" + }, + "ovh:Order/getCartProduct:getCartProduct": { + "cartId": "cart_id", + "results": "result" + }, + "ovh:Order/getCartProductOptions:getCartProductOptions": { + "cartId": "cart_id", + "catalogName": "catalog_name", + "planCode": "plan_code", + "results": "result" + }, + "ovh:Order/getCartProductOptionsPlan:getCartProductOptionsPlan": { + "cartId": "cart_id", + "catalogName": "catalog_name", + "optionsPlanCode": "options_plan_code", + "planCode": "plan_code", + "priceCapacity": "price_capacity", + "productName": "product_name", + "productType": "product_type", + "selectedPrices": "selected_price" + }, + "ovh:Order/getCartProductOptionsPlanPrice:getCartProductOptionsPlanPrice": { + "maximumQuantity": "maximum_quantity", + "maximumRepeat": "maximum_repeat", + "minimumQuantity": "minimum_quantity", + "minimumRepeat": "minimum_repeat", + "priceInUcents": "price_in_ucents", + "prices": "price", + "pricingMode": "pricing_mode", + "pricingType": "pricing_type" + }, + "ovh:Order/getCartProductOptionsPlanPricePrice:getCartProductOptionsPlanPricePrice": { + "currencyCode": "currency_code" + }, + "ovh:Order/getCartProductOptionsPlanSelectedPrice:getCartProductOptionsPlanSelectedPrice": { + "maximumQuantity": "maximum_quantity", + "maximumRepeat": "maximum_repeat", + "minimumQuantity": "minimum_quantity", + "minimumRepeat": "minimum_repeat", + "priceInUcents": "price_in_ucents", + "prices": "price", + "pricingMode": "pricing_mode", + "pricingType": "pricing_type" + }, + "ovh:Order/getCartProductOptionsPlanSelectedPricePrice:getCartProductOptionsPlanSelectedPricePrice": { + "currencyCode": "currency_code" + }, + "ovh:Order/getCartProductOptionsResult:getCartProductOptionsResult": { + "planCode": "plan_code", + "productName": "product_name", + "productType": "product_type" + }, + "ovh:Order/getCartProductOptionsResultPrice:getCartProductOptionsResultPrice": { + "maximumQuantity": "maximum_quantity", + "maximumRepeat": "maximum_repeat", + "minimumQuantity": "minimum_quantity", + "minimumRepeat": "minimum_repeat", + "priceInUcents": "price_in_ucents", + "prices": "price", + "pricingMode": "pricing_mode", + "pricingType": "pricing_type" + }, + "ovh:Order/getCartProductOptionsResultPricePrice:getCartProductOptionsResultPricePrice": { + "currencyCode": "currency_code" + }, + "ovh:Order/getCartProductPlan:getCartProductPlan": { + "cartId": "cart_id", + "catalogName": "catalog_name", + "planCode": "plan_code", + "priceCapacity": "price_capacity", + "productName": "product_name", + "productType": "product_type", + "selectedPrices": "selected_price" + }, + "ovh:Order/getCartProductPlanPrice:getCartProductPlanPrice": { + "maximumQuantity": "maximum_quantity", + "maximumRepeat": "maximum_repeat", + "minimumQuantity": "minimum_quantity", + "minimumRepeat": "minimum_repeat", + "priceInUcents": "price_in_ucents", + "prices": "price", + "pricingMode": "pricing_mode", + "pricingType": "pricing_type" + }, + "ovh:Order/getCartProductPlanPricePrice:getCartProductPlanPricePrice": { + "currencyCode": "currency_code" + }, + "ovh:Order/getCartProductPlanSelectedPrice:getCartProductPlanSelectedPrice": { + "maximumQuantity": "maximum_quantity", + "maximumRepeat": "maximum_repeat", + "minimumQuantity": "minimum_quantity", + "minimumRepeat": "minimum_repeat", + "priceInUcents": "price_in_ucents", + "prices": "price", + "pricingMode": "pricing_mode", + "pricingType": "pricing_type" + }, + "ovh:Order/getCartProductPlanSelectedPricePrice:getCartProductPlanSelectedPricePrice": { + "currencyCode": "currency_code" + }, + "ovh:Order/getCartProductResult:getCartProductResult": { + "planCode": "plan_code", + "productName": "product_name", + "productType": "product_type" + }, + "ovh:Order/getCartProductResultPrice:getCartProductResultPrice": { + "maximumQuantity": "maximum_quantity", + "maximumRepeat": "maximum_repeat", + "minimumQuantity": "minimum_quantity", + "minimumRepeat": "minimum_repeat", + "priceInUcents": "price_in_ucents", + "prices": "price", + "pricingMode": "pricing_mode", + "pricingType": "pricing_type" + }, + "ovh:Order/getCartProductResultPricePrice:getCartProductResultPricePrice": { + "currencyCode": "currency_code" + }, + "ovh:Vps/getVps:getVps": { + "VpsURN": "urn", + "serviceName": "service_name" + }, + "ovh:Vps/getVpss:getVpss": { + "results": "result" + }, + "ovh:Vrack/VrackOrder:VrackOrder": { + "expirationDate": "expiration_date", + "orderId": "order_id" + }, + "ovh:Vrack/VrackOrderDetail:VrackOrderDetail": { + "orderDetailId": "order_detail_id" + }, + "ovh:Vrack/VrackPlan:VrackPlan": { + "catalogName": "catalog_name", + "configurations": "configuration", + "planCode": "plan_code", + "pricingMode": "pricing_mode" + }, + "ovh:Vrack/VrackPlanOption:VrackPlanOption": { + "catalogName": "catalog_name", + "configurations": "configuration", + "planCode": "plan_code", + "pricingMode": "pricing_mode" + }, + "ovh:Vrack/cloudProject:CloudProject": { + "projectId": "project_id", + "serviceName": "service_name" + }, + "ovh:Vrack/dedicatedServer:DedicatedServer": { + "serverId": "server_id", + "serviceName": "service_name" + }, + "ovh:Vrack/dedicatedServerInterface:DedicatedServerInterface": { + "interfaceId": "interface_id", + "serviceName": "service_name" + }, + "ovh:Vrack/getVracks:getVracks": { + "results": "result" + }, + "ovh:Vrack/ipAddress:IpAddress": { + "serviceName": "service_name" + }, + "ovh:Vrack/ipLoadbalancing:IpLoadbalancing": { + "LoadbalancingId": "ip_loadbalancing", + "serviceName": "service_name" + }, + "ovh:Vrack/vrack:Vrack": { + "VrackURN": "urn", + "orders": "order", + "ovhSubsidiary": "ovh_subsidiary", + "paymentMean": "payment_mean", + "planOptions": "plan_option", + "serviceName": "service_name" + }, + "ovh:index/getInstallationTemplates:getInstallationTemplates": { + "results": "result" + }, + "ovh:index/getServer:getServer": { + "ServerURN": "urn", + "bootId": "boot_id", + "bootScript": "boot_script", + "commercialRange": "commercial_range", + "enabledPublicVnis": "enabled_public_vnis", + "enabledVrackAggregationVnis": "enabled_vrack_aggregation_vnis", + "enabledVrackVnis": "enabled_vrack_vnis", + "linkSpeed": "link_speed", + "professionalUse": "professional_use", + "rescueMail": "rescue_mail", + "rootDevice": "root_device", + "serverId": "server_id", + "serviceName": "service_name", + "supportLevel": "support_level" + }, + "ovh:index/getServerVni:getServerVni": { + "serverName": "server_name" + }, + "ovh:index/getServers:getServers": { + "results": "result" + }, + "ovh:index/getVrackNetworks:getVrackNetworks": { + "results": "result", + "serviceName": "service_name", + "vlanId": "vlan_id" + }, + "ovh:index:Provider": { + "applicationKey": "application_key", + "applicationSecret": "application_secret", + "consumerKey": "consumer_key" + } + }, + "renamedConfigProperties": { + "applicationKey": "application_key", + "applicationSecret": "application_secret", + "consumerKey": "consumer_key" + } + } +} \ No newline at end of file diff --git a/provider/cmd/pulumi-resource-ovh/main.go b/provider/cmd/pulumi-resource-ovh/main.go index 41a4276e..b40f7029 100644 --- a/provider/cmd/pulumi-resource-ovh/main.go +++ b/provider/cmd/pulumi-resource-ovh/main.go @@ -17,10 +17,12 @@ package main import ( + "context" _ "embed" - "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfbridge" + ovh "github.com/ovh/pulumi-ovh/provider" - "github.com/ovh/pulumi-ovh/provider/pkg/version" + //"github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfbridge" + "github.com/pulumi/pulumi-terraform-bridge/pf/tfbridge" ) //go:embed schema-embed.json @@ -28,5 +30,7 @@ var pulumiSchema []byte func main() { // Modify the path to point to the new provider - tfbridge.Main("ovh", version.Version, ovh.Provider(), pulumiSchema) + //tfbridge.Main("ovh", version.Version, ovh.Provider(), pulumiSchema) + + tfbridge.MainWithMuxer(context.Background(), "ovh", ovh.Provider(), pulumiSchema) } diff --git a/provider/cmd/pulumi-resource-ovh/schema.json b/provider/cmd/pulumi-resource-ovh/schema.json index a6e1baa9..db4624a1 100644 --- a/provider/cmd/pulumi-resource-ovh/schema.json +++ b/provider/cmd/pulumi-resource-ovh/schema.json @@ -479,7 +479,7 @@ "$ref": "pulumi.json#/Any" } }, - "description": "Taints to apply to each node\n" + "description": "Taints to apply to each node [NodeSpec kubernetes documentation](https://kubernetes.io/docs/reference/kubernetes-api/cluster-resources/node-v1/#NodeSpec)\n" }, "unschedulable": { "type": "boolean", @@ -1238,10 +1238,12 @@ "ovh:CloudProject/getKubeNodePoolTemplate:getKubeNodePoolTemplate": { "properties": { "metadata": { - "$ref": "#/types/ovh:CloudProject/getKubeNodePoolTemplateMetadata:getKubeNodePoolTemplateMetadata" + "$ref": "#/types/ovh:CloudProject/getKubeNodePoolTemplateMetadata:getKubeNodePoolTemplateMetadata", + "description": "metadata\n" }, "spec": { - "$ref": "#/types/ovh:CloudProject/getKubeNodePoolTemplateSpec:getKubeNodePoolTemplateSpec" + "$ref": "#/types/ovh:CloudProject/getKubeNodePoolTemplateSpec:getKubeNodePoolTemplateSpec", + "description": "spec\n" } }, "type": "object" @@ -1252,19 +1254,22 @@ "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" @@ -1278,10 +1283,12 @@ "additionalProperties": { "$ref": "pulumi.json#/Any" } - } + }, + "description": "taints\n" }, "unschedulable": { - "type": "boolean" + "type": "boolean", + "description": "unschedulable\n" } }, "type": "object" @@ -1869,10 +1876,12 @@ "items": { "type": "string" }, + "description": "Interface Mac address\n", "willReplaceOnChanges": true }, "type": { "type": "string", + "description": "Interface type\n", "willReplaceOnChanges": true } }, @@ -4289,8 +4298,170 @@ "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{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst registry = ovh.CloudProject.getContainerRegistry({\n serviceName: \"XXXXXX\",\n registryId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n});\nconst my_mgt_iprestrictions = new ovh.cloudproject.ContainerRegistryIPRestrictionsManagement(\"my-mgt-iprestrictions\", {\n serviceName: ovh_cloud_project_containerregistry.registry.service_name,\n registryId: ovh_cloud_project_containerregistry.registry.id,\n ipRestrictions: [{\n ip_block: \"xxx.xxx.xxx.xxx/xx\",\n description: \"xxxxxxx\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nregistry = ovh.CloudProject.get_container_registry(service_name=\"XXXXXX\",\n registry_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\nmy_mgt_iprestrictions = ovh.cloud_project.ContainerRegistryIPRestrictionsManagement(\"my-mgt-iprestrictions\",\n service_name=ovh_cloud_project_containerregistry[\"registry\"][\"service_name\"],\n registry_id=ovh_cloud_project_containerregistry[\"registry\"][\"id\"],\n ip_restrictions=[{\n \"ip_block\": \"xxx.xxx.xxx.xxx/xx\",\n \"description\": \"xxxxxxx\",\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var registry = Ovh.CloudProject.GetContainerRegistry.Invoke(new()\n {\n ServiceName = \"XXXXXX\",\n RegistryId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n });\n\n var my_mgt_iprestrictions = new Ovh.CloudProject.ContainerRegistryIPRestrictionsManagement(\"my-mgt-iprestrictions\", new()\n {\n ServiceName = ovh_cloud_project_containerregistry.Registry.Service_name,\n RegistryId = ovh_cloud_project_containerregistry.Registry.Id,\n IpRestrictions = new[]\n {\n \n {\n { \"ip_block\", \"xxx.xxx.xxx.xxx/xx\" },\n { \"description\", \"xxxxxxx\" },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.GetContainerRegistry(ctx, \u0026cloudproject.GetContainerRegistryArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tRegistryId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewContainerRegistryIPRestrictionsManagement(ctx, \"my-mgt-iprestrictions\", \u0026CloudProject.ContainerRegistryIPRestrictionsManagementArgs{\n\t\t\tServiceName: pulumi.Any(ovh_cloud_project_containerregistry.Registry.Service_name),\n\t\t\tRegistryId: pulumi.Any(ovh_cloud_project_containerregistry.Registry.Id),\n\t\t\tIpRestrictions: pulumi.MapArray{\n\t\t\t\tpulumi.Map{\n\t\t\t\t\t\"ip_block\": pulumi.Any(\"xxx.xxx.xxx.xxx/xx\"),\n\t\t\t\t\t\"description\": pulumi.Any(\"xxxxxxx\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetContainerRegistryArgs;\nimport com.pulumi.ovh.CloudProject.ContainerRegistryIPRestrictionsManagement;\nimport com.pulumi.ovh.CloudProject.ContainerRegistryIPRestrictionsManagementArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var registry = CloudProjectFunctions.getContainerRegistry(GetContainerRegistryArgs.builder()\n .serviceName(\"XXXXXX\")\n .registryId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\n .build());\n\n var my_mgt_iprestrictions = new ContainerRegistryIPRestrictionsManagement(\"my-mgt-iprestrictions\", ContainerRegistryIPRestrictionsManagementArgs.builder() \n .serviceName(ovh_cloud_project_containerregistry.registry().service_name())\n .registryId(ovh_cloud_project_containerregistry.registry().id())\n .ipRestrictions(Map.ofEntries(\n Map.entry(\"ip_block\", \"xxx.xxx.xxx.xxx/xx\"),\n Map.entry(\"description\", \"xxxxxxx\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n my-mgt-iprestrictions:\n type: ovh:CloudProject:ContainerRegistryIPRestrictionsManagement\n properties:\n serviceName: ${ovh_cloud_project_containerregistry.registry.service_name}\n registryId: ${ovh_cloud_project_containerregistry.registry.id}\n ipRestrictions:\n - ip_block: xxx.xxx.xxx.xxx/xx\n description: xxxxxxx\nvariables:\n registry:\n fn::invoke:\n Function: ovh:CloudProject:getContainerRegistry\n Arguments:\n serviceName: XXXXXX\n registryId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\n```\n{{% /example %}}\n{{% /examples %}}", + "properties": { + "ipRestrictions": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "pulumi.json#/Any" + } + }, + "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": { + "$ref": "pulumi.json#/Any" + } + }, + "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", + "serviceName" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering ContainerRegistryIPRestrictionsManagement resources.\n", + "properties": { + "ipRestrictions": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "pulumi.json#/Any" + } + }, + "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{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst registry = ovh.CloudProject.getContainerRegistry({\n serviceName: \"XXXXXX\",\n registryId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n});\nconst my_registry_iprestrictions = new ovh.cloudproject.ContainerRegistryIPRestrictionsRegistry(\"my-registry-iprestrictions\", {\n serviceName: ovh_cloud_project_containerregistry.registry.service_name,\n registryId: ovh_cloud_project_containerregistry.registry.id,\n ipRestrictions: [{\n ip_block: \"xxx.xxx.xxx.xxx/xx\",\n description: \"xxxxxxx\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nregistry = ovh.CloudProject.get_container_registry(service_name=\"XXXXXX\",\n registry_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\nmy_registry_iprestrictions = ovh.cloud_project.ContainerRegistryIPRestrictionsRegistry(\"my-registry-iprestrictions\",\n service_name=ovh_cloud_project_containerregistry[\"registry\"][\"service_name\"],\n registry_id=ovh_cloud_project_containerregistry[\"registry\"][\"id\"],\n ip_restrictions=[{\n \"ip_block\": \"xxx.xxx.xxx.xxx/xx\",\n \"description\": \"xxxxxxx\",\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var registry = Ovh.CloudProject.GetContainerRegistry.Invoke(new()\n {\n ServiceName = \"XXXXXX\",\n RegistryId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n });\n\n var my_registry_iprestrictions = new Ovh.CloudProject.ContainerRegistryIPRestrictionsRegistry(\"my-registry-iprestrictions\", new()\n {\n ServiceName = ovh_cloud_project_containerregistry.Registry.Service_name,\n RegistryId = ovh_cloud_project_containerregistry.Registry.Id,\n IpRestrictions = new[]\n {\n \n {\n { \"ip_block\", \"xxx.xxx.xxx.xxx/xx\" },\n { \"description\", \"xxxxxxx\" },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.GetContainerRegistry(ctx, \u0026cloudproject.GetContainerRegistryArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tRegistryId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewContainerRegistryIPRestrictionsRegistry(ctx, \"my-registry-iprestrictions\", \u0026CloudProject.ContainerRegistryIPRestrictionsRegistryArgs{\n\t\t\tServiceName: pulumi.Any(ovh_cloud_project_containerregistry.Registry.Service_name),\n\t\t\tRegistryId: pulumi.Any(ovh_cloud_project_containerregistry.Registry.Id),\n\t\t\tIpRestrictions: pulumi.MapArray{\n\t\t\t\tpulumi.Map{\n\t\t\t\t\t\"ip_block\": pulumi.Any(\"xxx.xxx.xxx.xxx/xx\"),\n\t\t\t\t\t\"description\": pulumi.Any(\"xxxxxxx\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetContainerRegistryArgs;\nimport com.pulumi.ovh.CloudProject.ContainerRegistryIPRestrictionsRegistry;\nimport com.pulumi.ovh.CloudProject.ContainerRegistryIPRestrictionsRegistryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var registry = CloudProjectFunctions.getContainerRegistry(GetContainerRegistryArgs.builder()\n .serviceName(\"XXXXXX\")\n .registryId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\n .build());\n\n var my_registry_iprestrictions = new ContainerRegistryIPRestrictionsRegistry(\"my-registry-iprestrictions\", ContainerRegistryIPRestrictionsRegistryArgs.builder() \n .serviceName(ovh_cloud_project_containerregistry.registry().service_name())\n .registryId(ovh_cloud_project_containerregistry.registry().id())\n .ipRestrictions(Map.ofEntries(\n Map.entry(\"ip_block\", \"xxx.xxx.xxx.xxx/xx\"),\n Map.entry(\"description\", \"xxxxxxx\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n my-registry-iprestrictions:\n type: ovh:CloudProject:ContainerRegistryIPRestrictionsRegistry\n properties:\n serviceName: ${ovh_cloud_project_containerregistry.registry.service_name}\n registryId: ${ovh_cloud_project_containerregistry.registry.id}\n ipRestrictions:\n - ip_block: xxx.xxx.xxx.xxx/xx\n description: xxxxxxx\nvariables:\n registry:\n fn::invoke:\n Function: ovh:CloudProject:getContainerRegistry\n Arguments:\n serviceName: XXXXXX\n registryId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\n```\n{{% /example %}}\n{{% /examples %}}", + "properties": { + "ipRestrictions": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "pulumi.json#/Any" + } + }, + "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": { + "$ref": "pulumi.json#/Any" + } + }, + "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", + "serviceName" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering ContainerRegistryIPRestrictionsRegistry resources.\n", + "properties": { + "ipRestrictions": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "pulumi.json#/Any" + } + }, + "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{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst my_oidc = 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 oidcGroupsClaim: \"groups\",\n oidcAdminGroup: \"harbor-admin\",\n oidcVerifyCert: true,\n oidcAutoOnboard: true,\n oidcUserClaim: \"preferred_username\",\n deleteUsers: false,\n});\nexport const oidcClientSecret = my_oidc.oidcClientSecret;\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_oidc = ovh.cloud_project.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_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 my_oidc = 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 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\"] = my_oidc.OidcClientSecret,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.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\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\", my_oidc.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.pulumi.ovh.CloudProject.ContainerRegistryOIDC;\nimport com.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 my_oidc = new ContainerRegistryOIDC(\"my-oidc\", 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 .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\", my_oidc.oidcClientSecret());\n }\n}\n```\n```yaml\nresources:\n my-oidc:\n type: ovh:CloudProject:ContainerRegistryOIDC\n properties:\n serviceName: XXXXXX\n registryId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\n #required field\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 #optional field\n oidcGroupsClaim: groups\n oidcAdminGroup: harbor-admin\n oidcVerifyCert: true\n oidcAutoOnboard: true\n oidcUserClaim: preferred_username\n deleteUsers: false\noutputs:\n oidcClientSecret: ${[\"my-oidc\"].oidcClientSecret}\n```\n{{% /example %}}\n{{% /examples %}}\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., bash\n\n```sh\n $ pulumi import ovh:CloudProject/containerRegistryOIDC:ContainerRegistryOIDC my-oidc service_name/registry_id\n```\n\n ", + "description": "Creates an OIDC configuration in an OVHcloud Managed Private Registry.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst my_oidc = 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 oidcGroupsClaim: \"groups\",\n oidcAdminGroup: \"harbor-admin\",\n oidcVerifyCert: true,\n oidcAutoOnboard: true,\n oidcUserClaim: \"preferred_username\",\n deleteUsers: false,\n});\nexport const oidcClientSecret = my_oidc.oidcClientSecret;\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_oidc = ovh.cloud_project.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_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 my_oidc = 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 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\"] = my_oidc.OidcClientSecret,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.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\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\", my_oidc.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.pulumi.ovh.CloudProject.ContainerRegistryOIDC;\nimport com.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 my_oidc = new ContainerRegistryOIDC(\"my-oidc\", 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 .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\", my_oidc.oidcClientSecret());\n }\n}\n```\n```yaml\nresources:\n my-oidc:\n type: ovh:CloudProject:ContainerRegistryOIDC\n properties:\n serviceName: XXXXXX\n registryId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\n #required field\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 #optional field\n oidcGroupsClaim: groups\n oidcAdminGroup: harbor-admin\n oidcVerifyCert: true\n oidcAutoOnboard: true\n oidcUserClaim: preferred_username\n deleteUsers: false\noutputs:\n oidcClientSecret: ${[\"my-oidc\"].oidcClientSecret}\n```\n{{% /example %}}\n{{% /examples %}}\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\n bash\n\n ```sh\n $ pulumi import ovh:CloudProject/containerRegistryOIDC:ContainerRegistryOIDC my-oidc service_name/registry_id\n```\n\n ", "properties": { "deleteUsers": { "type": "boolean", @@ -4587,7 +4758,7 @@ } }, "ovh:CloudProject/database:Database": { - "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\nMinimum settings for each engine (region choice is up to the user):\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst cassandradb = new ovh.cloudproject.Database(\"cassandradb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-cassandra\",\n engine: \"cassandra\",\n version: \"4.0\",\n plan: \"essential\",\n nodes: [\n {\n region: \"BHS\",\n },\n {\n region: \"BHS\",\n },\n {\n region: \"BHS\",\n },\n ],\n flavor: \"db1-4\",\n});\nconst kafkadb = new ovh.cloudproject.Database(\"kafkadb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-kafka\",\n engine: \"kafka\",\n version: \"3.4\",\n plan: \"business\",\n kafkaRestApi: true,\n nodes: [\n {\n region: \"DE\",\n },\n {\n region: \"DE\",\n },\n {\n region: \"DE\",\n },\n ],\n flavor: \"db1-4\",\n});\nconst m3db = new ovh.cloudproject.Database(\"m3db\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-m3db\",\n engine: \"m3db\",\n version: \"1.2\",\n plan: \"essential\",\n nodes: [{\n region: \"BHS\",\n }],\n flavor: \"db1-7\",\n});\nconst mongodb = new ovh.cloudproject.Database(\"mongodb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-mongodb\",\n engine: \"mongodb\",\n version: \"5.0\",\n plan: \"essential\",\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});\nconst redisdb = new ovh.cloudproject.Database(\"redisdb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-redis\",\n engine: \"redis\",\n version: \"6.2\",\n plan: \"essential\",\n nodes: [{\n region: \"BHS\",\n }],\n flavor: \"db1-4\",\n});\nconst grafana = new ovh.cloudproject.Database(\"grafana\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-grafana\",\n engine: \"grafana\",\n version: \"9.1\",\n plan: \"essential\",\n nodes: [{\n region: \"GRA\",\n }],\n flavor: \"db1-4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ncassandradb = ovh.cloud_project.Database(\"cassandradb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-cassandra\",\n engine=\"cassandra\",\n version=\"4.0\",\n plan=\"essential\",\n nodes=[\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"BHS\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"BHS\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"BHS\",\n ),\n ],\n flavor=\"db1-4\")\nkafkadb = ovh.cloud_project.Database(\"kafkadb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-kafka\",\n engine=\"kafka\",\n version=\"3.4\",\n plan=\"business\",\n kafka_rest_api=True,\n nodes=[\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"DE\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"DE\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"DE\",\n ),\n ],\n flavor=\"db1-4\")\nm3db = ovh.cloud_project.Database(\"m3db\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-m3db\",\n engine=\"m3db\",\n version=\"1.2\",\n plan=\"essential\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"BHS\",\n )],\n flavor=\"db1-7\")\nmongodb = ovh.cloud_project.Database(\"mongodb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-mongodb\",\n engine=\"mongodb\",\n version=\"5.0\",\n plan=\"essential\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"GRA\",\n )],\n flavor=\"db1-2\")\nmysqldb = ovh.cloud_project.Database(\"mysqldb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-mysql\",\n engine=\"mysql\",\n version=\"8\",\n plan=\"essential\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"SBG\",\n )],\n flavor=\"db1-4\",\n advanced_configuration={\n \"mysql.sql_mode\": \"ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES\",\n \"mysql.sql_require_primary_key\": \"true\",\n })\nopensearchdb = ovh.cloud_project.Database(\"opensearchdb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-opensearch\",\n engine=\"opensearch\",\n version=\"1\",\n plan=\"essential\",\n opensearch_acls_enabled=True,\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"UK\",\n )],\n flavor=\"db1-4\")\npgsqldb = ovh.cloud_project.Database(\"pgsqldb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-postgresql\",\n engine=\"postgresql\",\n version=\"14\",\n plan=\"essential\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"WAW\",\n )],\n flavor=\"db1-4\")\nredisdb = ovh.cloud_project.Database(\"redisdb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-redis\",\n engine=\"redis\",\n version=\"6.2\",\n plan=\"essential\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"BHS\",\n )],\n flavor=\"db1-4\")\ngrafana = ovh.cloud_project.Database(\"grafana\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-grafana\",\n engine=\"grafana\",\n version=\"9.1\",\n plan=\"essential\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"GRA\",\n )],\n flavor=\"db1-4\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var cassandradb = new Ovh.CloudProject.Database(\"cassandradb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-cassandra\",\n Engine = \"cassandra\",\n Version = \"4.0\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n },\n Flavor = \"db1-4\",\n });\n\n var kafkadb = new Ovh.CloudProject.Database(\"kafkadb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-kafka\",\n Engine = \"kafka\",\n Version = \"3.4\",\n Plan = \"business\",\n KafkaRestApi = true,\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"DE\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"DE\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"DE\",\n },\n },\n Flavor = \"db1-4\",\n });\n\n var m3db = new Ovh.CloudProject.Database(\"m3db\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-m3db\",\n Engine = \"m3db\",\n Version = \"1.2\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n },\n Flavor = \"db1-7\",\n });\n\n var mongodb = new Ovh.CloudProject.Database(\"mongodb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-mongodb\",\n Engine = \"mongodb\",\n Version = \"5.0\",\n Plan = \"essential\",\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 });\n\n var redisdb = new Ovh.CloudProject.Database(\"redisdb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-redis\",\n Engine = \"redis\",\n Version = \"6.2\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n },\n Flavor = \"db1-4\",\n });\n\n var grafana = new Ovh.CloudProject.Database(\"grafana\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-grafana\",\n Engine = \"grafana\",\n Version = \"9.1\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"GRA\",\n },\n },\n Flavor = \"db1-4\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewDatabase(ctx, \"cassandradb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-cassandra\"),\n\t\t\tEngine: pulumi.String(\"cassandra\"),\n\t\t\tVersion: pulumi.String(\"4.0\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"kafkadb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-kafka\"),\n\t\t\tEngine: pulumi.String(\"kafka\"),\n\t\t\tVersion: pulumi.String(\"3.4\"),\n\t\t\tPlan: pulumi.String(\"business\"),\n\t\t\tKafkaRestApi: pulumi.Bool(true),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"DE\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"DE\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"DE\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"m3db\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-m3db\"),\n\t\t\tEngine: pulumi.String(\"m3db\"),\n\t\t\tVersion: pulumi.String(\"1.2\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-7\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"mongodb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-mongodb\"),\n\t\t\tEngine: pulumi.String(\"mongodb\"),\n\t\t\tVersion: pulumi.String(\"5.0\"),\n\t\t\tPlan: pulumi.String(\"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-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})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"redisdb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-redis\"),\n\t\t\tEngine: pulumi.String(\"redis\"),\n\t\t\tVersion: pulumi.String(\"6.2\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"grafana\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-grafana\"),\n\t\t\tEngine: pulumi.String(\"grafana\"),\n\t\t\tVersion: pulumi.String(\"9.1\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"GRA\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.Database;\nimport com.pulumi.ovh.CloudProject.DatabaseArgs;\nimport com.pulumi.ovh.CloudProject.inputs.DatabaseNodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var cassandradb = new Database(\"cassandradb\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-cassandra\")\n .engine(\"cassandra\")\n .version(\"4.0\")\n .plan(\"essential\")\n .nodes( \n DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build())\n .flavor(\"db1-4\")\n .build());\n\n var kafkadb = new Database(\"kafkadb\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-kafka\")\n .engine(\"kafka\")\n .version(\"3.4\")\n .plan(\"business\")\n .kafkaRestApi(true)\n .nodes( \n DatabaseNodeArgs.builder()\n .region(\"DE\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"DE\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"DE\")\n .build())\n .flavor(\"db1-4\")\n .build());\n\n var m3db = new Database(\"m3db\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-m3db\")\n .engine(\"m3db\")\n .version(\"1.2\")\n .plan(\"essential\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build())\n .flavor(\"db1-7\")\n .build());\n\n var mongodb = new Database(\"mongodb\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-mongodb\")\n .engine(\"mongodb\")\n .version(\"5.0\")\n .plan(\"essential\")\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 .build());\n\n var redisdb = new Database(\"redisdb\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-redis\")\n .engine(\"redis\")\n .version(\"6.2\")\n .plan(\"essential\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build())\n .flavor(\"db1-4\")\n .build());\n\n var grafana = new Database(\"grafana\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-grafana\")\n .engine(\"grafana\")\n .version(\"9.1\")\n .plan(\"essential\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"GRA\")\n .build())\n .flavor(\"db1-4\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n cassandradb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-cassandra\n engine: cassandra\n version: '4.0'\n plan: essential\n nodes:\n - region: BHS\n - region: BHS\n - region: BHS\n flavor: db1-4\n kafkadb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-kafka\n engine: kafka\n version: '3.4'\n plan: business\n kafkaRestApi: true\n nodes:\n - region: DE\n - region: DE\n - region: DE\n flavor: db1-4\n m3db:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-m3db\n engine: m3db\n version: '1.2'\n plan: essential\n nodes:\n - region: BHS\n flavor: db1-7\n mongodb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-mongodb\n engine: mongodb\n version: '5.0'\n plan: essential\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 redisdb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-redis\n engine: redis\n version: '6.2'\n plan: essential\n nodes:\n - region: BHS\n flavor: db1-4\n grafana:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-grafana\n engine: grafana\n version: '9.1'\n plan: essential\n nodes:\n - region: GRA\n flavor: db1-4\n```\n\nTo deploy a business PostgreSQL service with two nodes on public network:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst postgresql = new ovh.cloudproject.Database(\"postgresql\", {\n description: \"my-first-postgresql\",\n engine: \"postgresql\",\n flavor: \"db1-15\",\n nodes: [\n {\n region: \"GRA\",\n },\n {\n region: \"GRA\",\n },\n ],\n plan: \"business\",\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n version: \"14\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\npostgresql = ovh.cloud_project.Database(\"postgresql\",\n description=\"my-first-postgresql\",\n engine=\"postgresql\",\n flavor=\"db1-15\",\n nodes=[\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"GRA\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"GRA\",\n ),\n ],\n plan=\"business\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n version=\"14\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var postgresql = new Ovh.CloudProject.Database(\"postgresql\", new()\n {\n Description = \"my-first-postgresql\",\n Engine = \"postgresql\",\n Flavor = \"db1-15\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"GRA\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"GRA\",\n },\n },\n Plan = \"business\",\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Version = \"14\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewDatabase(ctx, \"postgresql\", \u0026CloudProject.DatabaseArgs{\n\t\t\tDescription: pulumi.String(\"my-first-postgresql\"),\n\t\t\tEngine: pulumi.String(\"postgresql\"),\n\t\t\tFlavor: pulumi.String(\"db1-15\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"GRA\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"GRA\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPlan: pulumi.String(\"business\"),\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tVersion: pulumi.String(\"14\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.Database;\nimport com.pulumi.ovh.CloudProject.DatabaseArgs;\nimport com.pulumi.ovh.CloudProject.inputs.DatabaseNodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var postgresql = new Database(\"postgresql\", DatabaseArgs.builder() \n .description(\"my-first-postgresql\")\n .engine(\"postgresql\")\n .flavor(\"db1-15\")\n .nodes( \n DatabaseNodeArgs.builder()\n .region(\"GRA\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"GRA\")\n .build())\n .plan(\"business\")\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .version(\"14\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n postgresql:\n type: ovh:CloudProject:Database\n properties:\n description: my-first-postgresql\n engine: postgresql\n flavor: db1-15\n nodes:\n - region: GRA\n - region: GRA\n plan: business\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n version: '14'\n```\n\n\nTo deploy an enterprise MongoDB service with three nodes on private network:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst mongodb = new ovh.cloudproject.Database(\"mongodb\", {\n description: \"my-first-mongodb\",\n engine: \"mongodb\",\n flavor: \"db1-30\",\n nodes: [\n {\n networkId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region: \"SBG\",\n subnetId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n {\n networkId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region: \"SBG\",\n subnetId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n {\n networkId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region: \"SBG\",\n subnetId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n ],\n plan: \"enterprise\",\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n version: \"5.0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmongodb = ovh.cloud_project.Database(\"mongodb\",\n description=\"my-first-mongodb\",\n engine=\"mongodb\",\n flavor=\"db1-30\",\n nodes=[\n ovh.cloud_project.DatabaseNodeArgs(\n network_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region=\"SBG\",\n subnet_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n network_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region=\"SBG\",\n subnet_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n network_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region=\"SBG\",\n subnet_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n ),\n ],\n plan=\"enterprise\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n version=\"5.0\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var mongodb = new Ovh.CloudProject.Database(\"mongodb\", new()\n {\n Description = \"my-first-mongodb\",\n Engine = \"mongodb\",\n Flavor = \"db1-30\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n NetworkId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n Region = \"SBG\",\n SubnetId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n NetworkId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n Region = \"SBG\",\n SubnetId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n NetworkId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n Region = \"SBG\",\n SubnetId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n },\n Plan = \"enterprise\",\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Version = \"5.0\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewDatabase(ctx, \"mongodb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tDescription: pulumi.String(\"my-first-mongodb\"),\n\t\t\tEngine: pulumi.String(\"mongodb\"),\n\t\t\tFlavor: pulumi.String(\"db1-30\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tNetworkId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t\tRegion: pulumi.String(\"SBG\"),\n\t\t\t\t\tSubnetId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tNetworkId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t\tRegion: pulumi.String(\"SBG\"),\n\t\t\t\t\tSubnetId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tNetworkId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t\tRegion: pulumi.String(\"SBG\"),\n\t\t\t\t\tSubnetId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPlan: pulumi.String(\"enterprise\"),\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tVersion: pulumi.String(\"5.0\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.Database;\nimport com.pulumi.ovh.CloudProject.DatabaseArgs;\nimport com.pulumi.ovh.CloudProject.inputs.DatabaseNodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var mongodb = new Database(\"mongodb\", DatabaseArgs.builder() \n .description(\"my-first-mongodb\")\n .engine(\"mongodb\")\n .flavor(\"db1-30\")\n .nodes( \n DatabaseNodeArgs.builder()\n .networkId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .region(\"SBG\")\n .subnetId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .build(),\n DatabaseNodeArgs.builder()\n .networkId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .region(\"SBG\")\n .subnetId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .build(),\n DatabaseNodeArgs.builder()\n .networkId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .region(\"SBG\")\n .subnetId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .build())\n .plan(\"enterprise\")\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .version(\"5.0\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mongodb:\n type: ovh:CloudProject:Database\n properties:\n description: my-first-mongodb\n engine: mongodb\n flavor: db1-30\n nodes:\n - networkId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n region: SBG\n subnetId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n - networkId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n region: SBG\n subnetId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n - networkId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n region: SBG\n subnetId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n plan: enterprise\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n version: '5.0'\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nOVHcloud Managed database clusters can be imported using the `service_name`, `engine`, `id` of the cluster, separated by \"/\" E.g., bash\n\n```sh\n $ pulumi import ovh:CloudProject/database:Database my_database_cluster service_name/engine/id\n```\n\n ", + "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\nMinimum settings for each engine (region choice is up to the user):\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst cassandradb = new ovh.cloudproject.Database(\"cassandradb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-cassandra\",\n engine: \"cassandra\",\n version: \"4.0\",\n plan: \"essential\",\n nodes: [\n {\n region: \"BHS\",\n },\n {\n region: \"BHS\",\n },\n {\n region: \"BHS\",\n },\n ],\n flavor: \"db1-4\",\n});\nconst kafkadb = new ovh.cloudproject.Database(\"kafkadb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-kafka\",\n engine: \"kafka\",\n version: \"3.4\",\n plan: \"business\",\n kafkaRestApi: true,\n nodes: [\n {\n region: \"DE\",\n },\n {\n region: \"DE\",\n },\n {\n region: \"DE\",\n },\n ],\n flavor: \"db1-4\",\n});\nconst m3db = new ovh.cloudproject.Database(\"m3db\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-m3db\",\n engine: \"m3db\",\n version: \"1.2\",\n plan: \"essential\",\n nodes: [{\n region: \"BHS\",\n }],\n flavor: \"db1-7\",\n});\nconst mongodb = new ovh.cloudproject.Database(\"mongodb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-mongodb\",\n engine: \"mongodb\",\n version: \"5.0\",\n plan: \"essential\",\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});\nconst redisdb = new ovh.cloudproject.Database(\"redisdb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-redis\",\n engine: \"redis\",\n version: \"6.2\",\n plan: \"essential\",\n nodes: [{\n region: \"BHS\",\n }],\n flavor: \"db1-4\",\n});\nconst grafana = new ovh.cloudproject.Database(\"grafana\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-grafana\",\n engine: \"grafana\",\n version: \"9.1\",\n plan: \"essential\",\n nodes: [{\n region: \"GRA\",\n }],\n flavor: \"db1-4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ncassandradb = ovh.cloud_project.Database(\"cassandradb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-cassandra\",\n engine=\"cassandra\",\n version=\"4.0\",\n plan=\"essential\",\n nodes=[\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"BHS\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"BHS\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"BHS\",\n ),\n ],\n flavor=\"db1-4\")\nkafkadb = ovh.cloud_project.Database(\"kafkadb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-kafka\",\n engine=\"kafka\",\n version=\"3.4\",\n plan=\"business\",\n kafka_rest_api=True,\n nodes=[\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"DE\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"DE\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"DE\",\n ),\n ],\n flavor=\"db1-4\")\nm3db = ovh.cloud_project.Database(\"m3db\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-m3db\",\n engine=\"m3db\",\n version=\"1.2\",\n plan=\"essential\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"BHS\",\n )],\n flavor=\"db1-7\")\nmongodb = ovh.cloud_project.Database(\"mongodb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-mongodb\",\n engine=\"mongodb\",\n version=\"5.0\",\n plan=\"essential\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"GRA\",\n )],\n flavor=\"db1-2\")\nmysqldb = ovh.cloud_project.Database(\"mysqldb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-mysql\",\n engine=\"mysql\",\n version=\"8\",\n plan=\"essential\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"SBG\",\n )],\n flavor=\"db1-4\",\n advanced_configuration={\n \"mysql.sql_mode\": \"ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES\",\n \"mysql.sql_require_primary_key\": \"true\",\n })\nopensearchdb = ovh.cloud_project.Database(\"opensearchdb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-opensearch\",\n engine=\"opensearch\",\n version=\"1\",\n plan=\"essential\",\n opensearch_acls_enabled=True,\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"UK\",\n )],\n flavor=\"db1-4\")\npgsqldb = ovh.cloud_project.Database(\"pgsqldb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-postgresql\",\n engine=\"postgresql\",\n version=\"14\",\n plan=\"essential\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"WAW\",\n )],\n flavor=\"db1-4\")\nredisdb = ovh.cloud_project.Database(\"redisdb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-redis\",\n engine=\"redis\",\n version=\"6.2\",\n plan=\"essential\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"BHS\",\n )],\n flavor=\"db1-4\")\ngrafana = ovh.cloud_project.Database(\"grafana\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-grafana\",\n engine=\"grafana\",\n version=\"9.1\",\n plan=\"essential\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"GRA\",\n )],\n flavor=\"db1-4\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var cassandradb = new Ovh.CloudProject.Database(\"cassandradb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-cassandra\",\n Engine = \"cassandra\",\n Version = \"4.0\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n },\n Flavor = \"db1-4\",\n });\n\n var kafkadb = new Ovh.CloudProject.Database(\"kafkadb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-kafka\",\n Engine = \"kafka\",\n Version = \"3.4\",\n Plan = \"business\",\n KafkaRestApi = true,\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"DE\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"DE\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"DE\",\n },\n },\n Flavor = \"db1-4\",\n });\n\n var m3db = new Ovh.CloudProject.Database(\"m3db\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-m3db\",\n Engine = \"m3db\",\n Version = \"1.2\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n },\n Flavor = \"db1-7\",\n });\n\n var mongodb = new Ovh.CloudProject.Database(\"mongodb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-mongodb\",\n Engine = \"mongodb\",\n Version = \"5.0\",\n Plan = \"essential\",\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 });\n\n var redisdb = new Ovh.CloudProject.Database(\"redisdb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-redis\",\n Engine = \"redis\",\n Version = \"6.2\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n },\n Flavor = \"db1-4\",\n });\n\n var grafana = new Ovh.CloudProject.Database(\"grafana\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-grafana\",\n Engine = \"grafana\",\n Version = \"9.1\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"GRA\",\n },\n },\n Flavor = \"db1-4\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewDatabase(ctx, \"cassandradb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-cassandra\"),\n\t\t\tEngine: pulumi.String(\"cassandra\"),\n\t\t\tVersion: pulumi.String(\"4.0\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"kafkadb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-kafka\"),\n\t\t\tEngine: pulumi.String(\"kafka\"),\n\t\t\tVersion: pulumi.String(\"3.4\"),\n\t\t\tPlan: pulumi.String(\"business\"),\n\t\t\tKafkaRestApi: pulumi.Bool(true),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"DE\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"DE\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"DE\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"m3db\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-m3db\"),\n\t\t\tEngine: pulumi.String(\"m3db\"),\n\t\t\tVersion: pulumi.String(\"1.2\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-7\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"mongodb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-mongodb\"),\n\t\t\tEngine: pulumi.String(\"mongodb\"),\n\t\t\tVersion: pulumi.String(\"5.0\"),\n\t\t\tPlan: pulumi.String(\"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-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})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"redisdb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-redis\"),\n\t\t\tEngine: pulumi.String(\"redis\"),\n\t\t\tVersion: pulumi.String(\"6.2\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"grafana\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-grafana\"),\n\t\t\tEngine: pulumi.String(\"grafana\"),\n\t\t\tVersion: pulumi.String(\"9.1\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"GRA\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.Database;\nimport com.pulumi.ovh.CloudProject.DatabaseArgs;\nimport com.pulumi.ovh.CloudProject.inputs.DatabaseNodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var cassandradb = new Database(\"cassandradb\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-cassandra\")\n .engine(\"cassandra\")\n .version(\"4.0\")\n .plan(\"essential\")\n .nodes( \n DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build())\n .flavor(\"db1-4\")\n .build());\n\n var kafkadb = new Database(\"kafkadb\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-kafka\")\n .engine(\"kafka\")\n .version(\"3.4\")\n .plan(\"business\")\n .kafkaRestApi(true)\n .nodes( \n DatabaseNodeArgs.builder()\n .region(\"DE\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"DE\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"DE\")\n .build())\n .flavor(\"db1-4\")\n .build());\n\n var m3db = new Database(\"m3db\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-m3db\")\n .engine(\"m3db\")\n .version(\"1.2\")\n .plan(\"essential\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build())\n .flavor(\"db1-7\")\n .build());\n\n var mongodb = new Database(\"mongodb\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-mongodb\")\n .engine(\"mongodb\")\n .version(\"5.0\")\n .plan(\"essential\")\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 .build());\n\n var redisdb = new Database(\"redisdb\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-redis\")\n .engine(\"redis\")\n .version(\"6.2\")\n .plan(\"essential\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build())\n .flavor(\"db1-4\")\n .build());\n\n var grafana = new Database(\"grafana\", DatabaseArgs.builder() \n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-grafana\")\n .engine(\"grafana\")\n .version(\"9.1\")\n .plan(\"essential\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"GRA\")\n .build())\n .flavor(\"db1-4\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n cassandradb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-cassandra\n engine: cassandra\n version: '4.0'\n plan: essential\n nodes:\n - region: BHS\n - region: BHS\n - region: BHS\n flavor: db1-4\n kafkadb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-kafka\n engine: kafka\n version: '3.4'\n plan: business\n kafkaRestApi: true\n nodes:\n - region: DE\n - region: DE\n - region: DE\n flavor: db1-4\n m3db:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-m3db\n engine: m3db\n version: '1.2'\n plan: essential\n nodes:\n - region: BHS\n flavor: db1-7\n mongodb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-mongodb\n engine: mongodb\n version: '5.0'\n plan: essential\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 redisdb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-redis\n engine: redis\n version: '6.2'\n plan: essential\n nodes:\n - region: BHS\n flavor: db1-4\n grafana:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-grafana\n engine: grafana\n version: '9.1'\n plan: essential\n nodes:\n - region: GRA\n flavor: db1-4\n```\n\nTo deploy a business PostgreSQL service with two nodes on public network:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst postgresql = new ovh.cloudproject.Database(\"postgresql\", {\n description: \"my-first-postgresql\",\n engine: \"postgresql\",\n flavor: \"db1-15\",\n nodes: [\n {\n region: \"GRA\",\n },\n {\n region: \"GRA\",\n },\n ],\n plan: \"business\",\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n version: \"14\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\npostgresql = ovh.cloud_project.Database(\"postgresql\",\n description=\"my-first-postgresql\",\n engine=\"postgresql\",\n flavor=\"db1-15\",\n nodes=[\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"GRA\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"GRA\",\n ),\n ],\n plan=\"business\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n version=\"14\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var postgresql = new Ovh.CloudProject.Database(\"postgresql\", new()\n {\n Description = \"my-first-postgresql\",\n Engine = \"postgresql\",\n Flavor = \"db1-15\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"GRA\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"GRA\",\n },\n },\n Plan = \"business\",\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Version = \"14\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewDatabase(ctx, \"postgresql\", \u0026CloudProject.DatabaseArgs{\n\t\t\tDescription: pulumi.String(\"my-first-postgresql\"),\n\t\t\tEngine: pulumi.String(\"postgresql\"),\n\t\t\tFlavor: pulumi.String(\"db1-15\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"GRA\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"GRA\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPlan: pulumi.String(\"business\"),\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tVersion: pulumi.String(\"14\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.Database;\nimport com.pulumi.ovh.CloudProject.DatabaseArgs;\nimport com.pulumi.ovh.CloudProject.inputs.DatabaseNodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var postgresql = new Database(\"postgresql\", DatabaseArgs.builder() \n .description(\"my-first-postgresql\")\n .engine(\"postgresql\")\n .flavor(\"db1-15\")\n .nodes( \n DatabaseNodeArgs.builder()\n .region(\"GRA\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"GRA\")\n .build())\n .plan(\"business\")\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .version(\"14\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n postgresql:\n type: ovh:CloudProject:Database\n properties:\n description: my-first-postgresql\n engine: postgresql\n flavor: db1-15\n nodes:\n - region: GRA\n - region: GRA\n plan: business\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n version: '14'\n```\n\n\nTo deploy an enterprise MongoDB service with three nodes on private network:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst mongodb = new ovh.cloudproject.Database(\"mongodb\", {\n description: \"my-first-mongodb\",\n engine: \"mongodb\",\n flavor: \"db1-30\",\n nodes: [\n {\n networkId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region: \"SBG\",\n subnetId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n {\n networkId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region: \"SBG\",\n subnetId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n {\n networkId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region: \"SBG\",\n subnetId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n ],\n plan: \"enterprise\",\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n version: \"5.0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmongodb = ovh.cloud_project.Database(\"mongodb\",\n description=\"my-first-mongodb\",\n engine=\"mongodb\",\n flavor=\"db1-30\",\n nodes=[\n ovh.cloud_project.DatabaseNodeArgs(\n network_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region=\"SBG\",\n subnet_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n network_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region=\"SBG\",\n subnet_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n network_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region=\"SBG\",\n subnet_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n ),\n ],\n plan=\"enterprise\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n version=\"5.0\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var mongodb = new Ovh.CloudProject.Database(\"mongodb\", new()\n {\n Description = \"my-first-mongodb\",\n Engine = \"mongodb\",\n Flavor = \"db1-30\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n NetworkId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n Region = \"SBG\",\n SubnetId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n NetworkId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n Region = \"SBG\",\n SubnetId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n NetworkId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n Region = \"SBG\",\n SubnetId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n },\n Plan = \"enterprise\",\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Version = \"5.0\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewDatabase(ctx, \"mongodb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tDescription: pulumi.String(\"my-first-mongodb\"),\n\t\t\tEngine: pulumi.String(\"mongodb\"),\n\t\t\tFlavor: pulumi.String(\"db1-30\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tNetworkId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t\tRegion: pulumi.String(\"SBG\"),\n\t\t\t\t\tSubnetId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tNetworkId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t\tRegion: pulumi.String(\"SBG\"),\n\t\t\t\t\tSubnetId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tNetworkId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t\tRegion: pulumi.String(\"SBG\"),\n\t\t\t\t\tSubnetId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPlan: pulumi.String(\"enterprise\"),\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tVersion: pulumi.String(\"5.0\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.Database;\nimport com.pulumi.ovh.CloudProject.DatabaseArgs;\nimport com.pulumi.ovh.CloudProject.inputs.DatabaseNodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var mongodb = new Database(\"mongodb\", DatabaseArgs.builder() \n .description(\"my-first-mongodb\")\n .engine(\"mongodb\")\n .flavor(\"db1-30\")\n .nodes( \n DatabaseNodeArgs.builder()\n .networkId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .region(\"SBG\")\n .subnetId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .build(),\n DatabaseNodeArgs.builder()\n .networkId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .region(\"SBG\")\n .subnetId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .build(),\n DatabaseNodeArgs.builder()\n .networkId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .region(\"SBG\")\n .subnetId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .build())\n .plan(\"enterprise\")\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .version(\"5.0\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mongodb:\n type: ovh:CloudProject:Database\n properties:\n description: my-first-mongodb\n engine: mongodb\n flavor: db1-30\n nodes:\n - networkId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n region: SBG\n subnetId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n - networkId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n region: SBG\n subnetId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n - networkId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n region: SBG\n subnetId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n plan: enterprise\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n version: '5.0'\n```\n{{% /example %}}\n{{% /examples %}}\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\n bash\n\n ```sh\n $ pulumi import ovh:CloudProject/database:Database my_database_cluster service_name/engine/id\n```\n\n ", "properties": { "advancedConfiguration": { "type": "object", @@ -4596,6 +4767,13 @@ }, "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.\n" @@ -4673,6 +4851,7 @@ }, "required": [ "advancedConfiguration", + "backupRegions", "backupTime", "createdAt", "diskSize", @@ -4696,6 +4875,17 @@ }, "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.\n" + }, "description": { "type": "string", "description": "Small description of the database service.\n" @@ -4760,6 +4950,13 @@ }, "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.\n" @@ -4966,7 +5163,7 @@ } }, "ovh:CloudProject/kube:Kube": { - "description": "\n\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., bash\n\n```sh\n $ pulumi import ovh:CloudProject/kube:Kube my_kube_cluster service_name/kube_id\n```\n\n ", + "description": "\n\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\n bash\n\n ```sh\n $ pulumi import ovh:CloudProject/kube:Kube my_kube_cluster service_name/kube_id\n```\n\n ", "properties": { "controlPlaneIsUpToDate": { "type": "boolean", @@ -5242,7 +5439,7 @@ } }, "ovh:CloudProject/kubeIpRestrictions:KubeIpRestrictions": { - "description": "Apply IP restrictions to an OVHcloud Managed Kubernetes cluster.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst vrackOnly = new ovh.cloudproject.KubeIpRestrictions(\"vrackOnly\", {\n ips: [\"10.42.0.0/16\"],\n kubeId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nvrack_only = ovh.cloud_project.KubeIpRestrictions(\"vrackOnly\",\n ips=[\"10.42.0.0/16\"],\n kube_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var vrackOnly = new Ovh.CloudProject.KubeIpRestrictions(\"vrackOnly\", new()\n {\n Ips = new[]\n {\n \"10.42.0.0/16\",\n },\n KubeId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewKubeIpRestrictions(ctx, \"vrackOnly\", \u0026CloudProject.KubeIpRestrictionsArgs{\n\t\t\tIps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.42.0.0/16\"),\n\t\t\t},\n\t\t\tKubeId: pulumi.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\"),\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.KubeIpRestrictions;\nimport com.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 .ips(\"10.42.0.0/16\")\n .kubeId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vrackOnly:\n type: ovh:CloudProject:KubeIpRestrictions\n properties:\n ips:\n - 10.42.0.0/16\n kubeId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n```\n{{% /example %}}\n{{% /examples %}}\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., bash\n\n```sh\n $ pulumi import ovh:CloudProject/kubeIpRestrictions:KubeIpRestrictions iprestrictions service_name/kube_id\n```\n\n ", + "description": "Apply IP restrictions to an OVHcloud Managed Kubernetes cluster.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst vrackOnly = new ovh.cloudproject.KubeIpRestrictions(\"vrackOnly\", {\n ips: [\"10.42.0.0/16\"],\n kubeId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nvrack_only = ovh.cloud_project.KubeIpRestrictions(\"vrackOnly\",\n ips=[\"10.42.0.0/16\"],\n kube_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var vrackOnly = new Ovh.CloudProject.KubeIpRestrictions(\"vrackOnly\", new()\n {\n Ips = new[]\n {\n \"10.42.0.0/16\",\n },\n KubeId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewKubeIpRestrictions(ctx, \"vrackOnly\", \u0026CloudProject.KubeIpRestrictionsArgs{\n\t\t\tIps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.42.0.0/16\"),\n\t\t\t},\n\t\t\tKubeId: pulumi.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\"),\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.KubeIpRestrictions;\nimport com.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 .ips(\"10.42.0.0/16\")\n .kubeId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vrackOnly:\n type: ovh:CloudProject:KubeIpRestrictions\n properties:\n ips:\n - 10.42.0.0/16\n kubeId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n```\n{{% /example %}}\n{{% /examples %}}\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\n bash\n\n ```sh\n $ pulumi import ovh:CloudProject/kubeIpRestrictions:KubeIpRestrictions iprestrictions service_name/kube_id\n```\n\n ", "properties": { "ips": { "type": "array", @@ -5314,7 +5511,7 @@ } }, "ovh:CloudProject/kubeNodePool:KubeNodePool": { - "description": "Creates a nodepool in a OVHcloud Managed Kubernetes Service cluster.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nCreate a simple node pool in your Kubernetes cluster:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst nodePool = new ovh.cloudproject.KubeNodePool(\"nodePool\", {\n desiredNodes: 3,\n flavorName: \"b2-7\",\n kubeId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n maxNodes: 3,\n minNodes: 3,\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nnode_pool = ovh.cloud_project.KubeNodePool(\"nodePool\",\n desired_nodes=3,\n flavor_name=\"b2-7\",\n kube_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n max_nodes=3,\n min_nodes=3,\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var nodePool = new Ovh.CloudProject.KubeNodePool(\"nodePool\", new()\n {\n DesiredNodes = 3,\n FlavorName = \"b2-7\",\n KubeId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n MaxNodes = 3,\n MinNodes = 3,\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewKubeNodePool(ctx, \"nodePool\", \u0026CloudProject.KubeNodePoolArgs{\n\t\t\tDesiredNodes: pulumi.Int(3),\n\t\t\tFlavorName: pulumi.String(\"b2-7\"),\n\t\t\tKubeId: pulumi.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"),\n\t\t\tMaxNodes: pulumi.Int(3),\n\t\t\tMinNodes: pulumi.Int(3),\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.KubeNodePool;\nimport com.pulumi.ovh.CloudProject.KubeNodePoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var nodePool = new KubeNodePool(\"nodePool\", KubeNodePoolArgs.builder() \n .desiredNodes(3)\n .flavorName(\"b2-7\")\n .kubeId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n .maxNodes(3)\n .minNodes(3)\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n nodePool:\n type: ovh:CloudProject:KubeNodePool\n properties:\n desiredNodes: 3\n flavorName: b2-7\n kubeId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n maxNodes: 3\n minNodes: 3\n # Warning: \"_\" char is not allowed!\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n```\n\nCreate an advanced node pool in your Kubernetes cluster:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst pool = new ovh.cloudproject.KubeNodePool(\"pool\", {\n desiredNodes: 3,\n flavorName: \"b2-7\",\n kubeId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n maxNodes: 3,\n minNodes: 3,\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n template: {\n metadata: {\n annotations: {\n k1: \"v1\",\n k2: \"v2\",\n },\n finalizers: [\n \"ovhcloud.com/v1beta1\",\n \"ovhcloud.com/v1\",\n ],\n labels: {\n k3: \"v3\",\n k4: \"v4\",\n },\n },\n spec: {\n taints: [{\n effect: \"PreferNoSchedule\",\n key: \"k\",\n value: \"v\",\n }],\n unschedulable: false,\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\npool = ovh.cloud_project.KubeNodePool(\"pool\",\n desired_nodes=3,\n flavor_name=\"b2-7\",\n kube_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n max_nodes=3,\n min_nodes=3,\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n template=ovh.cloud_project.KubeNodePoolTemplateArgs(\n metadata=ovh.cloud_project.KubeNodePoolTemplateMetadataArgs(\n annotations={\n \"k1\": \"v1\",\n \"k2\": \"v2\",\n },\n finalizers=[\n \"ovhcloud.com/v1beta1\",\n \"ovhcloud.com/v1\",\n ],\n labels={\n \"k3\": \"v3\",\n \"k4\": \"v4\",\n },\n ),\n spec=ovh.cloud_project.KubeNodePoolTemplateSpecArgs(\n taints=[{\n \"effect\": \"PreferNoSchedule\",\n \"key\": \"k\",\n \"value\": \"v\",\n }],\n unschedulable=False,\n ),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var pool = new Ovh.CloudProject.KubeNodePool(\"pool\", new()\n {\n DesiredNodes = 3,\n FlavorName = \"b2-7\",\n KubeId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n MaxNodes = 3,\n MinNodes = 3,\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Template = new Ovh.CloudProject.Inputs.KubeNodePoolTemplateArgs\n {\n Metadata = new Ovh.CloudProject.Inputs.KubeNodePoolTemplateMetadataArgs\n {\n Annotations = \n {\n { \"k1\", \"v1\" },\n { \"k2\", \"v2\" },\n },\n Finalizers = new[]\n {\n \"ovhcloud.com/v1beta1\",\n \"ovhcloud.com/v1\",\n },\n Labels = \n {\n { \"k3\", \"v3\" },\n { \"k4\", \"v4\" },\n },\n },\n Spec = new Ovh.CloudProject.Inputs.KubeNodePoolTemplateSpecArgs\n {\n Taints = new[]\n {\n \n {\n { \"effect\", \"PreferNoSchedule\" },\n { \"key\", \"k\" },\n { \"value\", \"v\" },\n },\n },\n Unschedulable = false,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewKubeNodePool(ctx, \"pool\", \u0026CloudProject.KubeNodePoolArgs{\n\t\t\tDesiredNodes: pulumi.Int(3),\n\t\t\tFlavorName: pulumi.String(\"b2-7\"),\n\t\t\tKubeId: pulumi.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"),\n\t\t\tMaxNodes: pulumi.Int(3),\n\t\t\tMinNodes: pulumi.Int(3),\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tTemplate: \u0026cloudproject.KubeNodePoolTemplateArgs{\n\t\t\t\tMetadata: \u0026cloudproject.KubeNodePoolTemplateMetadataArgs{\n\t\t\t\t\tAnnotations: pulumi.StringMap{\n\t\t\t\t\t\t\"k1\": pulumi.String(\"v1\"),\n\t\t\t\t\t\t\"k2\": pulumi.String(\"v2\"),\n\t\t\t\t\t},\n\t\t\t\t\tFinalizers: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ovhcloud.com/v1beta1\"),\n\t\t\t\t\t\tpulumi.String(\"ovhcloud.com/v1\"),\n\t\t\t\t\t},\n\t\t\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\t\t\"k3\": pulumi.String(\"v3\"),\n\t\t\t\t\t\t\"k4\": pulumi.String(\"v4\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tSpec: \u0026cloudproject.KubeNodePoolTemplateSpecArgs{\n\t\t\t\t\tTaints: pulumi.MapArray{\n\t\t\t\t\t\tpulumi.Map{\n\t\t\t\t\t\t\t\"effect\": pulumi.Any(\"PreferNoSchedule\"),\n\t\t\t\t\t\t\t\"key\": pulumi.Any(\"k\"),\n\t\t\t\t\t\t\t\"value\": pulumi.Any(\"v\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tUnschedulable: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.KubeNodePool;\nimport com.pulumi.ovh.CloudProject.KubeNodePoolArgs;\nimport com.pulumi.ovh.CloudProject.inputs.KubeNodePoolTemplateArgs;\nimport com.pulumi.ovh.CloudProject.inputs.KubeNodePoolTemplateMetadataArgs;\nimport com.pulumi.ovh.CloudProject.inputs.KubeNodePoolTemplateSpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var pool = new KubeNodePool(\"pool\", KubeNodePoolArgs.builder() \n .desiredNodes(3)\n .flavorName(\"b2-7\")\n .kubeId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n .maxNodes(3)\n .minNodes(3)\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .template(KubeNodePoolTemplateArgs.builder()\n .metadata(KubeNodePoolTemplateMetadataArgs.builder()\n .annotations(Map.ofEntries(\n Map.entry(\"k1\", \"v1\"),\n Map.entry(\"k2\", \"v2\")\n ))\n .finalizers( \n \"ovhcloud.com/v1beta1\",\n \"ovhcloud.com/v1\")\n .labels(Map.ofEntries(\n Map.entry(\"k3\", \"v3\"),\n Map.entry(\"k4\", \"v4\")\n ))\n .build())\n .spec(KubeNodePoolTemplateSpecArgs.builder()\n .taints(Map.ofEntries(\n Map.entry(\"effect\", \"PreferNoSchedule\"),\n Map.entry(\"key\", \"k\"),\n Map.entry(\"value\", \"v\")\n ))\n .unschedulable(false)\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n pool:\n type: ovh:CloudProject:KubeNodePool\n properties:\n desiredNodes: 3\n flavorName: b2-7\n kubeId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n maxNodes: 3\n minNodes: 3\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n template:\n metadata:\n annotations:\n k1: v1\n k2: v2\n finalizers:\n - ovhcloud.com/v1beta1\n - ovhcloud.com/v1\n labels:\n k3: v3\n k4: v4\n spec:\n taints:\n - effect: PreferNoSchedule\n key: k\n value: v\n unschedulable: false\n```\n{{% /example %}}\n{{% /examples %}}\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., bash\n\n```sh\n $ pulumi import ovh:CloudProject/kubeNodePool:KubeNodePool pool service_name/kube_id/poolid\n```\n\n ", + "description": "Creates a nodepool in a OVHcloud Managed Kubernetes Service cluster.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nCreate a simple node pool in your Kubernetes cluster:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst nodePool = new ovh.cloudproject.KubeNodePool(\"nodePool\", {\n desiredNodes: 3,\n flavorName: \"b2-7\",\n kubeId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n maxNodes: 3,\n minNodes: 3,\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nnode_pool = ovh.cloud_project.KubeNodePool(\"nodePool\",\n desired_nodes=3,\n flavor_name=\"b2-7\",\n kube_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n max_nodes=3,\n min_nodes=3,\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var nodePool = new Ovh.CloudProject.KubeNodePool(\"nodePool\", new()\n {\n DesiredNodes = 3,\n FlavorName = \"b2-7\",\n KubeId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n MaxNodes = 3,\n MinNodes = 3,\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewKubeNodePool(ctx, \"nodePool\", \u0026CloudProject.KubeNodePoolArgs{\n\t\t\tDesiredNodes: pulumi.Int(3),\n\t\t\tFlavorName: pulumi.String(\"b2-7\"),\n\t\t\tKubeId: pulumi.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"),\n\t\t\tMaxNodes: pulumi.Int(3),\n\t\t\tMinNodes: pulumi.Int(3),\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.KubeNodePool;\nimport com.pulumi.ovh.CloudProject.KubeNodePoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var nodePool = new KubeNodePool(\"nodePool\", KubeNodePoolArgs.builder() \n .desiredNodes(3)\n .flavorName(\"b2-7\")\n .kubeId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n .maxNodes(3)\n .minNodes(3)\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n nodePool:\n type: ovh:CloudProject:KubeNodePool\n properties:\n desiredNodes: 3\n flavorName: b2-7\n kubeId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n maxNodes: 3\n minNodes: 3\n # Warning: \"_\" char is not allowed!\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n```\n\nCreate an advanced node pool in your Kubernetes cluster:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst pool = new ovh.cloudproject.KubeNodePool(\"pool\", {\n desiredNodes: 3,\n flavorName: \"b2-7\",\n kubeId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n maxNodes: 3,\n minNodes: 3,\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n template: {\n metadata: {\n annotations: {\n k1: \"v1\",\n k2: \"v2\",\n },\n finalizers: [\n \"ovhcloud.com/v1beta1\",\n \"ovhcloud.com/v1\",\n ],\n labels: {\n k3: \"v3\",\n k4: \"v4\",\n },\n },\n spec: {\n taints: [{\n effect: \"PreferNoSchedule\",\n key: \"k\",\n value: \"v\",\n }],\n unschedulable: false,\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\npool = ovh.cloud_project.KubeNodePool(\"pool\",\n desired_nodes=3,\n flavor_name=\"b2-7\",\n kube_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n max_nodes=3,\n min_nodes=3,\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n template=ovh.cloud_project.KubeNodePoolTemplateArgs(\n metadata=ovh.cloud_project.KubeNodePoolTemplateMetadataArgs(\n annotations={\n \"k1\": \"v1\",\n \"k2\": \"v2\",\n },\n finalizers=[\n \"ovhcloud.com/v1beta1\",\n \"ovhcloud.com/v1\",\n ],\n labels={\n \"k3\": \"v3\",\n \"k4\": \"v4\",\n },\n ),\n spec=ovh.cloud_project.KubeNodePoolTemplateSpecArgs(\n taints=[{\n \"effect\": \"PreferNoSchedule\",\n \"key\": \"k\",\n \"value\": \"v\",\n }],\n unschedulable=False,\n ),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var pool = new Ovh.CloudProject.KubeNodePool(\"pool\", new()\n {\n DesiredNodes = 3,\n FlavorName = \"b2-7\",\n KubeId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n MaxNodes = 3,\n MinNodes = 3,\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Template = new Ovh.CloudProject.Inputs.KubeNodePoolTemplateArgs\n {\n Metadata = new Ovh.CloudProject.Inputs.KubeNodePoolTemplateMetadataArgs\n {\n Annotations = \n {\n { \"k1\", \"v1\" },\n { \"k2\", \"v2\" },\n },\n Finalizers = new[]\n {\n \"ovhcloud.com/v1beta1\",\n \"ovhcloud.com/v1\",\n },\n Labels = \n {\n { \"k3\", \"v3\" },\n { \"k4\", \"v4\" },\n },\n },\n Spec = new Ovh.CloudProject.Inputs.KubeNodePoolTemplateSpecArgs\n {\n Taints = new[]\n {\n \n {\n { \"effect\", \"PreferNoSchedule\" },\n { \"key\", \"k\" },\n { \"value\", \"v\" },\n },\n },\n Unschedulable = false,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewKubeNodePool(ctx, \"pool\", \u0026CloudProject.KubeNodePoolArgs{\n\t\t\tDesiredNodes: pulumi.Int(3),\n\t\t\tFlavorName: pulumi.String(\"b2-7\"),\n\t\t\tKubeId: pulumi.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"),\n\t\t\tMaxNodes: pulumi.Int(3),\n\t\t\tMinNodes: pulumi.Int(3),\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tTemplate: \u0026cloudproject.KubeNodePoolTemplateArgs{\n\t\t\t\tMetadata: \u0026cloudproject.KubeNodePoolTemplateMetadataArgs{\n\t\t\t\t\tAnnotations: pulumi.StringMap{\n\t\t\t\t\t\t\"k1\": pulumi.String(\"v1\"),\n\t\t\t\t\t\t\"k2\": pulumi.String(\"v2\"),\n\t\t\t\t\t},\n\t\t\t\t\tFinalizers: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ovhcloud.com/v1beta1\"),\n\t\t\t\t\t\tpulumi.String(\"ovhcloud.com/v1\"),\n\t\t\t\t\t},\n\t\t\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\t\t\"k3\": pulumi.String(\"v3\"),\n\t\t\t\t\t\t\"k4\": pulumi.String(\"v4\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tSpec: \u0026cloudproject.KubeNodePoolTemplateSpecArgs{\n\t\t\t\t\tTaints: pulumi.MapArray{\n\t\t\t\t\t\tpulumi.Map{\n\t\t\t\t\t\t\t\"effect\": pulumi.Any(\"PreferNoSchedule\"),\n\t\t\t\t\t\t\t\"key\": pulumi.Any(\"k\"),\n\t\t\t\t\t\t\t\"value\": pulumi.Any(\"v\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tUnschedulable: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.KubeNodePool;\nimport com.pulumi.ovh.CloudProject.KubeNodePoolArgs;\nimport com.pulumi.ovh.CloudProject.inputs.KubeNodePoolTemplateArgs;\nimport com.pulumi.ovh.CloudProject.inputs.KubeNodePoolTemplateMetadataArgs;\nimport com.pulumi.ovh.CloudProject.inputs.KubeNodePoolTemplateSpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var pool = new KubeNodePool(\"pool\", KubeNodePoolArgs.builder() \n .desiredNodes(3)\n .flavorName(\"b2-7\")\n .kubeId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n .maxNodes(3)\n .minNodes(3)\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .template(KubeNodePoolTemplateArgs.builder()\n .metadata(KubeNodePoolTemplateMetadataArgs.builder()\n .annotations(Map.ofEntries(\n Map.entry(\"k1\", \"v1\"),\n Map.entry(\"k2\", \"v2\")\n ))\n .finalizers( \n \"ovhcloud.com/v1beta1\",\n \"ovhcloud.com/v1\")\n .labels(Map.ofEntries(\n Map.entry(\"k3\", \"v3\"),\n Map.entry(\"k4\", \"v4\")\n ))\n .build())\n .spec(KubeNodePoolTemplateSpecArgs.builder()\n .taints(Map.ofEntries(\n Map.entry(\"effect\", \"PreferNoSchedule\"),\n Map.entry(\"key\", \"k\"),\n Map.entry(\"value\", \"v\")\n ))\n .unschedulable(false)\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n pool:\n type: ovh:CloudProject:KubeNodePool\n properties:\n desiredNodes: 3\n flavorName: b2-7\n kubeId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n maxNodes: 3\n minNodes: 3\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n template:\n metadata:\n annotations:\n k1: v1\n k2: v2\n finalizers:\n - ovhcloud.com/v1beta1\n - ovhcloud.com/v1\n labels:\n k3: v3\n k4: v4\n spec:\n taints:\n - effect: PreferNoSchedule\n key: k\n value: v\n unschedulable: false\n```\n{{% /example %}}\n{{% /examples %}}\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\n bash\n\n ```sh\n $ pulumi import ovh:CloudProject/kubeNodePool:KubeNodePool pool service_name/kube_id/poolid\n```\n\n ", "properties": { "antiAffinity": { "type": "boolean", @@ -5322,7 +5519,19 @@ }, "autoscale": { "type": "boolean", - "description": "Enable auto-scaling for the pool. Default to `false`.\n* `template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects:\n" + "description": "Enable auto-scaling for the pool. Default to `false`.\n" + }, + "autoscalingScaleDownUnneededTimeSeconds": { + "type": "integer", + "description": "scaleDownUnneededTimeSeconds autoscaling parameter\nHow long a node should be unneeded before it is eligible for scale down\n" + }, + "autoscalingScaleDownUnreadyTimeSeconds": { + "type": "integer", + "description": "scaleDownUnreadyTimeSeconds autoscaling parameter\nHow long an unready node should be unneeded before it is eligible for scale down\n" + }, + "autoscalingScaleDownUtilizationThreshold": { + "type": "number", + "description": "scaleDownUtilizationThreshold autoscaling parameter\nNode 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" }, "availableNodes": { "type": "integer", @@ -5400,6 +5609,9 @@ "required": [ "antiAffinity", "autoscale", + "autoscalingScaleDownUnneededTimeSeconds", + "autoscalingScaleDownUnreadyTimeSeconds", + "autoscalingScaleDownUtilizationThreshold", "availableNodes", "createdAt", "currentNodes", @@ -5426,7 +5638,19 @@ }, "autoscale": { "type": "boolean", - "description": "Enable auto-scaling for the pool. Default to `false`.\n* `template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects:\n" + "description": "Enable auto-scaling for the pool. Default to `false`.\n" + }, + "autoscalingScaleDownUnneededTimeSeconds": { + "type": "integer", + "description": "scaleDownUnneededTimeSeconds autoscaling parameter\nHow long a node should be unneeded before it is eligible for scale down\n" + }, + "autoscalingScaleDownUnreadyTimeSeconds": { + "type": "integer", + "description": "scaleDownUnreadyTimeSeconds autoscaling parameter\nHow long an unready node should be unneeded before it is eligible for scale down\n" + }, + "autoscalingScaleDownUtilizationThreshold": { + "type": "number", + "description": "scaleDownUtilizationThreshold autoscaling parameter\nNode 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" }, "desiredNodes": { "type": "integer", @@ -5485,7 +5709,19 @@ }, "autoscale": { "type": "boolean", - "description": "Enable auto-scaling for the pool. Default to `false`.\n* `template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects:\n" + "description": "Enable auto-scaling for the pool. Default to `false`.\n" + }, + "autoscalingScaleDownUnneededTimeSeconds": { + "type": "integer", + "description": "scaleDownUnneededTimeSeconds autoscaling parameter\nHow long a node should be unneeded before it is eligible for scale down\n" + }, + "autoscalingScaleDownUnreadyTimeSeconds": { + "type": "integer", + "description": "scaleDownUnreadyTimeSeconds autoscaling parameter\nHow long an unready node should be unneeded before it is eligible for scale down\n" + }, + "autoscalingScaleDownUtilizationThreshold": { + "type": "number", + "description": "scaleDownUtilizationThreshold autoscaling parameter\nNode 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" }, "availableNodes": { "type": "integer", @@ -5569,7 +5805,7 @@ } }, "ovh:CloudProject/kubeOidc:KubeOidc": { - "description": "Creates an OIDC configuration in an OVHcloud Managed Kubernetes cluster.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst my_oidc = new ovh.cloudproject.KubeOidc(\"my-oidc\", {\n serviceName: _var.projectid,\n kubeId: ovh_cloud_project_kube.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.cloud_project.KubeOidc(\"my-oidc\",\n service_name=var[\"projectid\"],\n kube_id=ovh_cloud_project_kube[\"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 my_oidc = new Ovh.CloudProject.KubeOidc(\"my-oidc\", new()\n {\n ServiceName = @var.Projectid,\n KubeId = ovh_cloud_project_kube.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/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(_var.Projectid),\n\t\t\tKubeId: pulumi.Any(ovh_cloud_project_kube.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.pulumi.ovh.CloudProject.KubeOidc;\nimport com.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 my_oidc = new KubeOidc(\"my-oidc\", KubeOidcArgs.builder() \n .serviceName(var_.projectid())\n .kubeId(ovh_cloud_project_kube.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 my-oidc:\n type: ovh:CloudProject:KubeOidc\n properties:\n serviceName: ${var.projectid}\n kubeId: ${ovh_cloud_project_kube.mykube.id}\n #required field\n clientId: xxx\n issuerUrl: https://ovh.com\n #optional field\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{{% /example %}}\n{{% /examples %}}\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., bash\n\n```sh\n $ pulumi import ovh:CloudProject/kubeOidc:KubeOidc my-oidc service_name/kube_id\n```\n\n ", + "description": "Creates an OIDC configuration in an OVHcloud Managed Kubernetes cluster.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst my_oidc = new ovh.cloudproject.KubeOidc(\"my-oidc\", {\n serviceName: _var.projectid,\n kubeId: ovh_cloud_project_kube.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.cloud_project.KubeOidc(\"my-oidc\",\n service_name=var[\"projectid\"],\n kube_id=ovh_cloud_project_kube[\"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 my_oidc = new Ovh.CloudProject.KubeOidc(\"my-oidc\", new()\n {\n ServiceName = @var.Projectid,\n KubeId = ovh_cloud_project_kube.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/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(_var.Projectid),\n\t\t\tKubeId: pulumi.Any(ovh_cloud_project_kube.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.pulumi.ovh.CloudProject.KubeOidc;\nimport com.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 my_oidc = new KubeOidc(\"my-oidc\", KubeOidcArgs.builder() \n .serviceName(var_.projectid())\n .kubeId(ovh_cloud_project_kube.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 my-oidc:\n type: ovh:CloudProject:KubeOidc\n properties:\n serviceName: ${var.projectid}\n kubeId: ${ovh_cloud_project_kube.mykube.id}\n #required field\n clientId: xxx\n issuerUrl: https://ovh.com\n #optional field\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{{% /example %}}\n{{% /examples %}}\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\n bash\n\n ```sh\n $ pulumi import ovh:CloudProject/kubeOidc:KubeOidc my-oidc service_name/kube_id\n```\n\n ", "properties": { "clientId": { "type": "string", @@ -5736,7 +5972,7 @@ } }, "ovh:CloudProject/networkPrivate:NetworkPrivate": { - "description": "Creates a private network in a public cloud project.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst net = new ovh.cloudproject.NetworkPrivate(\"net\", {\n regions: [\n \"GRA1\",\n \"BHS1\",\n ],\n serviceName: \"XXXXXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nnet = ovh.cloud_project.NetworkPrivate(\"net\",\n regions=[\n \"GRA1\",\n \"BHS1\",\n ],\n 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 net = new Ovh.CloudProject.NetworkPrivate(\"net\", new()\n {\n Regions = new[]\n {\n \"GRA1\",\n \"BHS1\",\n },\n ServiceName = \"XXXXXX\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewNetworkPrivate(ctx, \"net\", \u0026CloudProject.NetworkPrivateArgs{\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\tServiceName: 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.pulumi.ovh.CloudProject.NetworkPrivate;\nimport com.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 .regions( \n \"GRA1\",\n \"BHS1\")\n .serviceName(\"XXXXXX\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n net:\n type: ovh:CloudProject:NetworkPrivate\n properties:\n regions:\n - GRA1\n - BHS1\n serviceName: XXXXXX\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPrivate network in a public cloud project can be imported using the `service_name` and the `network_id`, separated by \"/\" E.g., bash\n\n```sh\n $ pulumi import ovh:CloudProject/networkPrivate:NetworkPrivate mynet ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678\n```\n\n ", + "description": "Creates a private network in a public cloud project.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst net = new ovh.cloudproject.NetworkPrivate(\"net\", {\n regions: [\n \"GRA1\",\n \"BHS1\",\n ],\n serviceName: \"XXXXXX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nnet = ovh.cloud_project.NetworkPrivate(\"net\",\n regions=[\n \"GRA1\",\n \"BHS1\",\n ],\n 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 net = new Ovh.CloudProject.NetworkPrivate(\"net\", new()\n {\n Regions = new[]\n {\n \"GRA1\",\n \"BHS1\",\n },\n ServiceName = \"XXXXXX\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewNetworkPrivate(ctx, \"net\", \u0026CloudProject.NetworkPrivateArgs{\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\tServiceName: 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.pulumi.ovh.CloudProject.NetworkPrivate;\nimport com.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 .regions( \n \"GRA1\",\n \"BHS1\")\n .serviceName(\"XXXXXX\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n net:\n type: ovh:CloudProject:NetworkPrivate\n properties:\n regions:\n - GRA1\n - BHS1\n serviceName: XXXXXX\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPrivate network in a public cloud project can be imported using the `service_name` and the `network_id`, separated by \"/\" E.g.,\n\n bash\n\n ```sh\n $ pulumi import ovh:CloudProject/networkPrivate:NetworkPrivate mynet ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678\n```\n\n ", "properties": { "name": { "type": "string", @@ -5870,7 +6106,7 @@ } }, "ovh:CloudProject/networkPrivateSubnet:NetworkPrivateSubnet": { - "description": "Creates a subnet in a private network of a public cloud project.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst subnet = new ovh.cloudproject.NetworkPrivateSubnet(\"subnet\", {\n dhcp: true,\n end: \"192.168.168.200\",\n network: \"192.168.168.0/24\",\n networkId: \"0234543\",\n noGateway: false,\n region: \"GRA1\",\n serviceName: \"xxxxx\",\n start: \"192.168.168.100\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nsubnet = ovh.cloud_project.NetworkPrivateSubnet(\"subnet\",\n dhcp=True,\n end=\"192.168.168.200\",\n network=\"192.168.168.0/24\",\n network_id=\"0234543\",\n no_gateway=False,\n region=\"GRA1\",\n service_name=\"xxxxx\",\n start=\"192.168.168.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 subnet = new Ovh.CloudProject.NetworkPrivateSubnet(\"subnet\", new()\n {\n Dhcp = true,\n End = \"192.168.168.200\",\n Network = \"192.168.168.0/24\",\n NetworkId = \"0234543\",\n NoGateway = false,\n Region = \"GRA1\",\n ServiceName = \"xxxxx\",\n Start = \"192.168.168.100\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewNetworkPrivateSubnet(ctx, \"subnet\", \u0026CloudProject.NetworkPrivateSubnetArgs{\n\t\t\tDhcp: pulumi.Bool(true),\n\t\t\tEnd: pulumi.String(\"192.168.168.200\"),\n\t\t\tNetwork: pulumi.String(\"192.168.168.0/24\"),\n\t\t\tNetworkId: pulumi.String(\"0234543\"),\n\t\t\tNoGateway: pulumi.Bool(false),\n\t\t\tRegion: pulumi.String(\"GRA1\"),\n\t\t\tServiceName: pulumi.String(\"xxxxx\"),\n\t\t\tStart: pulumi.String(\"192.168.168.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.CloudProject.NetworkPrivateSubnet;\nimport com.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 .dhcp(true)\n .end(\"192.168.168.200\")\n .network(\"192.168.168.0/24\")\n .networkId(\"0234543\")\n .noGateway(false)\n .region(\"GRA1\")\n .serviceName(\"xxxxx\")\n .start(\"192.168.168.100\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n subnet:\n type: ovh:CloudProject:NetworkPrivateSubnet\n properties:\n dhcp: true\n end: 192.168.168.200\n network: 192.168.168.0/24\n networkId: '0234543'\n noGateway: false\n region: GRA1\n serviceName: xxxxx\n start: 192.168.168.100\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSubnet in a private network of a public cloud project can be imported using the `service_name` , the `network_id` and the `subnet_id`, separated by \"/\" E.g., bash\n\n```sh\n $ pulumi import ovh:CloudProject/networkPrivateSubnet:NetworkPrivateSubnet mysubnet ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678/0f0b73a4-403b-45e4-86d0-b438f1291909\n```\n\n ", + "description": "Creates a subnet in a private network of a public cloud project.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst subnet = new ovh.cloudproject.NetworkPrivateSubnet(\"subnet\", {\n dhcp: true,\n end: \"192.168.168.200\",\n network: \"192.168.168.0/24\",\n networkId: \"0234543\",\n noGateway: false,\n region: \"GRA1\",\n serviceName: \"xxxxx\",\n start: \"192.168.168.100\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nsubnet = ovh.cloud_project.NetworkPrivateSubnet(\"subnet\",\n dhcp=True,\n end=\"192.168.168.200\",\n network=\"192.168.168.0/24\",\n network_id=\"0234543\",\n no_gateway=False,\n region=\"GRA1\",\n service_name=\"xxxxx\",\n start=\"192.168.168.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 subnet = new Ovh.CloudProject.NetworkPrivateSubnet(\"subnet\", new()\n {\n Dhcp = true,\n End = \"192.168.168.200\",\n Network = \"192.168.168.0/24\",\n NetworkId = \"0234543\",\n NoGateway = false,\n Region = \"GRA1\",\n ServiceName = \"xxxxx\",\n Start = \"192.168.168.100\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewNetworkPrivateSubnet(ctx, \"subnet\", \u0026CloudProject.NetworkPrivateSubnetArgs{\n\t\t\tDhcp: pulumi.Bool(true),\n\t\t\tEnd: pulumi.String(\"192.168.168.200\"),\n\t\t\tNetwork: pulumi.String(\"192.168.168.0/24\"),\n\t\t\tNetworkId: pulumi.String(\"0234543\"),\n\t\t\tNoGateway: pulumi.Bool(false),\n\t\t\tRegion: pulumi.String(\"GRA1\"),\n\t\t\tServiceName: pulumi.String(\"xxxxx\"),\n\t\t\tStart: pulumi.String(\"192.168.168.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.CloudProject.NetworkPrivateSubnet;\nimport com.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 .dhcp(true)\n .end(\"192.168.168.200\")\n .network(\"192.168.168.0/24\")\n .networkId(\"0234543\")\n .noGateway(false)\n .region(\"GRA1\")\n .serviceName(\"xxxxx\")\n .start(\"192.168.168.100\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n subnet:\n type: ovh:CloudProject:NetworkPrivateSubnet\n properties:\n dhcp: true\n end: 192.168.168.200\n network: 192.168.168.0/24\n networkId: '0234543'\n noGateway: false\n region: GRA1\n serviceName: xxxxx\n start: 192.168.168.100\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSubnet in a private network of a public cloud project can be imported using the `service_name` , the `network_id` and the `subnet_id`, separated by \"/\" E.g.,\n\n bash\n\n ```sh\n $ pulumi import ovh:CloudProject/networkPrivateSubnet:NetworkPrivateSubnet mysubnet ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678/0f0b73a4-403b-45e4-86d0-b438f1291909\n```\n\n ", "properties": { "cidr": { "type": "string", @@ -6044,7 +6280,7 @@ } }, "ovh:CloudProject/project:Project": { - "description": "\n\n\n## Import\n\nCloud project can be imported using the `order_id` that can be retrieved in the [order page](https://www.ovh.com/manager/#/dedicated/billing/orders/orders) at the creation time of the Public Cloud project.\n\nbash\n\n```sh\n $ pulumi import ovh:CloudProject/project:Project my_cloud_project order_id\n```\n\n ", + "description": "\n\n\n## Import\n\nCloud project can be imported using the `order_id` that can be retrieved in the [order page](https://www.ovh.com/manager/#/dedicated/billing/orders/orders) at the creation time of the Public Cloud project.\n\n bash\n\n ```sh\n $ pulumi import ovh:CloudProject/project:Project my_cloud_project order_id\n```\n\n ", "properties": { "ProjectURN": { "type": "string", @@ -6325,7 +6561,7 @@ } }, "ovh:CloudProject/s3Credential:S3Credential": { - "description": "Creates an S3 Credential for a user in a public cloud project.\n\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., bash\n\n```sh\n $ pulumi import ovh:CloudProject/s3Credential:S3Credential s3_credential service_name/user_id/access_key_id\n```\n\n ", + "description": "Creates an S3 Credential for a user in a public cloud project.\n\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\n bash\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", @@ -6401,7 +6637,7 @@ } }, "ovh:CloudProject/s3Policy:S3Policy": { - "description": "Set the S3 Policy of a public cloud project user.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/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(\"myS3Credentials\", {\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.cloud_project.User(\"user\",\n service_name=\"XXX\",\n description=\"my user\",\n role_names=[\"objectstore_operator\"])\nmy_s3_credentials = ovh.cloud_project.S3Credential(\"myS3Credentials\",\n service_name=user.service_name,\n user_id=user.id)\npolicy = ovh.cloud_project.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(\"myS3Credentials\", 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/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, \"myS3Credentials\", \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.pulumi.ovh.CloudProject.User;\nimport com.pulumi.ovh.CloudProject.UserArgs;\nimport com.pulumi.ovh.CloudProject.S3Credential;\nimport com.pulumi.ovh.CloudProject.S3CredentialArgs;\nimport com.pulumi.ovh.CloudProject.S3Policy;\nimport com.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 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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nOVHcloud User S3 Policy can be imported using the `service_name`, `user_id` of the policy, separated by \"/\" E.g., bash\n\n```sh\n $ pulumi import ovh:CloudProject/s3Policy:S3Policy policy service_name/user_id\n```\n\n ", + "description": "Set the S3 Policy of a public cloud project user.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/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(\"myS3Credentials\", {\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.cloud_project.User(\"user\",\n service_name=\"XXX\",\n description=\"my user\",\n role_names=[\"objectstore_operator\"])\nmy_s3_credentials = ovh.cloud_project.S3Credential(\"myS3Credentials\",\n service_name=user.service_name,\n user_id=user.id)\npolicy = ovh.cloud_project.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(\"myS3Credentials\", 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/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, \"myS3Credentials\", \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.pulumi.ovh.CloudProject.User;\nimport com.pulumi.ovh.CloudProject.UserArgs;\nimport com.pulumi.ovh.CloudProject.S3Credential;\nimport com.pulumi.ovh.CloudProject.S3CredentialArgs;\nimport com.pulumi.ovh.CloudProject.S3Policy;\nimport com.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 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{{% /example %}}\n{{% /examples %}}\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\n bash\n\n ```sh\n $ pulumi import ovh:CloudProject/s3Policy:S3Policy policy service_name/user_id\n```\n\n ", "properties": { "policy": { "type": "string", @@ -6541,16 +6777,14 @@ }, "roleName": { "type": "string", - "description": "The name of a role. See `role_names`.\n", - "willReplaceOnChanges": true + "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- network_operator\n- network_security_operator\n- objectstore_operator\n- volume_operator\n", - "willReplaceOnChanges": true + "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- network_operator\n- network_security_operator\n- objectstore_operator\n- volume_operator\n" }, "serviceName": { "type": "string", @@ -6587,16 +6821,14 @@ }, "roleName": { "type": "string", - "description": "The name of a role. See `role_names`.\n", - "willReplaceOnChanges": true + "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- network_operator\n- network_security_operator\n- objectstore_operator\n- volume_operator\n", - "willReplaceOnChanges": true + "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- network_operator\n- network_security_operator\n- objectstore_operator\n- volume_operator\n" }, "roles": { "type": "array", @@ -6768,7 +7000,7 @@ } }, "ovh:CloudProjectDatabase/databaseInstance:DatabaseInstance": { - "description": "Creates a database for a database cluster associated with a public cloud project.\n\nWith this resource you can create a database for the following database engine:\n\n * `mysql`\n * `postgresql`\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst db = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXXX\",\n engine: \"YYYY\",\n id: \"ZZZZ\",\n});\nconst database = new ovh.cloudprojectdatabase.DatabaseInstance(\"database\", {\n serviceName: db.then(db =\u003e db.serviceName),\n engine: db.then(db =\u003e db.engine),\n clusterId: db.then(db =\u003e db.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ndb = ovh.CloudProjectDatabase.get_database(service_name=\"XXXX\",\n engine=\"YYYY\",\n id=\"ZZZZ\")\ndatabase = ovh.cloud_project_database.DatabaseInstance(\"database\",\n service_name=db.service_name,\n engine=db.engine,\n cluster_id=db.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var db = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXXX\",\n Engine = \"YYYY\",\n Id = \"ZZZZ\",\n });\n\n var database = new Ovh.CloudProjectDatabase.DatabaseInstance(\"database\", new()\n {\n ServiceName = db.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n Engine = db.Apply(getDatabaseResult =\u003e getDatabaseResult.Engine),\n ClusterId = db.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdb, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXXX\",\n\t\t\tEngine: \"YYYY\",\n\t\t\tId: \"ZZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewDatabaseInstance(ctx, \"database\", \u0026CloudProjectDatabase.DatabaseInstanceArgs{\n\t\t\tServiceName: *pulumi.String(db.ServiceName),\n\t\t\tEngine: *pulumi.String(db.Engine),\n\t\t\tClusterId: *pulumi.String(db.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.DatabaseInstance;\nimport com.pulumi.ovh.CloudProjectDatabase.DatabaseInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var db = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXXX\")\n .engine(\"YYYY\")\n .id(\"ZZZZ\")\n .build());\n\n var database = new DatabaseInstance(\"database\", DatabaseInstanceArgs.builder() \n .serviceName(db.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .engine(db.applyValue(getDatabaseResult -\u003e getDatabaseResult.engine()))\n .clusterId(db.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n database:\n type: ovh:CloudProjectDatabase:DatabaseInstance\n properties:\n serviceName: ${db.serviceName}\n engine: ${db.engine}\n clusterId: ${db.id}\nvariables:\n db:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXXX\n engine: YYYY\n id: ZZZZ\n```\n{{% /example %}}\n{{% /examples %}}\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., bash\n\n```sh\n $ pulumi import ovh:CloudProjectDatabase/databaseInstance:DatabaseInstance my_database service_name/engine/cluster_id/id\n```\n\n ", + "description": "Creates a database for a database cluster associated with a public cloud project.\n\nWith this resource you can create a database for the following database engine:\n\n * `mysql`\n * `postgresql`\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst db = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXXX\",\n engine: \"YYYY\",\n id: \"ZZZZ\",\n});\nconst database = new ovh.cloudprojectdatabase.DatabaseInstance(\"database\", {\n serviceName: db.then(db =\u003e db.serviceName),\n engine: db.then(db =\u003e db.engine),\n clusterId: db.then(db =\u003e db.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ndb = ovh.CloudProjectDatabase.get_database(service_name=\"XXXX\",\n engine=\"YYYY\",\n id=\"ZZZZ\")\ndatabase = ovh.cloud_project_database.DatabaseInstance(\"database\",\n service_name=db.service_name,\n engine=db.engine,\n cluster_id=db.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var db = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXXX\",\n Engine = \"YYYY\",\n Id = \"ZZZZ\",\n });\n\n var database = new Ovh.CloudProjectDatabase.DatabaseInstance(\"database\", new()\n {\n ServiceName = db.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n Engine = db.Apply(getDatabaseResult =\u003e getDatabaseResult.Engine),\n ClusterId = db.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdb, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXXX\",\n\t\t\tEngine: \"YYYY\",\n\t\t\tId: \"ZZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewDatabaseInstance(ctx, \"database\", \u0026CloudProjectDatabase.DatabaseInstanceArgs{\n\t\t\tServiceName: *pulumi.String(db.ServiceName),\n\t\t\tEngine: *pulumi.String(db.Engine),\n\t\t\tClusterId: *pulumi.String(db.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.DatabaseInstance;\nimport com.pulumi.ovh.CloudProjectDatabase.DatabaseInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var db = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXXX\")\n .engine(\"YYYY\")\n .id(\"ZZZZ\")\n .build());\n\n var database = new DatabaseInstance(\"database\", DatabaseInstanceArgs.builder() \n .serviceName(db.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .engine(db.applyValue(getDatabaseResult -\u003e getDatabaseResult.engine()))\n .clusterId(db.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n database:\n type: ovh:CloudProjectDatabase:DatabaseInstance\n properties:\n serviceName: ${db.serviceName}\n engine: ${db.engine}\n clusterId: ${db.id}\nvariables:\n db:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXXX\n engine: YYYY\n id: ZZZZ\n```\n{{% /example %}}\n{{% /examples %}}\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\n bash\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", @@ -6857,7 +7089,7 @@ } }, "ovh:CloudProjectDatabase/integration:Integration": { - "description": "Creates an integration for a database cluster associated with a public cloud project.\n\nWith this resource you can create an integration for all engine exept `mongodb`.\n\nPlease take a look at the list of available `types` in the `Argument references` section in order to know the list of avaulable integrations. For example, thanks to the integration feature you can have your PostgreSQL logs in your OpenSearch Database.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nPush PostgreSQL logs in an OpenSearch DB:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst dbpostgresql = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXXX\",\n engine: \"postgresql\",\n id: \"ZZZZ\",\n});\nconst dbopensearch = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXXX\",\n engine: \"opensearch\",\n id: \"ZZZZ\",\n});\nconst integration = new ovh.cloudprojectdatabase.Integration(\"integration\", {\n serviceName: dbpostgresql.then(dbpostgresql =\u003e dbpostgresql.serviceName),\n engine: dbpostgresql.then(dbpostgresql =\u003e dbpostgresql.engine),\n clusterId: dbpostgresql.then(dbpostgresql =\u003e dbpostgresql.id),\n sourceServiceId: dbpostgresql.then(dbpostgresql =\u003e dbpostgresql.id),\n destinationServiceId: dbopensearch.then(dbopensearch =\u003e dbopensearch.id),\n type: \"opensearchLogs\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ndbpostgresql = ovh.CloudProjectDatabase.get_database(service_name=\"XXXX\",\n engine=\"postgresql\",\n id=\"ZZZZ\")\ndbopensearch = ovh.CloudProjectDatabase.get_database(service_name=\"XXXX\",\n engine=\"opensearch\",\n id=\"ZZZZ\")\nintegration = ovh.cloud_project_database.Integration(\"integration\",\n service_name=dbpostgresql.service_name,\n engine=dbpostgresql.engine,\n cluster_id=dbpostgresql.id,\n source_service_id=dbpostgresql.id,\n destination_service_id=dbopensearch.id,\n type=\"opensearchLogs\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var dbpostgresql = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXXX\",\n Engine = \"postgresql\",\n Id = \"ZZZZ\",\n });\n\n var dbopensearch = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXXX\",\n Engine = \"opensearch\",\n Id = \"ZZZZ\",\n });\n\n var integration = new Ovh.CloudProjectDatabase.Integration(\"integration\", new()\n {\n ServiceName = dbpostgresql.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n Engine = dbpostgresql.Apply(getDatabaseResult =\u003e getDatabaseResult.Engine),\n ClusterId = dbpostgresql.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n SourceServiceId = dbpostgresql.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n DestinationServiceId = dbopensearch.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n Type = \"opensearchLogs\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdbpostgresql, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXXX\",\n\t\t\tEngine: \"postgresql\",\n\t\t\tId: \"ZZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdbopensearch, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXXX\",\n\t\t\tEngine: \"opensearch\",\n\t\t\tId: \"ZZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewIntegration(ctx, \"integration\", \u0026CloudProjectDatabase.IntegrationArgs{\n\t\t\tServiceName: *pulumi.String(dbpostgresql.ServiceName),\n\t\t\tEngine: *pulumi.String(dbpostgresql.Engine),\n\t\t\tClusterId: *pulumi.String(dbpostgresql.Id),\n\t\t\tSourceServiceId: *pulumi.String(dbpostgresql.Id),\n\t\t\tDestinationServiceId: *pulumi.String(dbopensearch.Id),\n\t\t\tType: pulumi.String(\"opensearchLogs\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.Integration;\nimport com.pulumi.ovh.CloudProjectDatabase.IntegrationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var dbpostgresql = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXXX\")\n .engine(\"postgresql\")\n .id(\"ZZZZ\")\n .build());\n\n final var dbopensearch = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXXX\")\n .engine(\"opensearch\")\n .id(\"ZZZZ\")\n .build());\n\n var integration = new Integration(\"integration\", IntegrationArgs.builder() \n .serviceName(dbpostgresql.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .engine(dbpostgresql.applyValue(getDatabaseResult -\u003e getDatabaseResult.engine()))\n .clusterId(dbpostgresql.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .sourceServiceId(dbpostgresql.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .destinationServiceId(dbopensearch.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .type(\"opensearchLogs\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n integration:\n type: ovh:CloudProjectDatabase:Integration\n properties:\n serviceName: ${dbpostgresql.serviceName}\n engine: ${dbpostgresql.engine}\n clusterId: ${dbpostgresql.id}\n sourceServiceId: ${dbpostgresql.id}\n destinationServiceId: ${dbopensearch.id}\n type: opensearchLogs\nvariables:\n dbpostgresql:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXXX\n engine: postgresql\n id: ZZZZ\n dbopensearch:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXXX\n engine: opensearch\n id: ZZZZ\n```\n{{% /example %}}\n{{% /examples %}}\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., bash\n\n```sh\n $ pulumi import ovh:CloudProjectDatabase/integration:Integration my_user service_name/engine/cluster_id/id\n```\n\n ", + "description": "Creates an integration for a database cluster associated with a public cloud project.\n\nWith this resource you can create an integration for all engine exept `mongodb`.\n\nPlease take a look at the list of available `types` in the `Argument references` section in order to know the list of avaulable integrations. For example, thanks to the integration feature you can have your PostgreSQL logs in your OpenSearch Database.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nPush PostgreSQL logs in an OpenSearch DB:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst dbpostgresql = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXXX\",\n engine: \"postgresql\",\n id: \"ZZZZ\",\n});\nconst dbopensearch = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXXX\",\n engine: \"opensearch\",\n id: \"ZZZZ\",\n});\nconst integration = new ovh.cloudprojectdatabase.Integration(\"integration\", {\n serviceName: dbpostgresql.then(dbpostgresql =\u003e dbpostgresql.serviceName),\n engine: dbpostgresql.then(dbpostgresql =\u003e dbpostgresql.engine),\n clusterId: dbpostgresql.then(dbpostgresql =\u003e dbpostgresql.id),\n sourceServiceId: dbpostgresql.then(dbpostgresql =\u003e dbpostgresql.id),\n destinationServiceId: dbopensearch.then(dbopensearch =\u003e dbopensearch.id),\n type: \"opensearchLogs\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ndbpostgresql = ovh.CloudProjectDatabase.get_database(service_name=\"XXXX\",\n engine=\"postgresql\",\n id=\"ZZZZ\")\ndbopensearch = ovh.CloudProjectDatabase.get_database(service_name=\"XXXX\",\n engine=\"opensearch\",\n id=\"ZZZZ\")\nintegration = ovh.cloud_project_database.Integration(\"integration\",\n service_name=dbpostgresql.service_name,\n engine=dbpostgresql.engine,\n cluster_id=dbpostgresql.id,\n source_service_id=dbpostgresql.id,\n destination_service_id=dbopensearch.id,\n type=\"opensearchLogs\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var dbpostgresql = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXXX\",\n Engine = \"postgresql\",\n Id = \"ZZZZ\",\n });\n\n var dbopensearch = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXXX\",\n Engine = \"opensearch\",\n Id = \"ZZZZ\",\n });\n\n var integration = new Ovh.CloudProjectDatabase.Integration(\"integration\", new()\n {\n ServiceName = dbpostgresql.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n Engine = dbpostgresql.Apply(getDatabaseResult =\u003e getDatabaseResult.Engine),\n ClusterId = dbpostgresql.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n SourceServiceId = dbpostgresql.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n DestinationServiceId = dbopensearch.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n Type = \"opensearchLogs\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdbpostgresql, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXXX\",\n\t\t\tEngine: \"postgresql\",\n\t\t\tId: \"ZZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdbopensearch, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXXX\",\n\t\t\tEngine: \"opensearch\",\n\t\t\tId: \"ZZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewIntegration(ctx, \"integration\", \u0026CloudProjectDatabase.IntegrationArgs{\n\t\t\tServiceName: *pulumi.String(dbpostgresql.ServiceName),\n\t\t\tEngine: *pulumi.String(dbpostgresql.Engine),\n\t\t\tClusterId: *pulumi.String(dbpostgresql.Id),\n\t\t\tSourceServiceId: *pulumi.String(dbpostgresql.Id),\n\t\t\tDestinationServiceId: *pulumi.String(dbopensearch.Id),\n\t\t\tType: pulumi.String(\"opensearchLogs\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.Integration;\nimport com.pulumi.ovh.CloudProjectDatabase.IntegrationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var dbpostgresql = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXXX\")\n .engine(\"postgresql\")\n .id(\"ZZZZ\")\n .build());\n\n final var dbopensearch = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXXX\")\n .engine(\"opensearch\")\n .id(\"ZZZZ\")\n .build());\n\n var integration = new Integration(\"integration\", IntegrationArgs.builder() \n .serviceName(dbpostgresql.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .engine(dbpostgresql.applyValue(getDatabaseResult -\u003e getDatabaseResult.engine()))\n .clusterId(dbpostgresql.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .sourceServiceId(dbpostgresql.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .destinationServiceId(dbopensearch.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .type(\"opensearchLogs\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n integration:\n type: ovh:CloudProjectDatabase:Integration\n properties:\n serviceName: ${dbpostgresql.serviceName}\n engine: ${dbpostgresql.engine}\n clusterId: ${dbpostgresql.id}\n sourceServiceId: ${dbpostgresql.id}\n destinationServiceId: ${dbopensearch.id}\n type: opensearchLogs\nvariables:\n dbpostgresql:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXXX\n engine: postgresql\n id: ZZZZ\n dbopensearch:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXXX\n engine: opensearch\n id: ZZZZ\n```\n{{% /example %}}\n{{% /examples %}}\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\n bash\n\n ```sh\n $ pulumi import ovh:CloudProjectDatabase/integration:Integration my_user service_name/engine/cluster_id/id\n```\n\n ", "properties": { "clusterId": { "type": "string", @@ -7001,7 +7233,7 @@ } }, "ovh:CloudProjectDatabase/ipRestriction:IpRestriction": { - "description": "Apply IP restrictions to an OVHcloud Managed Database cluster.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst db = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXXX\",\n engine: \"YYYY\",\n id: \"ZZZZ\",\n});\nconst iprestriction = new ovh.cloudprojectdatabase.IpRestriction(\"iprestriction\", {\n serviceName: db.then(db =\u003e db.serviceName),\n engine: db.then(db =\u003e db.engine),\n clusterId: db.then(db =\u003e db.id),\n ip: \"178.97.6.0/24\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ndb = ovh.CloudProjectDatabase.get_database(service_name=\"XXXX\",\n engine=\"YYYY\",\n id=\"ZZZZ\")\niprestriction = ovh.cloud_project_database.IpRestriction(\"iprestriction\",\n service_name=db.service_name,\n engine=db.engine,\n cluster_id=db.id,\n ip=\"178.97.6.0/24\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var db = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXXX\",\n Engine = \"YYYY\",\n Id = \"ZZZZ\",\n });\n\n var iprestriction = new Ovh.CloudProjectDatabase.IpRestriction(\"iprestriction\", new()\n {\n ServiceName = db.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n Engine = db.Apply(getDatabaseResult =\u003e getDatabaseResult.Engine),\n ClusterId = db.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n Ip = \"178.97.6.0/24\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdb, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXXX\",\n\t\t\tEngine: \"YYYY\",\n\t\t\tId: \"ZZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewIpRestriction(ctx, \"iprestriction\", \u0026CloudProjectDatabase.IpRestrictionArgs{\n\t\t\tServiceName: *pulumi.String(db.ServiceName),\n\t\t\tEngine: *pulumi.String(db.Engine),\n\t\t\tClusterId: *pulumi.String(db.Id),\n\t\t\tIp: pulumi.String(\"178.97.6.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.IpRestriction;\nimport com.pulumi.ovh.CloudProjectDatabase.IpRestrictionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var db = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXXX\")\n .engine(\"YYYY\")\n .id(\"ZZZZ\")\n .build());\n\n var iprestriction = new IpRestriction(\"iprestriction\", IpRestrictionArgs.builder() \n .serviceName(db.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .engine(db.applyValue(getDatabaseResult -\u003e getDatabaseResult.engine()))\n .clusterId(db.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .ip(\"178.97.6.0/24\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n iprestriction:\n type: ovh:CloudProjectDatabase:IpRestriction\n properties:\n serviceName: ${db.serviceName}\n engine: ${db.engine}\n clusterId: ${db.id}\n ip: 178.97.6.0/24\nvariables:\n db:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXXX\n engine: YYYY\n id: ZZZZ\n```\n{{% /example %}}\n{{% /examples %}}\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., bash\n\n```sh\n $ pulumi import ovh:CloudProjectDatabase/ipRestriction:IpRestriction my_ip_restriction service_name/engine/cluster_id/178.97.6.0/24\n```\n\n ", + "description": "Apply IP restrictions to an OVHcloud Managed Database cluster.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst db = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXXX\",\n engine: \"YYYY\",\n id: \"ZZZZ\",\n});\nconst iprestriction = new ovh.cloudprojectdatabase.IpRestriction(\"iprestriction\", {\n serviceName: db.then(db =\u003e db.serviceName),\n engine: db.then(db =\u003e db.engine),\n clusterId: db.then(db =\u003e db.id),\n ip: \"178.97.6.0/24\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ndb = ovh.CloudProjectDatabase.get_database(service_name=\"XXXX\",\n engine=\"YYYY\",\n id=\"ZZZZ\")\niprestriction = ovh.cloud_project_database.IpRestriction(\"iprestriction\",\n service_name=db.service_name,\n engine=db.engine,\n cluster_id=db.id,\n ip=\"178.97.6.0/24\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var db = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXXX\",\n Engine = \"YYYY\",\n Id = \"ZZZZ\",\n });\n\n var iprestriction = new Ovh.CloudProjectDatabase.IpRestriction(\"iprestriction\", new()\n {\n ServiceName = db.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n Engine = db.Apply(getDatabaseResult =\u003e getDatabaseResult.Engine),\n ClusterId = db.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n Ip = \"178.97.6.0/24\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdb, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXXX\",\n\t\t\tEngine: \"YYYY\",\n\t\t\tId: \"ZZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewIpRestriction(ctx, \"iprestriction\", \u0026CloudProjectDatabase.IpRestrictionArgs{\n\t\t\tServiceName: *pulumi.String(db.ServiceName),\n\t\t\tEngine: *pulumi.String(db.Engine),\n\t\t\tClusterId: *pulumi.String(db.Id),\n\t\t\tIp: pulumi.String(\"178.97.6.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.IpRestriction;\nimport com.pulumi.ovh.CloudProjectDatabase.IpRestrictionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var db = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXXX\")\n .engine(\"YYYY\")\n .id(\"ZZZZ\")\n .build());\n\n var iprestriction = new IpRestriction(\"iprestriction\", IpRestrictionArgs.builder() \n .serviceName(db.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .engine(db.applyValue(getDatabaseResult -\u003e getDatabaseResult.engine()))\n .clusterId(db.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .ip(\"178.97.6.0/24\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n iprestriction:\n type: ovh:CloudProjectDatabase:IpRestriction\n properties:\n serviceName: ${db.serviceName}\n engine: ${db.engine}\n clusterId: ${db.id}\n ip: 178.97.6.0/24\nvariables:\n db:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXXX\n engine: YYYY\n id: ZZZZ\n```\n{{% /example %}}\n{{% /examples %}}\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\n bash\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", @@ -7103,7 +7335,7 @@ } }, "ovh:CloudProjectDatabase/kafkaAcl:KafkaAcl": { - "description": "Creates an ACL for a kafka cluster associated with a public cloud project.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst kafka = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXX\",\n engine: \"kafka\",\n id: \"ZZZ\",\n});\nconst acl = new ovh.cloudprojectdatabase.KafkaAcl(\"acl\", {\n serviceName: kafka.then(kafka =\u003e kafka.serviceName),\n clusterId: kafka.then(kafka =\u003e kafka.id),\n permission: \"read\",\n topic: \"mytopic\",\n username: \"johndoe\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nkafka = ovh.CloudProjectDatabase.get_database(service_name=\"XXX\",\n engine=\"kafka\",\n id=\"ZZZ\")\nacl = ovh.cloud_project_database.KafkaAcl(\"acl\",\n service_name=kafka.service_name,\n cluster_id=kafka.id,\n permission=\"read\",\n topic=\"mytopic\",\n username=\"johndoe\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var kafka = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXX\",\n Engine = \"kafka\",\n Id = \"ZZZ\",\n });\n\n var acl = new Ovh.CloudProjectDatabase.KafkaAcl(\"acl\", new()\n {\n ServiceName = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n ClusterId = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n Permission = \"read\",\n Topic = \"mytopic\",\n Username = \"johndoe\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkafka, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine: \"kafka\",\n\t\t\tId: \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewKafkaAcl(ctx, \"acl\", \u0026CloudProjectDatabase.KafkaAclArgs{\n\t\t\tServiceName: *pulumi.String(kafka.ServiceName),\n\t\t\tClusterId: *pulumi.String(kafka.Id),\n\t\t\tPermission: pulumi.String(\"read\"),\n\t\t\tTopic: pulumi.String(\"mytopic\"),\n\t\t\tUsername: pulumi.String(\"johndoe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.KafkaAcl;\nimport com.pulumi.ovh.CloudProjectDatabase.KafkaAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var kafka = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXX\")\n .engine(\"kafka\")\n .id(\"ZZZ\")\n .build());\n\n var acl = new KafkaAcl(\"acl\", KafkaAclArgs.builder() \n .serviceName(kafka.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .clusterId(kafka.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .permission(\"read\")\n .topic(\"mytopic\")\n .username(\"johndoe\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n acl:\n type: ovh:CloudProjectDatabase:KafkaAcl\n properties:\n serviceName: ${kafka.serviceName}\n clusterId: ${kafka.id}\n permission: read\n topic: mytopic\n username: johndoe\nvariables:\n kafka:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXX\n engine: kafka\n id: ZZZ\n```\n{{% /example %}}\n{{% /examples %}}\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., bash\n\n```sh\n $ pulumi import ovh:CloudProjectDatabase/kafkaAcl:KafkaAcl my_acl service_name/cluster_id/id\n```\n\n ", + "description": "Creates an ACL for a kafka cluster associated with a public cloud project.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst kafka = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXX\",\n engine: \"kafka\",\n id: \"ZZZ\",\n});\nconst acl = new ovh.cloudprojectdatabase.KafkaAcl(\"acl\", {\n serviceName: kafka.then(kafka =\u003e kafka.serviceName),\n clusterId: kafka.then(kafka =\u003e kafka.id),\n permission: \"read\",\n topic: \"mytopic\",\n username: \"johndoe\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nkafka = ovh.CloudProjectDatabase.get_database(service_name=\"XXX\",\n engine=\"kafka\",\n id=\"ZZZ\")\nacl = ovh.cloud_project_database.KafkaAcl(\"acl\",\n service_name=kafka.service_name,\n cluster_id=kafka.id,\n permission=\"read\",\n topic=\"mytopic\",\n username=\"johndoe\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var kafka = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXX\",\n Engine = \"kafka\",\n Id = \"ZZZ\",\n });\n\n var acl = new Ovh.CloudProjectDatabase.KafkaAcl(\"acl\", new()\n {\n ServiceName = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n ClusterId = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n Permission = \"read\",\n Topic = \"mytopic\",\n Username = \"johndoe\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkafka, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine: \"kafka\",\n\t\t\tId: \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewKafkaAcl(ctx, \"acl\", \u0026CloudProjectDatabase.KafkaAclArgs{\n\t\t\tServiceName: *pulumi.String(kafka.ServiceName),\n\t\t\tClusterId: *pulumi.String(kafka.Id),\n\t\t\tPermission: pulumi.String(\"read\"),\n\t\t\tTopic: pulumi.String(\"mytopic\"),\n\t\t\tUsername: pulumi.String(\"johndoe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.KafkaAcl;\nimport com.pulumi.ovh.CloudProjectDatabase.KafkaAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var kafka = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXX\")\n .engine(\"kafka\")\n .id(\"ZZZ\")\n .build());\n\n var acl = new KafkaAcl(\"acl\", KafkaAclArgs.builder() \n .serviceName(kafka.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .clusterId(kafka.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .permission(\"read\")\n .topic(\"mytopic\")\n .username(\"johndoe\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n acl:\n type: ovh:CloudProjectDatabase:KafkaAcl\n properties:\n serviceName: ${kafka.serviceName}\n clusterId: ${kafka.id}\n permission: read\n topic: mytopic\n username: johndoe\nvariables:\n kafka:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXX\n engine: kafka\n id: ZZZ\n```\n{{% /example %}}\n{{% /examples %}}\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\n bash\n\n ```sh\n $ pulumi import ovh:CloudProjectDatabase/kafkaAcl:KafkaAcl my_acl service_name/cluster_id/id\n```\n\n ", "properties": { "clusterId": { "type": "string", @@ -7200,7 +7432,7 @@ } }, "ovh:CloudProjectDatabase/kafkaSchemaRegistryAcl:KafkaSchemaRegistryAcl": { - "description": "Creates a schema registry ACL for a Kafka cluster associated with a public cloud project.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst kafka = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXX\",\n engine: \"kafka\",\n id: \"ZZZ\",\n});\nconst schemaRegistryAcl = new ovh.cloudprojectdatabase.KafkaSchemaRegistryAcl(\"schemaRegistryAcl\", {\n serviceName: kafka.then(kafka =\u003e kafka.serviceName),\n clusterId: kafka.then(kafka =\u003e kafka.id),\n permission: \"schema_registry_read\",\n resource: \"Subject:myResource\",\n username: \"johndoe\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nkafka = ovh.CloudProjectDatabase.get_database(service_name=\"XXX\",\n engine=\"kafka\",\n id=\"ZZZ\")\nschema_registry_acl = ovh.cloud_project_database.KafkaSchemaRegistryAcl(\"schemaRegistryAcl\",\n service_name=kafka.service_name,\n cluster_id=kafka.id,\n permission=\"schema_registry_read\",\n resource=\"Subject:myResource\",\n username=\"johndoe\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var kafka = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXX\",\n Engine = \"kafka\",\n Id = \"ZZZ\",\n });\n\n var schemaRegistryAcl = new Ovh.CloudProjectDatabase.KafkaSchemaRegistryAcl(\"schemaRegistryAcl\", new()\n {\n ServiceName = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n ClusterId = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n Permission = \"schema_registry_read\",\n Resource = \"Subject:myResource\",\n Username = \"johndoe\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkafka, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine: \"kafka\",\n\t\t\tId: \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewKafkaSchemaRegistryAcl(ctx, \"schemaRegistryAcl\", \u0026CloudProjectDatabase.KafkaSchemaRegistryAclArgs{\n\t\t\tServiceName: *pulumi.String(kafka.ServiceName),\n\t\t\tClusterId: *pulumi.String(kafka.Id),\n\t\t\tPermission: pulumi.String(\"schema_registry_read\"),\n\t\t\tResource: pulumi.String(\"Subject:myResource\"),\n\t\t\tUsername: pulumi.String(\"johndoe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.KafkaSchemaRegistryAcl;\nimport com.pulumi.ovh.CloudProjectDatabase.KafkaSchemaRegistryAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var kafka = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXX\")\n .engine(\"kafka\")\n .id(\"ZZZ\")\n .build());\n\n var schemaRegistryAcl = new KafkaSchemaRegistryAcl(\"schemaRegistryAcl\", KafkaSchemaRegistryAclArgs.builder() \n .serviceName(kafka.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .clusterId(kafka.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .permission(\"schema_registry_read\")\n .resource(\"Subject:myResource\")\n .username(\"johndoe\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n schemaRegistryAcl:\n type: ovh:CloudProjectDatabase:KafkaSchemaRegistryAcl\n properties:\n serviceName: ${kafka.serviceName}\n clusterId: ${kafka.id}\n permission: schema_registry_read\n resource: Subject:myResource\n username: johndoe\nvariables:\n kafka:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXX\n engine: kafka\n id: ZZZ\n```\n{{% /example %}}\n{{% /examples %}}\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., bash\n\n```sh\n $ pulumi import ovh:CloudProjectDatabase/kafkaSchemaRegistryAcl:KafkaSchemaRegistryAcl my_schemaRegistryAcl service_name/cluster_id/id\n```\n\n ", + "description": "Creates a schema registry ACL for a Kafka cluster associated with a public cloud project.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst kafka = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXX\",\n engine: \"kafka\",\n id: \"ZZZ\",\n});\nconst schemaRegistryAcl = new ovh.cloudprojectdatabase.KafkaSchemaRegistryAcl(\"schemaRegistryAcl\", {\n serviceName: kafka.then(kafka =\u003e kafka.serviceName),\n clusterId: kafka.then(kafka =\u003e kafka.id),\n permission: \"schema_registry_read\",\n resource: \"Subject:myResource\",\n username: \"johndoe\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nkafka = ovh.CloudProjectDatabase.get_database(service_name=\"XXX\",\n engine=\"kafka\",\n id=\"ZZZ\")\nschema_registry_acl = ovh.cloud_project_database.KafkaSchemaRegistryAcl(\"schemaRegistryAcl\",\n service_name=kafka.service_name,\n cluster_id=kafka.id,\n permission=\"schema_registry_read\",\n resource=\"Subject:myResource\",\n username=\"johndoe\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var kafka = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXX\",\n Engine = \"kafka\",\n Id = \"ZZZ\",\n });\n\n var schemaRegistryAcl = new Ovh.CloudProjectDatabase.KafkaSchemaRegistryAcl(\"schemaRegistryAcl\", new()\n {\n ServiceName = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n ClusterId = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n Permission = \"schema_registry_read\",\n Resource = \"Subject:myResource\",\n Username = \"johndoe\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkafka, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine: \"kafka\",\n\t\t\tId: \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewKafkaSchemaRegistryAcl(ctx, \"schemaRegistryAcl\", \u0026CloudProjectDatabase.KafkaSchemaRegistryAclArgs{\n\t\t\tServiceName: *pulumi.String(kafka.ServiceName),\n\t\t\tClusterId: *pulumi.String(kafka.Id),\n\t\t\tPermission: pulumi.String(\"schema_registry_read\"),\n\t\t\tResource: pulumi.String(\"Subject:myResource\"),\n\t\t\tUsername: pulumi.String(\"johndoe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.KafkaSchemaRegistryAcl;\nimport com.pulumi.ovh.CloudProjectDatabase.KafkaSchemaRegistryAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var kafka = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXX\")\n .engine(\"kafka\")\n .id(\"ZZZ\")\n .build());\n\n var schemaRegistryAcl = new KafkaSchemaRegistryAcl(\"schemaRegistryAcl\", KafkaSchemaRegistryAclArgs.builder() \n .serviceName(kafka.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .clusterId(kafka.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .permission(\"schema_registry_read\")\n .resource(\"Subject:myResource\")\n .username(\"johndoe\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n schemaRegistryAcl:\n type: ovh:CloudProjectDatabase:KafkaSchemaRegistryAcl\n properties:\n serviceName: ${kafka.serviceName}\n clusterId: ${kafka.id}\n permission: schema_registry_read\n resource: Subject:myResource\n username: johndoe\nvariables:\n kafka:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXX\n engine: kafka\n id: ZZZ\n```\n{{% /example %}}\n{{% /examples %}}\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\n bash\n\n ```sh\n $ pulumi import ovh:CloudProjectDatabase/kafkaSchemaRegistryAcl:KafkaSchemaRegistryAcl my_schemaRegistryAcl service_name/cluster_id/id\n```\n\n ", "properties": { "clusterId": { "type": "string", @@ -7297,7 +7529,7 @@ } }, "ovh:CloudProjectDatabase/kafkaTopic:KafkaTopic": { - "description": "Creates a topic for a kafka cluster associated with a public cloud project.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst kafka = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXX\",\n engine: \"kafka\",\n id: \"ZZZ\",\n});\nconst topic = new ovh.cloudprojectdatabase.KafkaTopic(\"topic\", {\n serviceName: kafka.then(kafka =\u003e kafka.serviceName),\n clusterId: kafka.then(kafka =\u003e kafka.id),\n minInsyncReplicas: 1,\n partitions: 3,\n replication: 2,\n retentionBytes: 4,\n retentionHours: 5,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nkafka = ovh.CloudProjectDatabase.get_database(service_name=\"XXX\",\n engine=\"kafka\",\n id=\"ZZZ\")\ntopic = ovh.cloud_project_database.KafkaTopic(\"topic\",\n service_name=kafka.service_name,\n cluster_id=kafka.id,\n min_insync_replicas=1,\n partitions=3,\n replication=2,\n retention_bytes=4,\n retention_hours=5)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var kafka = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXX\",\n Engine = \"kafka\",\n Id = \"ZZZ\",\n });\n\n var topic = new Ovh.CloudProjectDatabase.KafkaTopic(\"topic\", new()\n {\n ServiceName = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n ClusterId = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n MinInsyncReplicas = 1,\n Partitions = 3,\n Replication = 2,\n RetentionBytes = 4,\n RetentionHours = 5,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkafka, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine: \"kafka\",\n\t\t\tId: \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewKafkaTopic(ctx, \"topic\", \u0026CloudProjectDatabase.KafkaTopicArgs{\n\t\t\tServiceName: *pulumi.String(kafka.ServiceName),\n\t\t\tClusterId: *pulumi.String(kafka.Id),\n\t\t\tMinInsyncReplicas: pulumi.Int(1),\n\t\t\tPartitions: pulumi.Int(3),\n\t\t\tReplication: pulumi.Int(2),\n\t\t\tRetentionBytes: pulumi.Int(4),\n\t\t\tRetentionHours: pulumi.Int(5),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.KafkaTopic;\nimport com.pulumi.ovh.CloudProjectDatabase.KafkaTopicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var kafka = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXX\")\n .engine(\"kafka\")\n .id(\"ZZZ\")\n .build());\n\n var topic = new KafkaTopic(\"topic\", KafkaTopicArgs.builder() \n .serviceName(kafka.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .clusterId(kafka.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .minInsyncReplicas(1)\n .partitions(3)\n .replication(2)\n .retentionBytes(4)\n .retentionHours(5)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n topic:\n type: ovh:CloudProjectDatabase:KafkaTopic\n properties:\n serviceName: ${kafka.serviceName}\n clusterId: ${kafka.id}\n minInsyncReplicas: 1\n partitions: 3\n replication: 2\n retentionBytes: 4\n retentionHours: 5\nvariables:\n kafka:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXX\n engine: kafka\n id: ZZZ\n```\n{{% /example %}}\n{{% /examples %}}\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., bash\n\n```sh\n $ pulumi import ovh:CloudProjectDatabase/kafkaTopic:KafkaTopic my_topic service_name/cluster_id/id\n```\n\n ", + "description": "Creates a topic for a kafka cluster associated with a public cloud project.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst kafka = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXX\",\n engine: \"kafka\",\n id: \"ZZZ\",\n});\nconst topic = new ovh.cloudprojectdatabase.KafkaTopic(\"topic\", {\n serviceName: kafka.then(kafka =\u003e kafka.serviceName),\n clusterId: kafka.then(kafka =\u003e kafka.id),\n minInsyncReplicas: 1,\n partitions: 3,\n replication: 2,\n retentionBytes: 4,\n retentionHours: 5,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nkafka = ovh.CloudProjectDatabase.get_database(service_name=\"XXX\",\n engine=\"kafka\",\n id=\"ZZZ\")\ntopic = ovh.cloud_project_database.KafkaTopic(\"topic\",\n service_name=kafka.service_name,\n cluster_id=kafka.id,\n min_insync_replicas=1,\n partitions=3,\n replication=2,\n retention_bytes=4,\n retention_hours=5)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var kafka = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXX\",\n Engine = \"kafka\",\n Id = \"ZZZ\",\n });\n\n var topic = new Ovh.CloudProjectDatabase.KafkaTopic(\"topic\", new()\n {\n ServiceName = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n ClusterId = kafka.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n MinInsyncReplicas = 1,\n Partitions = 3,\n Replication = 2,\n RetentionBytes = 4,\n RetentionHours = 5,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkafka, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine: \"kafka\",\n\t\t\tId: \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewKafkaTopic(ctx, \"topic\", \u0026CloudProjectDatabase.KafkaTopicArgs{\n\t\t\tServiceName: *pulumi.String(kafka.ServiceName),\n\t\t\tClusterId: *pulumi.String(kafka.Id),\n\t\t\tMinInsyncReplicas: pulumi.Int(1),\n\t\t\tPartitions: pulumi.Int(3),\n\t\t\tReplication: pulumi.Int(2),\n\t\t\tRetentionBytes: pulumi.Int(4),\n\t\t\tRetentionHours: pulumi.Int(5),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.KafkaTopic;\nimport com.pulumi.ovh.CloudProjectDatabase.KafkaTopicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var kafka = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXX\")\n .engine(\"kafka\")\n .id(\"ZZZ\")\n .build());\n\n var topic = new KafkaTopic(\"topic\", KafkaTopicArgs.builder() \n .serviceName(kafka.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .clusterId(kafka.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .minInsyncReplicas(1)\n .partitions(3)\n .replication(2)\n .retentionBytes(4)\n .retentionHours(5)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n topic:\n type: ovh:CloudProjectDatabase:KafkaTopic\n properties:\n serviceName: ${kafka.serviceName}\n clusterId: ${kafka.id}\n minInsyncReplicas: 1\n partitions: 3\n replication: 2\n retentionBytes: 4\n retentionHours: 5\nvariables:\n kafka:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXX\n engine: kafka\n id: ZZZ\n```\n{{% /example %}}\n{{% /examples %}}\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\n bash\n\n ```sh\n $ pulumi import ovh:CloudProjectDatabase/kafkaTopic:KafkaTopic my_topic service_name/cluster_id/id\n```\n\n ", "properties": { "clusterId": { "type": "string", @@ -7436,7 +7668,7 @@ } }, "ovh:CloudProjectDatabase/m3DbNamespace:M3DbNamespace": { - "description": "Creates a namespace for a M3DB cluster associated with a public cloud project.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst m3db = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXX\",\n engine: \"m3db\",\n id: \"ZZZ\",\n});\nconst namespace = new ovh.cloudprojectdatabase.M3DbNamespace(\"namespace\", {\n serviceName: m3db.then(m3db =\u003e m3db.serviceName),\n clusterId: m3db.then(m3db =\u003e m3db.id),\n resolution: \"P2D\",\n retentionPeriodDuration: \"PT48H\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nm3db = ovh.CloudProjectDatabase.get_database(service_name=\"XXX\",\n engine=\"m3db\",\n id=\"ZZZ\")\nnamespace = ovh.cloud_project_database.M3DbNamespace(\"namespace\",\n service_name=m3db.service_name,\n cluster_id=m3db.id,\n resolution=\"P2D\",\n retention_period_duration=\"PT48H\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var m3db = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXX\",\n Engine = \"m3db\",\n Id = \"ZZZ\",\n });\n\n var @namespace = new Ovh.CloudProjectDatabase.M3DbNamespace(\"namespace\", new()\n {\n ServiceName = m3db.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n ClusterId = m3db.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n Resolution = \"P2D\",\n RetentionPeriodDuration = \"PT48H\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tm3db, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine: \"m3db\",\n\t\t\tId: \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewM3DbNamespace(ctx, \"namespace\", \u0026CloudProjectDatabase.M3DbNamespaceArgs{\n\t\t\tServiceName: *pulumi.String(m3db.ServiceName),\n\t\t\tClusterId: *pulumi.String(m3db.Id),\n\t\t\tResolution: pulumi.String(\"P2D\"),\n\t\t\tRetentionPeriodDuration: pulumi.String(\"PT48H\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.M3DbNamespace;\nimport com.pulumi.ovh.CloudProjectDatabase.M3DbNamespaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var m3db = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXX\")\n .engine(\"m3db\")\n .id(\"ZZZ\")\n .build());\n\n var namespace = new M3DbNamespace(\"namespace\", M3DbNamespaceArgs.builder() \n .serviceName(m3db.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .clusterId(m3db.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .resolution(\"P2D\")\n .retentionPeriodDuration(\"PT48H\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n namespace:\n type: ovh:CloudProjectDatabase:M3DbNamespace\n properties:\n serviceName: ${m3db.serviceName}\n clusterId: ${m3db.id}\n resolution: P2D\n retentionPeriodDuration: PT48H\nvariables:\n m3db:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXX\n engine: m3db\n id: ZZZ\n```\n{{% /example %}}\n{{% /examples %}}\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., bash\n\n```sh\n $ pulumi import ovh:CloudProjectDatabase/m3DbNamespace:M3DbNamespace my_namespace service_name/cluster_id/id\n```\n\n ", + "description": "Creates a namespace for a M3DB cluster associated with a public cloud project.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst m3db = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXX\",\n engine: \"m3db\",\n id: \"ZZZ\",\n});\nconst namespace = new ovh.cloudprojectdatabase.M3DbNamespace(\"namespace\", {\n serviceName: m3db.then(m3db =\u003e m3db.serviceName),\n clusterId: m3db.then(m3db =\u003e m3db.id),\n resolution: \"P2D\",\n retentionPeriodDuration: \"PT48H\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nm3db = ovh.CloudProjectDatabase.get_database(service_name=\"XXX\",\n engine=\"m3db\",\n id=\"ZZZ\")\nnamespace = ovh.cloud_project_database.M3DbNamespace(\"namespace\",\n service_name=m3db.service_name,\n cluster_id=m3db.id,\n resolution=\"P2D\",\n retention_period_duration=\"PT48H\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var m3db = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXX\",\n Engine = \"m3db\",\n Id = \"ZZZ\",\n });\n\n var @namespace = new Ovh.CloudProjectDatabase.M3DbNamespace(\"namespace\", new()\n {\n ServiceName = m3db.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n ClusterId = m3db.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n Resolution = \"P2D\",\n RetentionPeriodDuration = \"PT48H\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tm3db, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine: \"m3db\",\n\t\t\tId: \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewM3DbNamespace(ctx, \"namespace\", \u0026CloudProjectDatabase.M3DbNamespaceArgs{\n\t\t\tServiceName: *pulumi.String(m3db.ServiceName),\n\t\t\tClusterId: *pulumi.String(m3db.Id),\n\t\t\tResolution: pulumi.String(\"P2D\"),\n\t\t\tRetentionPeriodDuration: pulumi.String(\"PT48H\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.M3DbNamespace;\nimport com.pulumi.ovh.CloudProjectDatabase.M3DbNamespaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var m3db = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXX\")\n .engine(\"m3db\")\n .id(\"ZZZ\")\n .build());\n\n var namespace = new M3DbNamespace(\"namespace\", M3DbNamespaceArgs.builder() \n .serviceName(m3db.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .clusterId(m3db.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .resolution(\"P2D\")\n .retentionPeriodDuration(\"PT48H\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n namespace:\n type: ovh:CloudProjectDatabase:M3DbNamespace\n properties:\n serviceName: ${m3db.serviceName}\n clusterId: ${m3db.id}\n resolution: P2D\n retentionPeriodDuration: PT48H\nvariables:\n m3db:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXX\n engine: m3db\n id: ZZZ\n```\n{{% /example %}}\n{{% /examples %}}\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\n bash\n\n ```sh\n $ pulumi import ovh:CloudProjectDatabase/m3DbNamespace:M3DbNamespace my_namespace service_name/cluster_id/id\n```\n\n ", "properties": { "clusterId": { "type": "string", @@ -7610,7 +7842,7 @@ } }, "ovh:CloudProjectDatabase/m3DbUser:M3DbUser": { - "description": "\n\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., bash\n\n```sh\n $ pulumi import ovh:CloudProjectDatabase/m3DbUser:M3DbUser my_user service_name/cluster_id/id\n```\n\n ", + "description": "\n\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\n bash\n\n ```sh\n $ pulumi import ovh:CloudProjectDatabase/m3DbUser:M3DbUser my_user service_name/cluster_id/id\n```\n\n ", "properties": { "clusterId": { "type": "string", @@ -7727,7 +7959,7 @@ } }, "ovh:CloudProjectDatabase/mongoDbUser:MongoDbUser": { - "description": "\n\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., bash\n\n```sh\n $ pulumi import ovh:CloudProjectDatabase/mongoDbUser:MongoDbUser my_user service_name/cluster_id/id\n```\n\n ", + "description": "\n\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\n bash\n\n ```sh\n $ pulumi import ovh:CloudProjectDatabase/mongoDbUser:MongoDbUser my_user service_name/cluster_id/id\n```\n\n ", "properties": { "clusterId": { "type": "string", @@ -7755,7 +7987,7 @@ "items": { "type": "string" }, - "description": "Roles the user belongs to.\nAvailable roles:\n" + "description": "Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles\nAvailable 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", @@ -7794,7 +8026,7 @@ "items": { "type": "string" }, - "description": "Roles the user belongs to.\nAvailable roles:\n" + "description": "Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles\nAvailable 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", @@ -7837,7 +8069,7 @@ "items": { "type": "string" }, - "description": "Roles the user belongs to.\nAvailable roles:\n" + "description": "Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles\nAvailable 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", @@ -7853,7 +8085,7 @@ } }, "ovh:CloudProjectDatabase/opensearchPattern:OpensearchPattern": { - "description": "Creates a pattern for a opensearch cluster associated with a public cloud project.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst opensearch = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXX\",\n engine: \"opensearch\",\n id: \"ZZZ\",\n});\nconst pattern = new ovh.cloudprojectdatabase.OpensearchPattern(\"pattern\", {\n serviceName: opensearch.then(opensearch =\u003e opensearch.serviceName),\n clusterId: opensearch.then(opensearch =\u003e opensearch.id),\n maxIndexCount: 2,\n pattern: \"logs_*\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nopensearch = ovh.CloudProjectDatabase.get_database(service_name=\"XXX\",\n engine=\"opensearch\",\n id=\"ZZZ\")\npattern = ovh.cloud_project_database.OpensearchPattern(\"pattern\",\n service_name=opensearch.service_name,\n cluster_id=opensearch.id,\n max_index_count=2,\n pattern=\"logs_*\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var opensearch = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXX\",\n Engine = \"opensearch\",\n Id = \"ZZZ\",\n });\n\n var pattern = new Ovh.CloudProjectDatabase.OpensearchPattern(\"pattern\", new()\n {\n ServiceName = opensearch.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n ClusterId = opensearch.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n MaxIndexCount = 2,\n Pattern = \"logs_*\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topensearch, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine: \"opensearch\",\n\t\t\tId: \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewOpensearchPattern(ctx, \"pattern\", \u0026CloudProjectDatabase.OpensearchPatternArgs{\n\t\t\tServiceName: *pulumi.String(opensearch.ServiceName),\n\t\t\tClusterId: *pulumi.String(opensearch.Id),\n\t\t\tMaxIndexCount: pulumi.Int(2),\n\t\t\tPattern: pulumi.String(\"logs_*\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.OpensearchPattern;\nimport com.pulumi.ovh.CloudProjectDatabase.OpensearchPatternArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var opensearch = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXX\")\n .engine(\"opensearch\")\n .id(\"ZZZ\")\n .build());\n\n var pattern = new OpensearchPattern(\"pattern\", OpensearchPatternArgs.builder() \n .serviceName(opensearch.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .clusterId(opensearch.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .maxIndexCount(2)\n .pattern(\"logs_*\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n pattern:\n type: ovh:CloudProjectDatabase:OpensearchPattern\n properties:\n serviceName: ${opensearch.serviceName}\n clusterId: ${opensearch.id}\n maxIndexCount: 2\n pattern: logs_*\nvariables:\n opensearch:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXX\n engine: opensearch\n id: ZZZ\n```\n{{% /example %}}\n{{% /examples %}}\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., bash\n\n```sh\n $ pulumi import ovh:CloudProjectDatabase/opensearchPattern:OpensearchPattern my_pattern service_name/cluster_id/id\n```\n\n ", + "description": "Creates a pattern for a opensearch cluster associated with a public cloud project.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst opensearch = ovh.CloudProjectDatabase.getDatabase({\n serviceName: \"XXX\",\n engine: \"opensearch\",\n id: \"ZZZ\",\n});\nconst pattern = new ovh.cloudprojectdatabase.OpensearchPattern(\"pattern\", {\n serviceName: opensearch.then(opensearch =\u003e opensearch.serviceName),\n clusterId: opensearch.then(opensearch =\u003e opensearch.id),\n maxIndexCount: 2,\n pattern: \"logs_*\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nopensearch = ovh.CloudProjectDatabase.get_database(service_name=\"XXX\",\n engine=\"opensearch\",\n id=\"ZZZ\")\npattern = ovh.cloud_project_database.OpensearchPattern(\"pattern\",\n service_name=opensearch.service_name,\n cluster_id=opensearch.id,\n max_index_count=2,\n pattern=\"logs_*\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var opensearch = Ovh.CloudProjectDatabase.GetDatabase.Invoke(new()\n {\n ServiceName = \"XXX\",\n Engine = \"opensearch\",\n Id = \"ZZZ\",\n });\n\n var pattern = new Ovh.CloudProjectDatabase.OpensearchPattern(\"pattern\", new()\n {\n ServiceName = opensearch.Apply(getDatabaseResult =\u003e getDatabaseResult.ServiceName),\n ClusterId = opensearch.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n MaxIndexCount = 2,\n Pattern = \"logs_*\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topensearch, err := CloudProjectDatabase.GetDatabase(ctx, \u0026cloudprojectdatabase.GetDatabaseArgs{\n\t\t\tServiceName: \"XXX\",\n\t\t\tEngine: \"opensearch\",\n\t\t\tId: \"ZZZ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProjectDatabase.NewOpensearchPattern(ctx, \"pattern\", \u0026CloudProjectDatabase.OpensearchPatternArgs{\n\t\t\tServiceName: *pulumi.String(opensearch.ServiceName),\n\t\t\tClusterId: *pulumi.String(opensearch.Id),\n\t\t\tMaxIndexCount: pulumi.Int(2),\n\t\t\tPattern: pulumi.String(\"logs_*\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProjectDatabase.CloudProjectDatabaseFunctions;\nimport com.pulumi.ovh.CloudProjectDatabase.inputs.GetDatabaseArgs;\nimport com.pulumi.ovh.CloudProjectDatabase.OpensearchPattern;\nimport com.pulumi.ovh.CloudProjectDatabase.OpensearchPatternArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var opensearch = CloudProjectDatabaseFunctions.getDatabase(GetDatabaseArgs.builder()\n .serviceName(\"XXX\")\n .engine(\"opensearch\")\n .id(\"ZZZ\")\n .build());\n\n var pattern = new OpensearchPattern(\"pattern\", OpensearchPatternArgs.builder() \n .serviceName(opensearch.applyValue(getDatabaseResult -\u003e getDatabaseResult.serviceName()))\n .clusterId(opensearch.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n .maxIndexCount(2)\n .pattern(\"logs_*\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n pattern:\n type: ovh:CloudProjectDatabase:OpensearchPattern\n properties:\n serviceName: ${opensearch.serviceName}\n clusterId: ${opensearch.id}\n maxIndexCount: 2\n pattern: logs_*\nvariables:\n opensearch:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getDatabase\n Arguments:\n serviceName: XXX\n engine: opensearch\n id: ZZZ\n```\n{{% /example %}}\n{{% /examples %}}\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\n bash\n\n ```sh\n $ pulumi import ovh:CloudProjectDatabase/opensearchPattern:OpensearchPattern my_pattern service_name/cluster_id/id\n```\n\n ", "properties": { "clusterId": { "type": "string", @@ -7932,7 +8164,7 @@ } }, "ovh:CloudProjectDatabase/opensearchUser:OpensearchUser": { - "description": "\n\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., bash\n\n```sh\n $ pulumi import ovh:CloudProjectDatabase/opensearchUser:OpensearchUser my_user service_name/cluster_id/id\n```\n\n ", + "description": "\n\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\n bash\n\n ```sh\n $ pulumi import ovh:CloudProjectDatabase/opensearchUser:OpensearchUser my_user service_name/cluster_id/id\n```\n\n ", "properties": { "acls": { "type": "array", @@ -8057,54 +8289,60 @@ "type": "object" } }, - "ovh:CloudProjectDatabase/postgresSqlUser:PostgresSqlUser": { - "description": "\n\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., bash\n\n```sh\n $ pulumi import ovh:CloudProjectDatabase/postgresSqlUser:PostgresSqlUser my_user service_name/cluster_id/id\n```\n\n ", + "ovh:CloudProjectDatabase/postgresSqlConnectionPool:PostgresSqlConnectionPool": { + "description": "\n\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\n bash\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" }, - "createdAt": { - "type": "string", - "description": "Date of the creation of the user.\n" - }, - "name": { + "databaseId": { "type": "string", - "description": "Name of the user. A user named \"avnadmin\" is map with already created admin user and reset his password instead of create a new user.\n" + "description": "Database ID for a database that belongs to the Database cluster given above.\n" }, - "password": { + "mode": { "type": "string", - "description": "(Sensitive) Password of the user.\n", - "secret": true + "description": "Connection mode to the connection pool\nAvailable modes:\n" }, - "passwordReset": { + "name": { "type": "string", - "description": "Arbitrary string to change to trigger a password update\n" + "description": "Name of the connection pool.\n" }, - "roles": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Roles the user belongs to.\nAvailable roles:\n" + "port": { + "type": "integer", + "description": "Port of the connection pool.\n" }, "serviceName": { "type": "string", "description": "The id of the public cloud project. If omitted,\nthe `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n" }, - "status": { + "size": { + "type": "integer", + "description": "Size of the connection pool.\n" + }, + "sslMode": { "type": "string", - "description": "Current status of the user.\n" + "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", - "createdAt", + "databaseId", + "mode", "name", - "password", - "roles", + "port", "serviceName", - "status" + "size", + "sslMode", + "uri" ], "inputProperties": { "clusterId": { @@ -8112,45 +8350,184 @@ "description": "Cluster ID.\n", "willReplaceOnChanges": true }, - "name": { + "databaseId": { "type": "string", - "description": "Name of the user. A user named \"avnadmin\" is map with already created admin user and reset his password instead of create a new user.\n", - "willReplaceOnChanges": true + "description": "Database ID for a database that belongs to the Database cluster given above.\n" }, - "passwordReset": { + "mode": { "type": "string", - "description": "Arbitrary string to change to trigger a password update\n" + "description": "Connection mode to the connection pool\nAvailable modes:\n" }, - "roles": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Roles the user belongs to.\nAvailable roles:\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,\nthe `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", - "serviceName" + "databaseId", + "mode", + "serviceName", + "size" ], "stateInputs": { - "description": "Input properties used for looking up and filtering PostgresSqlUser resources.\n", + "description": "Input properties used for looking up and filtering PostgresSqlConnectionPool resources.\n", "properties": { "clusterId": { "type": "string", "description": "Cluster ID.\n", "willReplaceOnChanges": true }, - "createdAt": { + "databaseId": { "type": "string", - "description": "Date of the creation of the user.\n" + "description": "Database ID for a database that belongs to the Database cluster given above.\n" }, - "name": { + "mode": { + "type": "string", + "description": "Connection mode to the connection pool\nAvailable 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,\nthe `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\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\n bash\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 map with already created admin user and reset his password instead of create 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.\nAvailable roles:\n" + }, + "serviceName": { + "type": "string", + "description": "The id of the public cloud project. If omitted,\nthe `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 map with already created admin user and reset his password instead of create 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.\nAvailable roles:\n" + }, + "serviceName": { + "type": "string", + "description": "The id of the public cloud project. If omitted,\nthe `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n", + "willReplaceOnChanges": true + } + }, + "requiredInputs": [ + "clusterId", + "serviceName" + ], + "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 map with already created admin user and reset his password instead of create a new user.\n", "willReplaceOnChanges": true @@ -8185,7 +8562,7 @@ } }, "ovh:CloudProjectDatabase/redisUser:RedisUser": { - "description": "\n\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., bash\n\n```sh\n $ pulumi import ovh:CloudProjectDatabase/redisUser:RedisUser my_user service_name/cluster_id/id\n```\n\n ", + "description": "\n\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\n bash\n\n ```sh\n $ pulumi import ovh:CloudProjectDatabase/redisUser:RedisUser my_user service_name/cluster_id/id\n```\n\n ", "properties": { "categories": { "type": "array", @@ -8375,7 +8752,7 @@ } }, "ovh:CloudProjectDatabase/user:User": { - "description": "\n\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., bash\n\n```sh\n $ pulumi import ovh:CloudProjectDatabase/user:User my_user service_name/engine/cluster_id/id\n```\n\n ", + "description": "\n\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\n bash\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", @@ -8496,7 +8873,7 @@ } }, "ovh:Dbaas/logsCluster:LogsCluster": { - "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst ldp = new ovh.dbaas.LogsCluster(\"ldp\", {\n archiveAllowedNetworks: [\"10.0.0.0/16\"],\n clusterId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n directInputAllowedNetworks: [\"10.0.0.0/16\"],\n queryAllowedNetworks: [\"10.0.0.0/16\"],\n serviceName: \"ldp-xx-xxxxx\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nldp = ovh.dbaas.LogsCluster(\"ldp\",\n archive_allowed_networks=[\"10.0.0.0/16\"],\n cluster_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n direct_input_allowed_networks=[\"10.0.0.0/16\"],\n query_allowed_networks=[\"10.0.0.0/16\"],\n 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 ldp = new Ovh.Dbaas.LogsCluster(\"ldp\", new()\n {\n ArchiveAllowedNetworks = new[]\n {\n \"10.0.0.0/16\",\n },\n ClusterId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n DirectInputAllowedNetworks = new[]\n {\n \"10.0.0.0/16\",\n },\n QueryAllowedNetworks = new[]\n {\n \"10.0.0.0/16\",\n },\n ServiceName = \"ldp-xx-xxxxx\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Dbaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Dbaas.NewLogsCluster(ctx, \"ldp\", \u0026Dbaas.LogsClusterArgs{\n\t\t\tArchiveAllowedNetworks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tClusterId: pulumi.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"),\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\tServiceName: pulumi.String(\"ldp-xx-xxxxx\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\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.LogsCluster;\nimport com.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 .archiveAllowedNetworks(\"10.0.0.0/16\")\n .clusterId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n .directInputAllowedNetworks(\"10.0.0.0/16\")\n .queryAllowedNetworks(\"10.0.0.0/16\")\n .serviceName(\"ldp-xx-xxxxx\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ldp:\n type: ovh:Dbaas:LogsCluster\n properties:\n archiveAllowedNetworks:\n - 10.0.0.0/16\n clusterId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n directInputAllowedNetworks:\n - 10.0.0.0/16\n queryAllowedNetworks:\n - 10.0.0.0/16\n serviceName: ldp-xx-xxxxx\n```\n{{% /example %}}\n{{% /examples %}}\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., bash\n\n```sh\n $ pulumi import ovh:Dbaas/logsCluster:LogsCluster ldp service_name/cluster_id\n```\n\n ", + "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst ldp = new ovh.dbaas.LogsCluster(\"ldp\", {\n archiveAllowedNetworks: [\"10.0.0.0/16\"],\n clusterId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n directInputAllowedNetworks: [\"10.0.0.0/16\"],\n queryAllowedNetworks: [\"10.0.0.0/16\"],\n serviceName: \"ldp-xx-xxxxx\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nldp = ovh.dbaas.LogsCluster(\"ldp\",\n archive_allowed_networks=[\"10.0.0.0/16\"],\n cluster_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n direct_input_allowed_networks=[\"10.0.0.0/16\"],\n query_allowed_networks=[\"10.0.0.0/16\"],\n 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 ldp = new Ovh.Dbaas.LogsCluster(\"ldp\", new()\n {\n ArchiveAllowedNetworks = new[]\n {\n \"10.0.0.0/16\",\n },\n ClusterId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n DirectInputAllowedNetworks = new[]\n {\n \"10.0.0.0/16\",\n },\n QueryAllowedNetworks = new[]\n {\n \"10.0.0.0/16\",\n },\n ServiceName = \"ldp-xx-xxxxx\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Dbaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Dbaas.NewLogsCluster(ctx, \"ldp\", \u0026Dbaas.LogsClusterArgs{\n\t\t\tArchiveAllowedNetworks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tClusterId: pulumi.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"),\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\tServiceName: pulumi.String(\"ldp-xx-xxxxx\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\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.LogsCluster;\nimport com.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 .archiveAllowedNetworks(\"10.0.0.0/16\")\n .clusterId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n .directInputAllowedNetworks(\"10.0.0.0/16\")\n .queryAllowedNetworks(\"10.0.0.0/16\")\n .serviceName(\"ldp-xx-xxxxx\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ldp:\n type: ovh:Dbaas:LogsCluster\n properties:\n archiveAllowedNetworks:\n - 10.0.0.0/16\n clusterId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n directInputAllowedNetworks:\n - 10.0.0.0/16\n queryAllowedNetworks:\n - 10.0.0.0/16\n serviceName: ldp-xx-xxxxx\n```\n{{% /example %}}\n{{% /examples %}}\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\n bash\n\n ```sh\n $ pulumi import ovh:Dbaas/logsCluster:LogsCluster ldp service_name/cluster_id\n```\n\n ", "properties": { "archiveAllowedNetworks": { "type": "array", @@ -9325,7 +9702,7 @@ } }, "ovh:Dedicated/nasHAPartition:NasHAPartition": { - "description": "Provides a resource for managing partitions on HA-NAS services\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst my_partition = new ovh.dedicated.NasHAPartition(\"my-partition\", {\n protocol: \"NFS\",\n serviceName: \"zpool-12345\",\n size: 20,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_partition = ovh.dedicated.NasHAPartition(\"my-partition\",\n protocol=\"NFS\",\n service_name=\"zpool-12345\",\n size=20)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var my_partition = new Ovh.Dedicated.NasHAPartition(\"my-partition\", new()\n {\n Protocol = \"NFS\",\n ServiceName = \"zpool-12345\",\n Size = 20,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Dedicated\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Dedicated.NewNasHAPartition(ctx, \"my-partition\", \u0026Dedicated.NasHAPartitionArgs{\n\t\t\tProtocol: pulumi.String(\"NFS\"),\n\t\t\tServiceName: pulumi.String(\"zpool-12345\"),\n\t\t\tSize: pulumi.Int(20),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Dedicated.NasHAPartition;\nimport com.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 my_partition = new NasHAPartition(\"my-partition\", NasHAPartitionArgs.builder() \n .protocol(\"NFS\")\n .serviceName(\"zpool-12345\")\n .size(20)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n my-partition:\n type: ovh:Dedicated:NasHAPartition\n properties:\n protocol: NFS\n serviceName: zpool-12345\n size: 20\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nHA-NAS can be imported using the `{service_name}/{name}`, e.g.\n\n\n\n```sh\n $ pulumi import ovh:Dedicated/nasHAPartition:NasHAPartition my-partition zpool-12345/my-partition`\n```\n\n ", + "description": "Provides a resource for managing partitions on HA-NAS services\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst my_partition = new ovh.dedicated.NasHAPartition(\"my-partition\", {\n protocol: \"NFS\",\n serviceName: \"zpool-12345\",\n size: 20,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_partition = ovh.dedicated.NasHAPartition(\"my-partition\",\n protocol=\"NFS\",\n service_name=\"zpool-12345\",\n size=20)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var my_partition = new Ovh.Dedicated.NasHAPartition(\"my-partition\", new()\n {\n Protocol = \"NFS\",\n ServiceName = \"zpool-12345\",\n Size = 20,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Dedicated\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Dedicated.NewNasHAPartition(ctx, \"my-partition\", \u0026Dedicated.NasHAPartitionArgs{\n\t\t\tProtocol: pulumi.String(\"NFS\"),\n\t\t\tServiceName: pulumi.String(\"zpool-12345\"),\n\t\t\tSize: pulumi.Int(20),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Dedicated.NasHAPartition;\nimport com.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 my_partition = new NasHAPartition(\"my-partition\", NasHAPartitionArgs.builder() \n .protocol(\"NFS\")\n .serviceName(\"zpool-12345\")\n .size(20)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n my-partition:\n type: ovh:Dedicated:NasHAPartition\n properties:\n protocol: NFS\n serviceName: zpool-12345\n size: 20\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nHA-NAS can be imported using the `{service_name}/{name}`, e.g.\n\n\n\n ```sh\n $ pulumi import ovh:Dedicated/nasHAPartition:NasHAPartition my-partition zpool-12345/my-partition`\n```\n\n ", "properties": { "capacity": { "type": "integer", @@ -9433,7 +9810,7 @@ } }, "ovh:Dedicated/nasHAPartitionAccess:NasHAPartitionAccess": { - "description": "Provides a resource for managing access rights to partitions on HA-NAS services\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst my_partition = new ovh.dedicated.NasHAPartitionAccess(\"my-partition\", {\n ip: \"123.123.123.123/32\",\n partitionName: \"my-partition\",\n serviceName: \"zpool-12345\",\n type: \"readwrite\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_partition = ovh.dedicated.NasHAPartitionAccess(\"my-partition\",\n ip=\"123.123.123.123/32\",\n partition_name=\"my-partition\",\n service_name=\"zpool-12345\",\n type=\"readwrite\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var my_partition = new Ovh.Dedicated.NasHAPartitionAccess(\"my-partition\", new()\n {\n Ip = \"123.123.123.123/32\",\n PartitionName = \"my-partition\",\n ServiceName = \"zpool-12345\",\n Type = \"readwrite\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Dedicated\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Dedicated.NewNasHAPartitionAccess(ctx, \"my-partition\", \u0026Dedicated.NasHAPartitionAccessArgs{\n\t\t\tIp: pulumi.String(\"123.123.123.123/32\"),\n\t\t\tPartitionName: pulumi.String(\"my-partition\"),\n\t\t\tServiceName: pulumi.String(\"zpool-12345\"),\n\t\t\tType: pulumi.String(\"readwrite\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\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.NasHAPartitionAccess;\nimport com.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 my_partition = new NasHAPartitionAccess(\"my-partition\", NasHAPartitionAccessArgs.builder() \n .ip(\"123.123.123.123/32\")\n .partitionName(\"my-partition\")\n .serviceName(\"zpool-12345\")\n .type(\"readwrite\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n my-partition:\n type: ovh:Dedicated:NasHAPartitionAccess\n properties:\n ip: 123.123.123.123/32\n partitionName: my-partition\n serviceName: zpool-12345\n type: readwrite\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nHA-NAS partition access can be imported using the `{service_name}/{partition_name}/{ip}`, e.g.\n\n\n\n```sh\n $ pulumi import ovh:Dedicated/nasHAPartitionAccess:NasHAPartitionAccess my-partition zpool-12345/my-partition/123.123.123.123%2F32`\n```\n\n ", + "description": "Provides a resource for managing access rights to partitions on HA-NAS services\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst my_partition = new ovh.dedicated.NasHAPartitionAccess(\"my-partition\", {\n ip: \"123.123.123.123/32\",\n partitionName: \"my-partition\",\n serviceName: \"zpool-12345\",\n type: \"readwrite\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_partition = ovh.dedicated.NasHAPartitionAccess(\"my-partition\",\n ip=\"123.123.123.123/32\",\n partition_name=\"my-partition\",\n service_name=\"zpool-12345\",\n type=\"readwrite\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var my_partition = new Ovh.Dedicated.NasHAPartitionAccess(\"my-partition\", new()\n {\n Ip = \"123.123.123.123/32\",\n PartitionName = \"my-partition\",\n ServiceName = \"zpool-12345\",\n Type = \"readwrite\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Dedicated\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Dedicated.NewNasHAPartitionAccess(ctx, \"my-partition\", \u0026Dedicated.NasHAPartitionAccessArgs{\n\t\t\tIp: pulumi.String(\"123.123.123.123/32\"),\n\t\t\tPartitionName: pulumi.String(\"my-partition\"),\n\t\t\tServiceName: pulumi.String(\"zpool-12345\"),\n\t\t\tType: pulumi.String(\"readwrite\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\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.NasHAPartitionAccess;\nimport com.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 my_partition = new NasHAPartitionAccess(\"my-partition\", NasHAPartitionAccessArgs.builder() \n .ip(\"123.123.123.123/32\")\n .partitionName(\"my-partition\")\n .serviceName(\"zpool-12345\")\n .type(\"readwrite\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n my-partition:\n type: ovh:Dedicated:NasHAPartitionAccess\n properties:\n ip: 123.123.123.123/32\n partitionName: my-partition\n serviceName: zpool-12345\n type: readwrite\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nHA-NAS partition access can be imported using the `{service_name}/{partition_name}/{ip}`, e.g.\n\n\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": { "ip": { "type": "string", @@ -9512,7 +9889,7 @@ } }, "ovh:Dedicated/nasHAPartitionSnapshot:NasHAPartitionSnapshot": { - "description": "Provides a resource for managing **snapshot** to partitions on HA-NAS services\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst my_partition = new ovh.dedicated.NasHAPartitionSnapshot(\"my-partition\", {\n partitionName: \"my-partition\",\n serviceName: \"zpool-12345\",\n type: \"day-3\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_partition = ovh.dedicated.NasHAPartitionSnapshot(\"my-partition\",\n partition_name=\"my-partition\",\n service_name=\"zpool-12345\",\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 my_partition = new Ovh.Dedicated.NasHAPartitionSnapshot(\"my-partition\", new()\n {\n PartitionName = \"my-partition\",\n ServiceName = \"zpool-12345\",\n Type = \"day-3\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Dedicated\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Dedicated.NewNasHAPartitionSnapshot(ctx, \"my-partition\", \u0026Dedicated.NasHAPartitionSnapshotArgs{\n\t\t\tPartitionName: pulumi.String(\"my-partition\"),\n\t\t\tServiceName: pulumi.String(\"zpool-12345\"),\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.pulumi.ovh.Dedicated.NasHAPartitionSnapshot;\nimport com.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 my_partition = new NasHAPartitionSnapshot(\"my-partition\", NasHAPartitionSnapshotArgs.builder() \n .partitionName(\"my-partition\")\n .serviceName(\"zpool-12345\")\n .type(\"day-3\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n my-partition:\n type: ovh:Dedicated:NasHAPartitionSnapshot\n properties:\n partitionName: my-partition\n serviceName: zpool-12345\n type: day-3\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nHA-NAS partition snapshot can be imported using the `{service_name}/{partition_name}/{type}`, e.g.\n\n\n\n```sh\n $ pulumi import ovh:Dedicated/nasHAPartitionSnapshot:NasHAPartitionSnapshot my-partition zpool-12345/my-partition/day-3`\n```\n\n ", + "description": "Provides a resource for managing **snapshot** to partitions on HA-NAS services\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst my_partition = new ovh.dedicated.NasHAPartitionSnapshot(\"my-partition\", {\n partitionName: \"my-partition\",\n serviceName: \"zpool-12345\",\n type: \"day-3\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_partition = ovh.dedicated.NasHAPartitionSnapshot(\"my-partition\",\n partition_name=\"my-partition\",\n service_name=\"zpool-12345\",\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 my_partition = new Ovh.Dedicated.NasHAPartitionSnapshot(\"my-partition\", new()\n {\n PartitionName = \"my-partition\",\n ServiceName = \"zpool-12345\",\n Type = \"day-3\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Dedicated\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Dedicated.NewNasHAPartitionSnapshot(ctx, \"my-partition\", \u0026Dedicated.NasHAPartitionSnapshotArgs{\n\t\t\tPartitionName: pulumi.String(\"my-partition\"),\n\t\t\tServiceName: pulumi.String(\"zpool-12345\"),\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.pulumi.ovh.Dedicated.NasHAPartitionSnapshot;\nimport com.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 my_partition = new NasHAPartitionSnapshot(\"my-partition\", NasHAPartitionSnapshotArgs.builder() \n .partitionName(\"my-partition\")\n .serviceName(\"zpool-12345\")\n .type(\"day-3\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n my-partition:\n type: ovh:Dedicated:NasHAPartitionSnapshot\n properties:\n partitionName: my-partition\n serviceName: zpool-12345\n type: day-3\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nHA-NAS partition snapshot can be imported using the `{service_name}/{partition_name}/{type}`, e.g.\n\n\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", @@ -9577,7 +9954,7 @@ } }, "ovh:Dedicated/serverInstallTask:ServerInstallTask": { - "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst rescue = ovh.Dedicated.getServerBoots({\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n bootType: \"rescue\",\n});\nconst key = new ovh.me.SshKey(\"key\", {\n keyName: \"mykey\",\n key: \"ssh-ed25519 AAAAC3...\",\n});\nconst debian = new ovh.me.InstallationTemplate(\"debian\", {\n baseTemplateName: \"debian11_64\",\n templateName: \"mydebian11\",\n defaultLanguage: \"en\",\n customization: {\n sshKeyName: key.keyName,\n },\n});\nconst serverInstall = new ovh.dedicated.ServerInstallTask(\"serverInstall\", {\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n templateName: debian.templateName,\n bootidOnDestroy: rescue.then(rescue =\u003e rescue.results?.[0]),\n details: {\n customHostname: \"mytest\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nrescue = ovh.Dedicated.get_server_boots(service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\",\n boot_type=\"rescue\")\nkey = ovh.me.SshKey(\"key\",\n key_name=\"mykey\",\n key=\"ssh-ed25519 AAAAC3...\")\ndebian = ovh.me.InstallationTemplate(\"debian\",\n base_template_name=\"debian11_64\",\n template_name=\"mydebian11\",\n default_language=\"en\",\n customization=ovh.me.InstallationTemplateCustomizationArgs(\n ssh_key_name=key.key_name,\n ))\nserver_install = ovh.dedicated.ServerInstallTask(\"serverInstall\",\n service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\",\n template_name=debian.template_name,\n bootid_on_destroy=rescue.results[0],\n details=ovh.dedicated.ServerInstallTaskDetailsArgs(\n custom_hostname=\"mytest\",\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rescue = Ovh.Dedicated.GetServerBoots.Invoke(new()\n {\n ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n BootType = \"rescue\",\n });\n\n var key = new Ovh.Me.SshKey(\"key\", new()\n {\n KeyName = \"mykey\",\n Key = \"ssh-ed25519 AAAAC3...\",\n });\n\n var debian = new Ovh.Me.InstallationTemplate(\"debian\", new()\n {\n BaseTemplateName = \"debian11_64\",\n TemplateName = \"mydebian11\",\n DefaultLanguage = \"en\",\n Customization = new Ovh.Me.Inputs.InstallationTemplateCustomizationArgs\n {\n SshKeyName = key.KeyName,\n },\n });\n\n var serverInstall = new Ovh.Dedicated.ServerInstallTask(\"serverInstall\", new()\n {\n ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n TemplateName = debian.TemplateName,\n BootidOnDestroy = rescue.Apply(getServerBootsResult =\u003e getServerBootsResult.Results[0]),\n Details = new Ovh.Dedicated.Inputs.ServerInstallTaskDetailsArgs\n {\n CustomHostname = \"mytest\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Dedicated\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trescue, err := Dedicated.GetServerBoots(ctx, \u0026dedicated.GetServerBootsArgs{\n\t\t\tServiceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n\t\t\tBootType: pulumi.StringRef(\"rescue\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tkey, err := Me.NewSshKey(ctx, \"key\", \u0026Me.SshKeyArgs{\n\t\t\tKeyName: pulumi.String(\"mykey\"),\n\t\t\tKey: pulumi.String(\"ssh-ed25519 AAAAC3...\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdebian, err := Me.NewInstallationTemplate(ctx, \"debian\", \u0026Me.InstallationTemplateArgs{\n\t\t\tBaseTemplateName: pulumi.String(\"debian11_64\"),\n\t\t\tTemplateName: pulumi.String(\"mydebian11\"),\n\t\t\tDefaultLanguage: pulumi.String(\"en\"),\n\t\t\tCustomization: \u0026me.InstallationTemplateCustomizationArgs{\n\t\t\t\tSshKeyName: key.KeyName,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Dedicated.NewServerInstallTask(ctx, \"serverInstall\", \u0026Dedicated.ServerInstallTaskArgs{\n\t\t\tServiceName: pulumi.String(\"nsxxxxxxx.ip-xx-xx-xx.eu\"),\n\t\t\tTemplateName: debian.TemplateName,\n\t\t\tBootidOnDestroy: *pulumi.Int(rescue.Results[0]),\n\t\t\tDetails: \u0026dedicated.ServerInstallTaskDetailsArgs{\n\t\t\t\tCustomHostname: pulumi.String(\"mytest\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Dedicated.DedicatedFunctions;\nimport com.pulumi.ovh.Dedicated.inputs.GetServerBootsArgs;\nimport com.pulumi.ovh.Me.SshKey;\nimport com.pulumi.ovh.Me.SshKeyArgs;\nimport com.pulumi.ovh.Me.InstallationTemplate;\nimport com.pulumi.ovh.Me.InstallationTemplateArgs;\nimport com.pulumi.ovh.Me.inputs.InstallationTemplateCustomizationArgs;\nimport com.pulumi.ovh.Dedicated.ServerInstallTask;\nimport com.pulumi.ovh.Dedicated.ServerInstallTaskArgs;\nimport com.pulumi.ovh.Dedicated.inputs.ServerInstallTaskDetailsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var rescue = DedicatedFunctions.getServerBoots(GetServerBootsArgs.builder()\n .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n .bootType(\"rescue\")\n .build());\n\n var key = new SshKey(\"key\", SshKeyArgs.builder() \n .keyName(\"mykey\")\n .key(\"ssh-ed25519 AAAAC3...\")\n .build());\n\n var debian = new InstallationTemplate(\"debian\", InstallationTemplateArgs.builder() \n .baseTemplateName(\"debian11_64\")\n .templateName(\"mydebian11\")\n .defaultLanguage(\"en\")\n .customization(InstallationTemplateCustomizationArgs.builder()\n .sshKeyName(key.keyName())\n .build())\n .build());\n\n var serverInstall = new ServerInstallTask(\"serverInstall\", ServerInstallTaskArgs.builder() \n .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n .templateName(debian.templateName())\n .bootidOnDestroy(rescue.applyValue(getServerBootsResult -\u003e getServerBootsResult.results()[0]))\n .details(ServerInstallTaskDetailsArgs.builder()\n .customHostname(\"mytest\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n key:\n type: ovh:Me:SshKey\n properties:\n keyName: mykey\n key: ssh-ed25519 AAAAC3...\n debian:\n type: ovh:Me:InstallationTemplate\n properties:\n baseTemplateName: debian11_64\n templateName: mydebian11\n defaultLanguage: en\n customization:\n sshKeyName: ${key.keyName}\n serverInstall:\n type: ovh:Dedicated:ServerInstallTask\n properties:\n serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n templateName: ${debian.templateName}\n bootidOnDestroy: ${rescue.results[0]}\n details:\n customHostname: mytest\nvariables:\n rescue:\n fn::invoke:\n Function: ovh:Dedicated:getServerBoots\n Arguments:\n serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n bootType: rescue\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstallation task can be imported using the `service_name` (`nsXXXX.ip...`) of the baremetal server, the `template_name` used\n\nand ths `task_id`, separated by \"/\" E.g., bash\n\n```sh\n $ pulumi import ovh:Dedicated/serverInstallTask:ServerInstallTask ovh_dedicated_server_install_task nsXXXX.ipXXXX/template_name/12345\n```\n\n ", + "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst rescue = ovh.Dedicated.getServerBoots({\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n bootType: \"rescue\",\n});\nconst key = new ovh.me.SshKey(\"key\", {\n keyName: \"mykey\",\n key: \"ssh-ed25519 AAAAC3...\",\n});\nconst debian = new ovh.me.InstallationTemplate(\"debian\", {\n baseTemplateName: \"debian11_64\",\n templateName: \"mydebian11\",\n defaultLanguage: \"en\",\n customization: {\n sshKeyName: key.keyName,\n },\n});\nconst serverInstall = new ovh.dedicated.ServerInstallTask(\"serverInstall\", {\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n templateName: debian.templateName,\n bootidOnDestroy: rescue.then(rescue =\u003e rescue.results?.[0]),\n details: {\n customHostname: \"mytest\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nrescue = ovh.Dedicated.get_server_boots(service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\",\n boot_type=\"rescue\")\nkey = ovh.me.SshKey(\"key\",\n key_name=\"mykey\",\n key=\"ssh-ed25519 AAAAC3...\")\ndebian = ovh.me.InstallationTemplate(\"debian\",\n base_template_name=\"debian11_64\",\n template_name=\"mydebian11\",\n default_language=\"en\",\n customization=ovh.me.InstallationTemplateCustomizationArgs(\n ssh_key_name=key.key_name,\n ))\nserver_install = ovh.dedicated.ServerInstallTask(\"serverInstall\",\n service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\",\n template_name=debian.template_name,\n bootid_on_destroy=rescue.results[0],\n details=ovh.dedicated.ServerInstallTaskDetailsArgs(\n custom_hostname=\"mytest\",\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rescue = Ovh.Dedicated.GetServerBoots.Invoke(new()\n {\n ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n BootType = \"rescue\",\n });\n\n var key = new Ovh.Me.SshKey(\"key\", new()\n {\n KeyName = \"mykey\",\n Key = \"ssh-ed25519 AAAAC3...\",\n });\n\n var debian = new Ovh.Me.InstallationTemplate(\"debian\", new()\n {\n BaseTemplateName = \"debian11_64\",\n TemplateName = \"mydebian11\",\n DefaultLanguage = \"en\",\n Customization = new Ovh.Me.Inputs.InstallationTemplateCustomizationArgs\n {\n SshKeyName = key.KeyName,\n },\n });\n\n var serverInstall = new Ovh.Dedicated.ServerInstallTask(\"serverInstall\", new()\n {\n ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n TemplateName = debian.TemplateName,\n BootidOnDestroy = rescue.Apply(getServerBootsResult =\u003e getServerBootsResult.Results[0]),\n Details = new Ovh.Dedicated.Inputs.ServerInstallTaskDetailsArgs\n {\n CustomHostname = \"mytest\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Dedicated\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trescue, err := Dedicated.GetServerBoots(ctx, \u0026dedicated.GetServerBootsArgs{\n\t\t\tServiceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n\t\t\tBootType: pulumi.StringRef(\"rescue\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tkey, err := Me.NewSshKey(ctx, \"key\", \u0026Me.SshKeyArgs{\n\t\t\tKeyName: pulumi.String(\"mykey\"),\n\t\t\tKey: pulumi.String(\"ssh-ed25519 AAAAC3...\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdebian, err := Me.NewInstallationTemplate(ctx, \"debian\", \u0026Me.InstallationTemplateArgs{\n\t\t\tBaseTemplateName: pulumi.String(\"debian11_64\"),\n\t\t\tTemplateName: pulumi.String(\"mydebian11\"),\n\t\t\tDefaultLanguage: pulumi.String(\"en\"),\n\t\t\tCustomization: \u0026me.InstallationTemplateCustomizationArgs{\n\t\t\t\tSshKeyName: key.KeyName,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Dedicated.NewServerInstallTask(ctx, \"serverInstall\", \u0026Dedicated.ServerInstallTaskArgs{\n\t\t\tServiceName: pulumi.String(\"nsxxxxxxx.ip-xx-xx-xx.eu\"),\n\t\t\tTemplateName: debian.TemplateName,\n\t\t\tBootidOnDestroy: *pulumi.Int(rescue.Results[0]),\n\t\t\tDetails: \u0026dedicated.ServerInstallTaskDetailsArgs{\n\t\t\t\tCustomHostname: pulumi.String(\"mytest\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Dedicated.DedicatedFunctions;\nimport com.pulumi.ovh.Dedicated.inputs.GetServerBootsArgs;\nimport com.pulumi.ovh.Me.SshKey;\nimport com.pulumi.ovh.Me.SshKeyArgs;\nimport com.pulumi.ovh.Me.InstallationTemplate;\nimport com.pulumi.ovh.Me.InstallationTemplateArgs;\nimport com.pulumi.ovh.Me.inputs.InstallationTemplateCustomizationArgs;\nimport com.pulumi.ovh.Dedicated.ServerInstallTask;\nimport com.pulumi.ovh.Dedicated.ServerInstallTaskArgs;\nimport com.pulumi.ovh.Dedicated.inputs.ServerInstallTaskDetailsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var rescue = DedicatedFunctions.getServerBoots(GetServerBootsArgs.builder()\n .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n .bootType(\"rescue\")\n .build());\n\n var key = new SshKey(\"key\", SshKeyArgs.builder() \n .keyName(\"mykey\")\n .key(\"ssh-ed25519 AAAAC3...\")\n .build());\n\n var debian = new InstallationTemplate(\"debian\", InstallationTemplateArgs.builder() \n .baseTemplateName(\"debian11_64\")\n .templateName(\"mydebian11\")\n .defaultLanguage(\"en\")\n .customization(InstallationTemplateCustomizationArgs.builder()\n .sshKeyName(key.keyName())\n .build())\n .build());\n\n var serverInstall = new ServerInstallTask(\"serverInstall\", ServerInstallTaskArgs.builder() \n .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n .templateName(debian.templateName())\n .bootidOnDestroy(rescue.applyValue(getServerBootsResult -\u003e getServerBootsResult.results()[0]))\n .details(ServerInstallTaskDetailsArgs.builder()\n .customHostname(\"mytest\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n key:\n type: ovh:Me:SshKey\n properties:\n keyName: mykey\n key: ssh-ed25519 AAAAC3...\n debian:\n type: ovh:Me:InstallationTemplate\n properties:\n baseTemplateName: debian11_64\n templateName: mydebian11\n defaultLanguage: en\n customization:\n sshKeyName: ${key.keyName}\n serverInstall:\n type: ovh:Dedicated:ServerInstallTask\n properties:\n serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n templateName: ${debian.templateName}\n bootidOnDestroy: ${rescue.results[0]}\n details:\n customHostname: mytest\nvariables:\n rescue:\n fn::invoke:\n Function: ovh:Dedicated:getServerBoots\n Arguments:\n serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n bootType: rescue\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstallation task can be imported using the `service_name` (`nsXXXX.ip...`) of the baremetal server, the `template_name` used\n\nand ths `task_id`, separated by \"/\" E.g.,\n\n bash\n\n ```sh\n $ pulumi import ovh:Dedicated/serverInstallTask:ServerInstallTask ovh_dedicated_server_install_task nsXXXX.ipXXXX/template_name/12345\n```\n\n ", "properties": { "bootidOnDestroy": { "type": "integer", @@ -9913,6 +10290,10 @@ "type": "integer", "description": "boot id of the server\n" }, + "bootScript": { + "type": "string", + "description": "boot script of the server\n" + }, "monitoring": { "type": "boolean", "description": "Icmp monitoring state\n" @@ -9937,6 +10318,10 @@ "type": "integer", "description": "boot id of the server\n" }, + "bootScript": { + "type": "string", + "description": "boot script of the server\n" + }, "monitoring": { "type": "boolean", "description": "Icmp monitoring state\n" @@ -9960,6 +10345,10 @@ "type": "integer", "description": "boot id of the server\n" }, + "bootScript": { + "type": "string", + "description": "boot script of the server\n" + }, "monitoring": { "type": "boolean", "description": "Icmp monitoring state\n" @@ -9977,7 +10366,7 @@ } }, "ovh:Domain/zone:Zone": { - "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst myaccount = ovh.Me.getMe({});\nconst mycart = myaccount.then(myaccount =\u003e ovh.Order.getCart({\n ovhSubsidiary: myaccount.ovhSubsidiary,\n}));\nconst zoneCartProductPlan = mycart.then(mycart =\u003e ovh.Order.getCartProductPlan({\n cartId: mycart.id,\n priceCapacity: \"renew\",\n product: \"dns\",\n planCode: \"zone\",\n}));\nconst zoneZone = new ovh.domain.Zone(\"zoneZone\", {\n ovhSubsidiary: mycart.then(mycart =\u003e mycart.ovhSubsidiary),\n plan: {\n duration: zoneCartProductPlan.then(zoneCartProductPlan =\u003e zoneCartProductPlan.selectedPrices?.[0]?.duration),\n planCode: zoneCartProductPlan.then(zoneCartProductPlan =\u003e zoneCartProductPlan.planCode),\n pricingMode: zoneCartProductPlan.then(zoneCartProductPlan =\u003e zoneCartProductPlan.selectedPrices?.[0]?.pricingMode),\n configurations: [\n {\n label: \"zone\",\n value: \"myzone.mydomain.com\",\n },\n {\n label: \"template\",\n value: \"minimized\",\n },\n ],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmyaccount = ovh.Me.get_me()\nmycart = ovh.Order.get_cart(ovh_subsidiary=myaccount.ovh_subsidiary)\nzone_cart_product_plan = ovh.Order.get_cart_product_plan(cart_id=mycart.id,\n price_capacity=\"renew\",\n product=\"dns\",\n plan_code=\"zone\")\nzone_zone = ovh.domain.Zone(\"zoneZone\",\n ovh_subsidiary=mycart.ovh_subsidiary,\n plan=ovh.domain.ZonePlanArgs(\n duration=zone_cart_product_plan.selected_prices[0].duration,\n plan_code=zone_cart_product_plan.plan_code,\n pricing_mode=zone_cart_product_plan.selected_prices[0].pricing_mode,\n configurations=[\n ovh.domain.ZonePlanConfigurationArgs(\n label=\"zone\",\n value=\"myzone.mydomain.com\",\n ),\n ovh.domain.ZonePlanConfigurationArgs(\n label=\"template\",\n value=\"minimized\",\n ),\n ],\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myaccount = Ovh.Me.GetMe.Invoke();\n\n var mycart = Ovh.Order.GetCart.Invoke(new()\n {\n OvhSubsidiary = myaccount.Apply(getMeResult =\u003e getMeResult.OvhSubsidiary),\n });\n\n var zoneCartProductPlan = Ovh.Order.GetCartProductPlan.Invoke(new()\n {\n CartId = mycart.Apply(getCartResult =\u003e getCartResult.Id),\n PriceCapacity = \"renew\",\n Product = \"dns\",\n PlanCode = \"zone\",\n });\n\n var zoneZone = new Ovh.Domain.Zone(\"zoneZone\", new()\n {\n OvhSubsidiary = mycart.Apply(getCartResult =\u003e getCartResult.OvhSubsidiary),\n Plan = new Ovh.Domain.Inputs.ZonePlanArgs\n {\n Duration = zoneCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.Duration),\n PlanCode = zoneCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PlanCode),\n PricingMode = zoneCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.PricingMode),\n Configurations = new[]\n {\n new Ovh.Domain.Inputs.ZonePlanConfigurationArgs\n {\n Label = \"zone\",\n Value = \"myzone.mydomain.com\",\n },\n new Ovh.Domain.Inputs.ZonePlanConfigurationArgs\n {\n Label = \"template\",\n Value = \"minimized\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Domain\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Order\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyaccount, err := Me.GetMe(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmycart, err := Order.GetCart(ctx, \u0026order.GetCartArgs{\n\t\t\tOvhSubsidiary: myaccount.OvhSubsidiary,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tzoneCartProductPlan, err := Order.GetCartProductPlan(ctx, \u0026order.GetCartProductPlanArgs{\n\t\t\tCartId: mycart.Id,\n\t\t\tPriceCapacity: \"renew\",\n\t\t\tProduct: \"dns\",\n\t\t\tPlanCode: \"zone\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Domain.NewZone(ctx, \"zoneZone\", \u0026Domain.ZoneArgs{\n\t\t\tOvhSubsidiary: *pulumi.String(mycart.OvhSubsidiary),\n\t\t\tPlan: \u0026domain.ZonePlanArgs{\n\t\t\t\tDuration: *pulumi.String(zoneCartProductPlan.SelectedPrices[0].Duration),\n\t\t\t\tPlanCode: *pulumi.String(zoneCartProductPlan.PlanCode),\n\t\t\t\tPricingMode: *pulumi.String(zoneCartProductPlan.SelectedPrices[0].PricingMode),\n\t\t\t\tConfigurations: domain.ZonePlanConfigurationArray{\n\t\t\t\t\t\u0026domain.ZonePlanConfigurationArgs{\n\t\t\t\t\t\tLabel: pulumi.String(\"zone\"),\n\t\t\t\t\t\tValue: pulumi.String(\"myzone.mydomain.com\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026domain.ZonePlanConfigurationArgs{\n\t\t\t\t\t\tLabel: pulumi.String(\"template\"),\n\t\t\t\t\t\tValue: pulumi.String(\"minimized\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.MeFunctions;\nimport com.pulumi.ovh.Order.OrderFunctions;\nimport com.pulumi.ovh.Order.inputs.GetCartArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductPlanArgs;\nimport com.pulumi.ovh.Domain.Zone;\nimport com.pulumi.ovh.Domain.ZoneArgs;\nimport com.pulumi.ovh.Domain.inputs.ZonePlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var myaccount = MeFunctions.getMe();\n\n final var mycart = OrderFunctions.getCart(GetCartArgs.builder()\n .ovhSubsidiary(myaccount.applyValue(getMeResult -\u003e getMeResult.ovhSubsidiary()))\n .build());\n\n final var zoneCartProductPlan = OrderFunctions.getCartProductPlan(GetCartProductPlanArgs.builder()\n .cartId(mycart.applyValue(getCartResult -\u003e getCartResult.id()))\n .priceCapacity(\"renew\")\n .product(\"dns\")\n .planCode(\"zone\")\n .build());\n\n var zoneZone = new Zone(\"zoneZone\", ZoneArgs.builder() \n .ovhSubsidiary(mycart.applyValue(getCartResult -\u003e getCartResult.ovhSubsidiary()))\n .plan(ZonePlanArgs.builder()\n .duration(zoneCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].duration()))\n .planCode(zoneCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.planCode()))\n .pricingMode(zoneCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].pricingMode()))\n .configurations( \n ZonePlanConfigurationArgs.builder()\n .label(\"zone\")\n .value(\"myzone.mydomain.com\")\n .build(),\n ZonePlanConfigurationArgs.builder()\n .label(\"template\")\n .value(\"minimized\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n zoneZone:\n type: ovh:Domain:Zone\n properties:\n ovhSubsidiary: ${mycart.ovhSubsidiary}\n plan:\n duration: ${zoneCartProductPlan.selectedPrices[0].duration}\n planCode: ${zoneCartProductPlan.planCode}\n pricingMode: ${zoneCartProductPlan.selectedPrices[0].pricingMode}\n configurations:\n - label: zone\n value: myzone.mydomain.com\n - label: template\n value: minimized\nvariables:\n myaccount:\n fn::invoke:\n Function: ovh:Me:getMe\n Arguments: {}\n mycart:\n fn::invoke:\n Function: ovh:Order:getCart\n Arguments:\n ovhSubsidiary: ${myaccount.ovhSubsidiary}\n zoneCartProductPlan:\n fn::invoke:\n Function: ovh:Order:getCartProductPlan\n Arguments:\n cartId: ${mycart.id}\n priceCapacity: renew\n product: dns\n planCode: zone\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nZone can be imported using the `order_id` that can be retrieved in the [order page](https://www.ovh.com/manager/#/dedicated/billing/orders/orders) at the creation time of the zone.\n\nbash\n\n```sh\n $ pulumi import ovh:Domain/zone:Zone zone order_id\n```\n\n ", + "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst myaccount = ovh.Me.getMe({});\nconst mycart = myaccount.then(myaccount =\u003e ovh.Order.getCart({\n ovhSubsidiary: myaccount.ovhSubsidiary,\n}));\nconst zoneCartProductPlan = mycart.then(mycart =\u003e ovh.Order.getCartProductPlan({\n cartId: mycart.id,\n priceCapacity: \"renew\",\n product: \"dns\",\n planCode: \"zone\",\n}));\nconst zoneZone = new ovh.domain.Zone(\"zoneZone\", {\n ovhSubsidiary: mycart.then(mycart =\u003e mycart.ovhSubsidiary),\n plan: {\n duration: zoneCartProductPlan.then(zoneCartProductPlan =\u003e zoneCartProductPlan.selectedPrices?.[0]?.duration),\n planCode: zoneCartProductPlan.then(zoneCartProductPlan =\u003e zoneCartProductPlan.planCode),\n pricingMode: zoneCartProductPlan.then(zoneCartProductPlan =\u003e zoneCartProductPlan.selectedPrices?.[0]?.pricingMode),\n configurations: [\n {\n label: \"zone\",\n value: \"myzone.mydomain.com\",\n },\n {\n label: \"template\",\n value: \"minimized\",\n },\n ],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmyaccount = ovh.Me.get_me()\nmycart = ovh.Order.get_cart(ovh_subsidiary=myaccount.ovh_subsidiary)\nzone_cart_product_plan = ovh.Order.get_cart_product_plan(cart_id=mycart.id,\n price_capacity=\"renew\",\n product=\"dns\",\n plan_code=\"zone\")\nzone_zone = ovh.domain.Zone(\"zoneZone\",\n ovh_subsidiary=mycart.ovh_subsidiary,\n plan=ovh.domain.ZonePlanArgs(\n duration=zone_cart_product_plan.selected_prices[0].duration,\n plan_code=zone_cart_product_plan.plan_code,\n pricing_mode=zone_cart_product_plan.selected_prices[0].pricing_mode,\n configurations=[\n ovh.domain.ZonePlanConfigurationArgs(\n label=\"zone\",\n value=\"myzone.mydomain.com\",\n ),\n ovh.domain.ZonePlanConfigurationArgs(\n label=\"template\",\n value=\"minimized\",\n ),\n ],\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myaccount = Ovh.Me.GetMe.Invoke();\n\n var mycart = Ovh.Order.GetCart.Invoke(new()\n {\n OvhSubsidiary = myaccount.Apply(getMeResult =\u003e getMeResult.OvhSubsidiary),\n });\n\n var zoneCartProductPlan = Ovh.Order.GetCartProductPlan.Invoke(new()\n {\n CartId = mycart.Apply(getCartResult =\u003e getCartResult.Id),\n PriceCapacity = \"renew\",\n Product = \"dns\",\n PlanCode = \"zone\",\n });\n\n var zoneZone = new Ovh.Domain.Zone(\"zoneZone\", new()\n {\n OvhSubsidiary = mycart.Apply(getCartResult =\u003e getCartResult.OvhSubsidiary),\n Plan = new Ovh.Domain.Inputs.ZonePlanArgs\n {\n Duration = zoneCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.Duration),\n PlanCode = zoneCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PlanCode),\n PricingMode = zoneCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.PricingMode),\n Configurations = new[]\n {\n new Ovh.Domain.Inputs.ZonePlanConfigurationArgs\n {\n Label = \"zone\",\n Value = \"myzone.mydomain.com\",\n },\n new Ovh.Domain.Inputs.ZonePlanConfigurationArgs\n {\n Label = \"template\",\n Value = \"minimized\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Domain\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Order\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyaccount, err := Me.GetMe(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmycart, err := Order.GetCart(ctx, \u0026order.GetCartArgs{\n\t\t\tOvhSubsidiary: myaccount.OvhSubsidiary,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tzoneCartProductPlan, err := Order.GetCartProductPlan(ctx, \u0026order.GetCartProductPlanArgs{\n\t\t\tCartId: mycart.Id,\n\t\t\tPriceCapacity: \"renew\",\n\t\t\tProduct: \"dns\",\n\t\t\tPlanCode: \"zone\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Domain.NewZone(ctx, \"zoneZone\", \u0026Domain.ZoneArgs{\n\t\t\tOvhSubsidiary: *pulumi.String(mycart.OvhSubsidiary),\n\t\t\tPlan: \u0026domain.ZonePlanArgs{\n\t\t\t\tDuration: *pulumi.String(zoneCartProductPlan.SelectedPrices[0].Duration),\n\t\t\t\tPlanCode: *pulumi.String(zoneCartProductPlan.PlanCode),\n\t\t\t\tPricingMode: *pulumi.String(zoneCartProductPlan.SelectedPrices[0].PricingMode),\n\t\t\t\tConfigurations: domain.ZonePlanConfigurationArray{\n\t\t\t\t\t\u0026domain.ZonePlanConfigurationArgs{\n\t\t\t\t\t\tLabel: pulumi.String(\"zone\"),\n\t\t\t\t\t\tValue: pulumi.String(\"myzone.mydomain.com\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026domain.ZonePlanConfigurationArgs{\n\t\t\t\t\t\tLabel: pulumi.String(\"template\"),\n\t\t\t\t\t\tValue: pulumi.String(\"minimized\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.MeFunctions;\nimport com.pulumi.ovh.Order.OrderFunctions;\nimport com.pulumi.ovh.Order.inputs.GetCartArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductPlanArgs;\nimport com.pulumi.ovh.Domain.Zone;\nimport com.pulumi.ovh.Domain.ZoneArgs;\nimport com.pulumi.ovh.Domain.inputs.ZonePlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var myaccount = MeFunctions.getMe();\n\n final var mycart = OrderFunctions.getCart(GetCartArgs.builder()\n .ovhSubsidiary(myaccount.applyValue(getMeResult -\u003e getMeResult.ovhSubsidiary()))\n .build());\n\n final var zoneCartProductPlan = OrderFunctions.getCartProductPlan(GetCartProductPlanArgs.builder()\n .cartId(mycart.applyValue(getCartResult -\u003e getCartResult.id()))\n .priceCapacity(\"renew\")\n .product(\"dns\")\n .planCode(\"zone\")\n .build());\n\n var zoneZone = new Zone(\"zoneZone\", ZoneArgs.builder() \n .ovhSubsidiary(mycart.applyValue(getCartResult -\u003e getCartResult.ovhSubsidiary()))\n .plan(ZonePlanArgs.builder()\n .duration(zoneCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].duration()))\n .planCode(zoneCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.planCode()))\n .pricingMode(zoneCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].pricingMode()))\n .configurations( \n ZonePlanConfigurationArgs.builder()\n .label(\"zone\")\n .value(\"myzone.mydomain.com\")\n .build(),\n ZonePlanConfigurationArgs.builder()\n .label(\"template\")\n .value(\"minimized\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n zoneZone:\n type: ovh:Domain:Zone\n properties:\n ovhSubsidiary: ${mycart.ovhSubsidiary}\n plan:\n duration: ${zoneCartProductPlan.selectedPrices[0].duration}\n planCode: ${zoneCartProductPlan.planCode}\n pricingMode: ${zoneCartProductPlan.selectedPrices[0].pricingMode}\n configurations:\n - label: zone\n value: myzone.mydomain.com\n - label: template\n value: minimized\nvariables:\n myaccount:\n fn::invoke:\n Function: ovh:Me:getMe\n Arguments: {}\n mycart:\n fn::invoke:\n Function: ovh:Order:getCart\n Arguments:\n ovhSubsidiary: ${myaccount.ovhSubsidiary}\n zoneCartProductPlan:\n fn::invoke:\n Function: ovh:Order:getCartProductPlan\n Arguments:\n cartId: ${mycart.id}\n priceCapacity: renew\n product: dns\n planCode: zone\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nZone can be imported using the `order_id` that can be retrieved in the [order page](https://www.ovh.com/manager/#/dedicated/billing/orders/orders) at the creation time of the zone.\n\n bash\n\n ```sh\n $ pulumi import ovh:Domain/zone:Zone zone order_id\n```\n\n ", "properties": { "ZoneURN": { "type": "string" @@ -10139,7 +10528,7 @@ } }, "ovh:Domain/zoneRecord:ZoneRecord": { - "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\n// Add a record to a sub-domain\nconst test = new ovh.domain.ZoneRecord(\"test\", {\n fieldtype: \"A\",\n subdomain: \"test\",\n target: \"0.0.0.0\",\n ttl: 3600,\n zone: \"testdemo.ovh\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\n# Add a record to a sub-domain\ntest = ovh.domain.ZoneRecord(\"test\",\n fieldtype=\"A\",\n subdomain=\"test\",\n target=\"0.0.0.0\",\n ttl=3600,\n zone=\"testdemo.ovh\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Add a record to a sub-domain\n var test = new Ovh.Domain.ZoneRecord(\"test\", new()\n {\n Fieldtype = \"A\",\n Subdomain = \"test\",\n Target = \"0.0.0.0\",\n Ttl = 3600,\n Zone = \"testdemo.ovh\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Domain\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Domain.NewZoneRecord(ctx, \"test\", \u0026Domain.ZoneRecordArgs{\n\t\t\tFieldtype: pulumi.String(\"A\"),\n\t\t\tSubdomain: pulumi.String(\"test\"),\n\t\t\tTarget: pulumi.String(\"0.0.0.0\"),\n\t\t\tTtl: pulumi.Int(3600),\n\t\t\tZone: pulumi.String(\"testdemo.ovh\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Domain.ZoneRecord;\nimport com.pulumi.ovh.Domain.ZoneRecordArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new ZoneRecord(\"test\", ZoneRecordArgs.builder() \n .fieldtype(\"A\")\n .subdomain(\"test\")\n .target(\"0.0.0.0\")\n .ttl(3600)\n .zone(\"testdemo.ovh\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Add a record to a sub-domain\n test:\n type: ovh:Domain:ZoneRecord\n properties:\n fieldtype: A\n subdomain: test\n target: 0.0.0.0\n ttl: 3600\n zone: testdemo.ovh\n```\n{{% /example %}}\n{{% /examples %}}\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., bash\n\n```sh\n $ pulumi import ovh:Domain/zoneRecord:ZoneRecord test id.zone\n```\n\n ", + "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\n// Add a record to a sub-domain\nconst test = new ovh.domain.ZoneRecord(\"test\", {\n fieldtype: \"A\",\n subdomain: \"test\",\n target: \"0.0.0.0\",\n ttl: 3600,\n zone: \"testdemo.ovh\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\n# Add a record to a sub-domain\ntest = ovh.domain.ZoneRecord(\"test\",\n fieldtype=\"A\",\n subdomain=\"test\",\n target=\"0.0.0.0\",\n ttl=3600,\n zone=\"testdemo.ovh\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Add a record to a sub-domain\n var test = new Ovh.Domain.ZoneRecord(\"test\", new()\n {\n Fieldtype = \"A\",\n Subdomain = \"test\",\n Target = \"0.0.0.0\",\n Ttl = 3600,\n Zone = \"testdemo.ovh\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Domain\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Domain.NewZoneRecord(ctx, \"test\", \u0026Domain.ZoneRecordArgs{\n\t\t\tFieldtype: pulumi.String(\"A\"),\n\t\t\tSubdomain: pulumi.String(\"test\"),\n\t\t\tTarget: pulumi.String(\"0.0.0.0\"),\n\t\t\tTtl: pulumi.Int(3600),\n\t\t\tZone: pulumi.String(\"testdemo.ovh\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Domain.ZoneRecord;\nimport com.pulumi.ovh.Domain.ZoneRecordArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new ZoneRecord(\"test\", ZoneRecordArgs.builder() \n .fieldtype(\"A\")\n .subdomain(\"test\")\n .target(\"0.0.0.0\")\n .ttl(3600)\n .zone(\"testdemo.ovh\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Add a record to a sub-domain\n test:\n type: ovh:Domain:ZoneRecord\n properties:\n fieldtype: A\n subdomain: test\n target: 0.0.0.0\n ttl: 3600\n zone: testdemo.ovh\n```\n{{% /example %}}\n{{% /examples %}}\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\n bash\n\n ```sh\n $ pulumi import ovh:Domain/zoneRecord:ZoneRecord test id.zone\n```\n\n ", "properties": { "fieldtype": { "type": "string", @@ -10910,6 +11299,153 @@ "type": "object" } }, + "ovh:Iam/permissionsGroup:PermissionsGroup": { + "description": "Create am IAM permissions group.\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{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst account = ovh.Me.getMe({});\nconst myGroup = new ovh.me.IdentityGroup(\"myGroup\", {description: \"my_group created in Terraform\"});\nconst manager = new ovh.iam.Policy(\"manager\", {\n description: \"Users are allowed to use the OVH manager\",\n identities: [myGroup.GroupURN],\n resources: [account.then(account =\u003e account.AccountURN)],\n allows: [\n \"account:apiovh:me/get\",\n \"account:apiovh:me/supportLevel/get\",\n \"account:apiovh:me/certificates/get\",\n \"account:apiovh:me/tag/get\",\n \"account:apiovh:services/get\",\n \"account:apiovh:*\",\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\naccount = ovh.Me.get_me()\nmy_group = ovh.me.IdentityGroup(\"myGroup\", description=\"my_group created in Terraform\")\nmanager = ovh.iam.Policy(\"manager\",\n description=\"Users are allowed to use the OVH manager\",\n identities=[my_group.group_urn],\n resources=[account.account_urn],\n allows=[\n \"account:apiovh:me/get\",\n \"account:apiovh:me/supportLevel/get\",\n \"account:apiovh:me/certificates/get\",\n \"account:apiovh:me/tag/get\",\n \"account:apiovh:services/get\",\n \"account:apiovh:*\",\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var account = Ovh.Me.GetMe.Invoke();\n\n var myGroup = new Ovh.Me.IdentityGroup(\"myGroup\", new()\n {\n Description = \"my_group created in Terraform\",\n });\n\n var manager = new Ovh.Iam.Policy(\"manager\", new()\n {\n Description = \"Users are allowed to use the OVH manager\",\n Identities = new[]\n {\n myGroup.GroupURN,\n },\n Resources = new[]\n {\n account.Apply(getMeResult =\u003e getMeResult.AccountURN),\n },\n Allows = new[]\n {\n \"account:apiovh:me/get\",\n \"account:apiovh:me/supportLevel/get\",\n \"account:apiovh:me/certificates/get\",\n \"account:apiovh:me/tag/get\",\n \"account:apiovh:services/get\",\n \"account:apiovh:*\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Iam\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\taccount, err := Me.GetMe(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyGroup, err := Me.NewIdentityGroup(ctx, \"myGroup\", \u0026Me.IdentityGroupArgs{\n\t\t\tDescription: pulumi.String(\"my_group created in Terraform\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Iam.NewPolicy(ctx, \"manager\", \u0026Iam.PolicyArgs{\n\t\t\tDescription: pulumi.String(\"Users are allowed to use the OVH manager\"),\n\t\t\tIdentities: pulumi.StringArray{\n\t\t\t\tmyGroup.GroupURN,\n\t\t\t},\n\t\t\tResources: pulumi.StringArray{\n\t\t\t\t*pulumi.String(account.AccountURN),\n\t\t\t},\n\t\t\tAllows: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"account:apiovh:me/get\"),\n\t\t\t\tpulumi.String(\"account:apiovh:me/supportLevel/get\"),\n\t\t\t\tpulumi.String(\"account:apiovh:me/certificates/get\"),\n\t\t\t\tpulumi.String(\"account:apiovh:me/tag/get\"),\n\t\t\t\tpulumi.String(\"account:apiovh:services/get\"),\n\t\t\t\tpulumi.String(\"account:apiovh:*\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.MeFunctions;\nimport com.pulumi.ovh.Me.IdentityGroup;\nimport com.pulumi.ovh.Me.IdentityGroupArgs;\nimport com.pulumi.ovh.Iam.Policy;\nimport com.pulumi.ovh.Iam.PolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var account = MeFunctions.getMe();\n\n var myGroup = new IdentityGroup(\"myGroup\", IdentityGroupArgs.builder() \n .description(\"my_group created in Terraform\")\n .build());\n\n var manager = new Policy(\"manager\", PolicyArgs.builder() \n .description(\"Users are allowed to use the OVH manager\")\n .identities(myGroup.GroupURN())\n .resources(account.applyValue(getMeResult -\u003e getMeResult.AccountURN()))\n .allows( \n \"account:apiovh:me/get\",\n \"account:apiovh:me/supportLevel/get\",\n \"account:apiovh:me/certificates/get\",\n \"account:apiovh:me/tag/get\",\n \"account:apiovh:services/get\",\n \"account:apiovh:*\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n myGroup:\n type: ovh:Me:IdentityGroup\n properties:\n description: my_group created in Terraform\n manager:\n type: ovh:Iam:Policy\n properties:\n description: Users are allowed to use the OVH manager\n identities:\n - ${myGroup.GroupURN}\n resources:\n - ${account.AccountURN}\n # these are all the actions\n allows:\n - account:apiovh:me/get\n - account:apiovh:me/supportLevel/get\n - account:apiovh:me/certificates/get\n - account:apiovh:me/tag/get\n - account:apiovh:services/get\n - account:apiovh:*\nvariables:\n account:\n fn::invoke:\n Function: ovh:Me:getMe\n Arguments: {}\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { @@ -10929,7 +11465,7 @@ "items": { "type": "string" }, - "description": "List of actions that will be denied no matter what policy exists.\n" + "description": "List of actions that will always be denied even if also allowed by this policy or another one.\n" }, "description": { "type": "string", @@ -10957,6 +11493,13 @@ "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" @@ -10995,7 +11538,7 @@ "items": { "type": "string" }, - "description": "List of actions that will be denied no matter what policy exists.\n" + "description": "List of actions that will always be denied even if also allowed by this policy or another one.\n" }, "description": { "type": "string", @@ -11019,6 +11562,13 @@ "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": { @@ -11050,7 +11600,7 @@ "items": { "type": "string" }, - "description": "List of actions that will be denied no matter what policy exists.\n" + "description": "List of actions that will always be denied even if also allowed by this policy or another one.\n" }, "description": { "type": "string", @@ -11078,6 +11628,13 @@ "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" @@ -11378,7 +11935,7 @@ } }, "ovh:Ip/reverse:Reverse": { - "description": "Provides a OVHcloud IP reverse.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\n// Set the reverse of an IP\nconst test = new ovh.ip.Reverse(\"test\", {\n ip: \"192.0.2.0/24\",\n ReverseIp: \"192.0.2.1\",\n ReverseValue: \"example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\n# Set the reverse of an IP\ntest = ovh.ip.Reverse(\"test\",\n ip=\"192.0.2.0/24\",\n reverse_ip=\"192.0.2.1\",\n reverse_value=\"example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Set the reverse of an IP\n var test = new Ovh.Ip.Reverse(\"test\", new()\n {\n Ip = \"192.0.2.0/24\",\n ReverseIp = \"192.0.2.1\",\n ReverseValue = \"example.com\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Ip\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Ip.NewReverse(ctx, \"test\", \u0026Ip.ReverseArgs{\n\t\t\tIp: pulumi.String(\"192.0.2.0/24\"),\n\t\t\tReverseIp: pulumi.String(\"192.0.2.1\"),\n\t\t\tReverseValue: pulumi.String(\"example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Ip.Reverse;\nimport com.pulumi.ovh.Ip.ReverseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new Reverse(\"test\", ReverseArgs.builder() \n .ip(\"192.0.2.0/24\")\n .ReverseIp(\"192.0.2.1\")\n .ReverseValue(\"example.com\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Set the reverse of an IP\n test:\n type: ovh:Ip:Reverse\n properties:\n ip: 192.0.2.0/24\n ReverseIp: 192.0.2.1\n ReverseValue: example.com\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nThe resource can be imported using the `ip`, `ip_reverse` of the address, separated by \"|\" E.g., bash\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 ", + "description": "Provides a OVHcloud IP reverse.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\n// Set the reverse of an IP\nconst test = new ovh.ip.Reverse(\"test\", {\n ip: \"192.0.2.0/24\",\n ReverseIp: \"192.0.2.1\",\n ReverseValue: \"example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\n# Set the reverse of an IP\ntest = ovh.ip.Reverse(\"test\",\n ip=\"192.0.2.0/24\",\n reverse_ip=\"192.0.2.1\",\n reverse_value=\"example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Set the reverse of an IP\n var test = new Ovh.Ip.Reverse(\"test\", new()\n {\n Ip = \"192.0.2.0/24\",\n ReverseIp = \"192.0.2.1\",\n ReverseValue = \"example.com\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Ip\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Ip.NewReverse(ctx, \"test\", \u0026Ip.ReverseArgs{\n\t\t\tIp: pulumi.String(\"192.0.2.0/24\"),\n\t\t\tReverseIp: pulumi.String(\"192.0.2.1\"),\n\t\t\tReverseValue: pulumi.String(\"example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Ip.Reverse;\nimport com.pulumi.ovh.Ip.ReverseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new Reverse(\"test\", ReverseArgs.builder() \n .ip(\"192.0.2.0/24\")\n .ReverseIp(\"192.0.2.1\")\n .ReverseValue(\"example.com\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Set the reverse of an IP\n test:\n type: ovh:Ip:Reverse\n properties:\n ip: 192.0.2.0/24\n ReverseIp: 192.0.2.1\n ReverseValue: example.com\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nThe resource can be imported using the `ip`, `ip_reverse` of the address, separated by \"|\" E.g.,\n\n bash\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", @@ -13331,7 +13888,7 @@ } }, "ovh:Me/aPIOAuth2Client:APIOAuth2Client": { - "description": "Creates an OAuth2 service account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nAn OAuth2 client for an app hosted at `my-app.com`, that uses the authorization code flow to authenticate.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst myOauth2ClientAuthCode = new ovh.me.APIOAuth2Client(\"myOauth2ClientAuthCode\", {\n callbackUrls: [\"https://my-app.com/callback\"],\n description: \"An OAuth2 client using the authorization code flow for my-app.com\",\n flow: \"AUTHORIZATION_CODE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_oauth2_client_auth_code = ovh.me.APIOAuth2Client(\"myOauth2ClientAuthCode\",\n callback_urls=[\"https://my-app.com/callback\"],\n description=\"An OAuth2 client using the authorization code flow for my-app.com\",\n flow=\"AUTHORIZATION_CODE\")\n```\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(\"myOauth2ClientAuthCode\", new()\n {\n CallbackUrls = new[]\n {\n \"https://my-app.com/callback\",\n },\n Description = \"An OAuth2 client using the authorization code flow for my-app.com\",\n Flow = \"AUTHORIZATION_CODE\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Me.NewAPIOAuth2Client(ctx, \"myOauth2ClientAuthCode\", \u0026Me.APIOAuth2ClientArgs{\n\t\t\tCallbackUrls: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"https://my-app.com/callback\"),\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"An OAuth2 client using the authorization code flow for my-app.com\"),\n\t\t\tFlow: pulumi.String(\"AUTHORIZATION_CODE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\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.APIOAuth2Client;\nimport com.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 .callbackUrls(\"https://my-app.com/callback\")\n .description(\"An OAuth2 client using the authorization code flow for my-app.com\")\n .flow(\"AUTHORIZATION_CODE\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n myOauth2ClientAuthCode:\n type: ovh:Me:APIOAuth2Client\n properties:\n callbackUrls:\n - https://my-app.com/callback\n description: An OAuth2 client using the authorization code flow for my-app.com\n flow: AUTHORIZATION_CODE\n```\n\nAn OAuth2 client for an app hosted at `my-app.com`, that uses the client credentials flow to authenticate.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst myOauth2ClientClientCreds = new ovh.me.APIOAuth2Client(\"myOauth2ClientClientCreds\", {\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(\"myOauth2ClientClientCreds\",\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(\"myOauth2ClientClientCreds\", new()\n {\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/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, \"myOauth2ClientClientCreds\", \u0026Me.APIOAuth2ClientArgs{\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.pulumi.ovh.Me.APIOAuth2Client;\nimport com.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 .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 properties:\n description: An OAuth2 client using the client credentials flow for my app\n flow: CLIENT_CREDENTIALS\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nOAuth2 clients can be imported using their `client_id`bash\n\n```sh\n $ pulumi import ovh:Me/aPIOAuth2Client:APIOAuth2Client my_oauth2_client client_id\n```\n\n Because 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 separatorbash\n\n```sh\n $ pulumi import ovh:Me/aPIOAuth2Client:APIOAuth2Client my_oauth2_client 'client_id|client_secret'\n```\n\n ", + "description": "Creates an OAuth2 service account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nAn OAuth2 client for an app hosted at `my-app.com`, that uses the authorization code flow to authenticate.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst myOauth2ClientAuthCode = new ovh.me.APIOAuth2Client(\"myOauth2ClientAuthCode\", {\n callbackUrls: [\"https://my-app.com/callback\"],\n description: \"An OAuth2 client using the authorization code flow for my-app.com\",\n flow: \"AUTHORIZATION_CODE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmy_oauth2_client_auth_code = ovh.me.APIOAuth2Client(\"myOauth2ClientAuthCode\",\n callback_urls=[\"https://my-app.com/callback\"],\n description=\"An OAuth2 client using the authorization code flow for my-app.com\",\n flow=\"AUTHORIZATION_CODE\")\n```\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(\"myOauth2ClientAuthCode\", new()\n {\n CallbackUrls = new[]\n {\n \"https://my-app.com/callback\",\n },\n Description = \"An OAuth2 client using the authorization code flow for my-app.com\",\n Flow = \"AUTHORIZATION_CODE\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Me.NewAPIOAuth2Client(ctx, \"myOauth2ClientAuthCode\", \u0026Me.APIOAuth2ClientArgs{\n\t\t\tCallbackUrls: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"https://my-app.com/callback\"),\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"An OAuth2 client using the authorization code flow for my-app.com\"),\n\t\t\tFlow: pulumi.String(\"AUTHORIZATION_CODE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\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.APIOAuth2Client;\nimport com.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 .callbackUrls(\"https://my-app.com/callback\")\n .description(\"An OAuth2 client using the authorization code flow for my-app.com\")\n .flow(\"AUTHORIZATION_CODE\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n myOauth2ClientAuthCode:\n type: ovh:Me:APIOAuth2Client\n properties:\n callbackUrls:\n - https://my-app.com/callback\n description: An OAuth2 client using the authorization code flow for my-app.com\n flow: AUTHORIZATION_CODE\n```\n\nAn OAuth2 client for an app hosted at `my-app.com`, that uses the client credentials flow to authenticate.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst myOauth2ClientClientCreds = new ovh.me.APIOAuth2Client(\"myOauth2ClientClientCreds\", {\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(\"myOauth2ClientClientCreds\",\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(\"myOauth2ClientClientCreds\", new()\n {\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/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, \"myOauth2ClientClientCreds\", \u0026Me.APIOAuth2ClientArgs{\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.pulumi.ovh.Me.APIOAuth2Client;\nimport com.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 .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 properties:\n description: An OAuth2 client using the client credentials flow for my app\n flow: CLIENT_CREDENTIALS\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nOAuth2 clients can be imported using their `client_id`:\n\n bash\n\n ```sh\n $ pulumi import ovh:Me/aPIOAuth2Client:APIOAuth2Client my_oauth2_client client_id\n```\n\n Because 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\n bash\n\n ```sh\n $ pulumi import ovh:Me/aPIOAuth2Client:APIOAuth2Client my_oauth2_client 'client_id|client_secret'\n```\n\n ", "properties": { "callbackUrls": { "type": "array", @@ -13664,7 +14221,7 @@ } }, "ovh:Me/installationTemplate:InstallationTemplate": { - "description": "Use this resource to create a custom installation template available for dedicated servers.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst mytemplate = new ovh.me.InstallationTemplate(\"mytemplate\", {\n baseTemplateName: \"centos7_64\",\n defaultLanguage: \"en\",\n templateName: \"mytemplate\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmytemplate = ovh.me.InstallationTemplate(\"mytemplate\",\n base_template_name=\"centos7_64\",\n default_language=\"en\",\n template_name=\"mytemplate\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var mytemplate = new Ovh.Me.InstallationTemplate(\"mytemplate\", new()\n {\n BaseTemplateName = \"centos7_64\",\n DefaultLanguage = \"en\",\n TemplateName = \"mytemplate\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Me.NewInstallationTemplate(ctx, \"mytemplate\", \u0026Me.InstallationTemplateArgs{\n\t\t\tBaseTemplateName: pulumi.String(\"centos7_64\"),\n\t\t\tDefaultLanguage: pulumi.String(\"en\"),\n\t\t\tTemplateName: pulumi.String(\"mytemplate\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.InstallationTemplate;\nimport com.pulumi.ovh.Me.InstallationTemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var mytemplate = new InstallationTemplate(\"mytemplate\", InstallationTemplateArgs.builder() \n .baseTemplateName(\"centos7_64\")\n .defaultLanguage(\"en\")\n .templateName(\"mytemplate\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mytemplate:\n type: ovh:Me:InstallationTemplate\n properties:\n baseTemplateName: centos7_64\n defaultLanguage: en\n templateName: mytemplate\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCustom installation template available for dedicated servers can be imported using the `base_template_name`, `template_name` of the cluster, separated by \"/\" E.g., bash\n\n```sh\n $ pulumi import ovh:Me/installationTemplate:InstallationTemplate mytemplate base_template_name/template_name\n```\n\n ", + "description": "Use this resource to create a custom installation template available for dedicated servers.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst mytemplate = new ovh.me.InstallationTemplate(\"mytemplate\", {\n baseTemplateName: \"centos7_64\",\n defaultLanguage: \"en\",\n templateName: \"mytemplate\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmytemplate = ovh.me.InstallationTemplate(\"mytemplate\",\n base_template_name=\"centos7_64\",\n default_language=\"en\",\n template_name=\"mytemplate\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var mytemplate = new Ovh.Me.InstallationTemplate(\"mytemplate\", new()\n {\n BaseTemplateName = \"centos7_64\",\n DefaultLanguage = \"en\",\n TemplateName = \"mytemplate\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Me.NewInstallationTemplate(ctx, \"mytemplate\", \u0026Me.InstallationTemplateArgs{\n\t\t\tBaseTemplateName: pulumi.String(\"centos7_64\"),\n\t\t\tDefaultLanguage: pulumi.String(\"en\"),\n\t\t\tTemplateName: pulumi.String(\"mytemplate\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.InstallationTemplate;\nimport com.pulumi.ovh.Me.InstallationTemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var mytemplate = new InstallationTemplate(\"mytemplate\", InstallationTemplateArgs.builder() \n .baseTemplateName(\"centos7_64\")\n .defaultLanguage(\"en\")\n .templateName(\"mytemplate\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mytemplate:\n type: ovh:Me:InstallationTemplate\n properties:\n baseTemplateName: centos7_64\n defaultLanguage: en\n templateName: mytemplate\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCustom installation template available for dedicated servers can be imported using the `base_template_name`, `template_name` of the cluster, separated by \"/\" E.g.,\n\n bash\n\n ```sh\n $ pulumi import ovh:Me/installationTemplate:InstallationTemplate mytemplate base_template_name/template_name\n```\n\n ", "properties": { "availableLanguages": { "type": "array", @@ -13896,7 +14453,7 @@ } }, "ovh:Me/installationTemplatePartitionScheme:InstallationTemplatePartitionScheme": { - "description": "Use this resource to create partition scheme for a custom installation template available for dedicated servers.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst mytemplate = new ovh.me.InstallationTemplate(\"mytemplate\", {\n baseTemplateName: \"centos7_64\",\n templateName: \"mytemplate\",\n defaultLanguage: \"fr\",\n});\nconst scheme = new ovh.me.InstallationTemplatePartitionScheme(\"scheme\", {\n templateName: mytemplate.templateName,\n priority: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmytemplate = ovh.me.InstallationTemplate(\"mytemplate\",\n base_template_name=\"centos7_64\",\n template_name=\"mytemplate\",\n default_language=\"fr\")\nscheme = ovh.me.InstallationTemplatePartitionScheme(\"scheme\",\n template_name=mytemplate.template_name,\n priority=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var mytemplate = new Ovh.Me.InstallationTemplate(\"mytemplate\", new()\n {\n BaseTemplateName = \"centos7_64\",\n TemplateName = \"mytemplate\",\n DefaultLanguage = \"fr\",\n });\n\n var scheme = new Ovh.Me.InstallationTemplatePartitionScheme(\"scheme\", new()\n {\n TemplateName = mytemplate.TemplateName,\n Priority = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmytemplate, err := Me.NewInstallationTemplate(ctx, \"mytemplate\", \u0026Me.InstallationTemplateArgs{\n\t\t\tBaseTemplateName: pulumi.String(\"centos7_64\"),\n\t\t\tTemplateName: pulumi.String(\"mytemplate\"),\n\t\t\tDefaultLanguage: pulumi.String(\"fr\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Me.NewInstallationTemplatePartitionScheme(ctx, \"scheme\", \u0026Me.InstallationTemplatePartitionSchemeArgs{\n\t\t\tTemplateName: mytemplate.TemplateName,\n\t\t\tPriority: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.InstallationTemplate;\nimport com.pulumi.ovh.Me.InstallationTemplateArgs;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionScheme;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionSchemeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var mytemplate = new InstallationTemplate(\"mytemplate\", InstallationTemplateArgs.builder() \n .baseTemplateName(\"centos7_64\")\n .templateName(\"mytemplate\")\n .defaultLanguage(\"fr\")\n .build());\n\n var scheme = new InstallationTemplatePartitionScheme(\"scheme\", InstallationTemplatePartitionSchemeArgs.builder() \n .templateName(mytemplate.templateName())\n .priority(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mytemplate:\n type: ovh:Me:InstallationTemplate\n properties:\n baseTemplateName: centos7_64\n templateName: mytemplate\n defaultLanguage: fr\n scheme:\n type: ovh:Me:InstallationTemplatePartitionScheme\n properties:\n templateName: ${mytemplate.templateName}\n priority: 1\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nThe resource can be imported using the `template_name`, `name` of the cluster, separated by \"/\" E.g., bash\n\n```sh\n $ pulumi import ovh:Me/installationTemplatePartitionScheme:InstallationTemplatePartitionScheme scheme template_name/name\n```\n\n ", + "description": "Use this resource to create partition scheme for a custom installation template available for dedicated servers.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst mytemplate = new ovh.me.InstallationTemplate(\"mytemplate\", {\n baseTemplateName: \"centos7_64\",\n templateName: \"mytemplate\",\n defaultLanguage: \"fr\",\n});\nconst scheme = new ovh.me.InstallationTemplatePartitionScheme(\"scheme\", {\n templateName: mytemplate.templateName,\n priority: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmytemplate = ovh.me.InstallationTemplate(\"mytemplate\",\n base_template_name=\"centos7_64\",\n template_name=\"mytemplate\",\n default_language=\"fr\")\nscheme = ovh.me.InstallationTemplatePartitionScheme(\"scheme\",\n template_name=mytemplate.template_name,\n priority=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var mytemplate = new Ovh.Me.InstallationTemplate(\"mytemplate\", new()\n {\n BaseTemplateName = \"centos7_64\",\n TemplateName = \"mytemplate\",\n DefaultLanguage = \"fr\",\n });\n\n var scheme = new Ovh.Me.InstallationTemplatePartitionScheme(\"scheme\", new()\n {\n TemplateName = mytemplate.TemplateName,\n Priority = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmytemplate, err := Me.NewInstallationTemplate(ctx, \"mytemplate\", \u0026Me.InstallationTemplateArgs{\n\t\t\tBaseTemplateName: pulumi.String(\"centos7_64\"),\n\t\t\tTemplateName: pulumi.String(\"mytemplate\"),\n\t\t\tDefaultLanguage: pulumi.String(\"fr\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Me.NewInstallationTemplatePartitionScheme(ctx, \"scheme\", \u0026Me.InstallationTemplatePartitionSchemeArgs{\n\t\t\tTemplateName: mytemplate.TemplateName,\n\t\t\tPriority: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.InstallationTemplate;\nimport com.pulumi.ovh.Me.InstallationTemplateArgs;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionScheme;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionSchemeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var mytemplate = new InstallationTemplate(\"mytemplate\", InstallationTemplateArgs.builder() \n .baseTemplateName(\"centos7_64\")\n .templateName(\"mytemplate\")\n .defaultLanguage(\"fr\")\n .build());\n\n var scheme = new InstallationTemplatePartitionScheme(\"scheme\", InstallationTemplatePartitionSchemeArgs.builder() \n .templateName(mytemplate.templateName())\n .priority(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mytemplate:\n type: ovh:Me:InstallationTemplate\n properties:\n baseTemplateName: centos7_64\n templateName: mytemplate\n defaultLanguage: fr\n scheme:\n type: ovh:Me:InstallationTemplatePartitionScheme\n properties:\n templateName: ${mytemplate.templateName}\n priority: 1\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nThe resource can be imported using the `template_name`, `name` of the cluster, separated by \"/\" E.g.,\n\n bash\n\n ```sh\n $ pulumi import ovh:Me/installationTemplatePartitionScheme:InstallationTemplatePartitionScheme scheme template_name/name\n```\n\n ", "properties": { "name": { "type": "string", @@ -13956,7 +14513,7 @@ } }, "ovh:Me/installationTemplatePartitionSchemeHardwareRaid:InstallationTemplatePartitionSchemeHardwareRaid": { - "description": "Use this resource to create a hardware raid group in the partition scheme of a custom installation template available for dedicated servers.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst mytemplate = new ovh.me.InstallationTemplate(\"mytemplate\", {\n baseTemplateName: \"centos7_64\",\n templateName: \"mytemplate\",\n defaultLanguage: \"fr\",\n});\nconst scheme = new ovh.me.InstallationTemplatePartitionScheme(\"scheme\", {\n templateName: mytemplate.templateName,\n priority: 1,\n});\nconst group1 = new ovh.me.InstallationTemplatePartitionSchemeHardwareRaid(\"group1\", {\n templateName: scheme.templateName,\n schemeName: scheme.name,\n disks: [\n \"[c1:d1,c1:d2,c1:d3]\",\n \"[c1:d10,c1:d20,c1:d30]\",\n ],\n mode: \"raid50\",\n step: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmytemplate = ovh.me.InstallationTemplate(\"mytemplate\",\n base_template_name=\"centos7_64\",\n template_name=\"mytemplate\",\n default_language=\"fr\")\nscheme = ovh.me.InstallationTemplatePartitionScheme(\"scheme\",\n template_name=mytemplate.template_name,\n priority=1)\ngroup1 = ovh.me.InstallationTemplatePartitionSchemeHardwareRaid(\"group1\",\n template_name=scheme.template_name,\n scheme_name=scheme.name,\n disks=[\n \"[c1:d1,c1:d2,c1:d3]\",\n \"[c1:d10,c1:d20,c1:d30]\",\n ],\n mode=\"raid50\",\n step=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var mytemplate = new Ovh.Me.InstallationTemplate(\"mytemplate\", new()\n {\n BaseTemplateName = \"centos7_64\",\n TemplateName = \"mytemplate\",\n DefaultLanguage = \"fr\",\n });\n\n var scheme = new Ovh.Me.InstallationTemplatePartitionScheme(\"scheme\", new()\n {\n TemplateName = mytemplate.TemplateName,\n Priority = 1,\n });\n\n var group1 = new Ovh.Me.InstallationTemplatePartitionSchemeHardwareRaid(\"group1\", new()\n {\n TemplateName = scheme.TemplateName,\n SchemeName = scheme.Name,\n Disks = new[]\n {\n \"[c1:d1,c1:d2,c1:d3]\",\n \"[c1:d10,c1:d20,c1:d30]\",\n },\n Mode = \"raid50\",\n Step = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmytemplate, err := Me.NewInstallationTemplate(ctx, \"mytemplate\", \u0026Me.InstallationTemplateArgs{\n\t\t\tBaseTemplateName: pulumi.String(\"centos7_64\"),\n\t\t\tTemplateName: pulumi.String(\"mytemplate\"),\n\t\t\tDefaultLanguage: pulumi.String(\"fr\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tscheme, err := Me.NewInstallationTemplatePartitionScheme(ctx, \"scheme\", \u0026Me.InstallationTemplatePartitionSchemeArgs{\n\t\t\tTemplateName: mytemplate.TemplateName,\n\t\t\tPriority: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Me.NewInstallationTemplatePartitionSchemeHardwareRaid(ctx, \"group1\", \u0026Me.InstallationTemplatePartitionSchemeHardwareRaidArgs{\n\t\t\tTemplateName: scheme.TemplateName,\n\t\t\tSchemeName: scheme.Name,\n\t\t\tDisks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"[c1:d1,c1:d2,c1:d3]\"),\n\t\t\t\tpulumi.String(\"[c1:d10,c1:d20,c1:d30]\"),\n\t\t\t},\n\t\t\tMode: pulumi.String(\"raid50\"),\n\t\t\tStep: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.InstallationTemplate;\nimport com.pulumi.ovh.Me.InstallationTemplateArgs;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionScheme;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionSchemeArgs;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionSchemeHardwareRaid;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionSchemeHardwareRaidArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var mytemplate = new InstallationTemplate(\"mytemplate\", InstallationTemplateArgs.builder() \n .baseTemplateName(\"centos7_64\")\n .templateName(\"mytemplate\")\n .defaultLanguage(\"fr\")\n .build());\n\n var scheme = new InstallationTemplatePartitionScheme(\"scheme\", InstallationTemplatePartitionSchemeArgs.builder() \n .templateName(mytemplate.templateName())\n .priority(1)\n .build());\n\n var group1 = new InstallationTemplatePartitionSchemeHardwareRaid(\"group1\", InstallationTemplatePartitionSchemeHardwareRaidArgs.builder() \n .templateName(scheme.templateName())\n .schemeName(scheme.name())\n .disks( \n \"[c1:d1,c1:d2,c1:d3]\",\n \"[c1:d10,c1:d20,c1:d30]\")\n .mode(\"raid50\")\n .step(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mytemplate:\n type: ovh:Me:InstallationTemplate\n properties:\n baseTemplateName: centos7_64\n templateName: mytemplate\n defaultLanguage: fr\n scheme:\n type: ovh:Me:InstallationTemplatePartitionScheme\n properties:\n templateName: ${mytemplate.templateName}\n priority: 1\n group1:\n type: ovh:Me:InstallationTemplatePartitionSchemeHardwareRaid\n properties:\n templateName: ${scheme.templateName}\n schemeName: ${scheme.name}\n disks:\n - '[c1:d1,c1:d2,c1:d3]'\n - '[c1:d10,c1:d20,c1:d30]'\n mode: raid50\n step: 1\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nThe resource can be imported using the `template_name`, `scheme_name`, `name` of the cluster, separated by \"/\" E.g., bash\n\n```sh\n $ pulumi import ovh:Me/installationTemplatePartitionSchemeHardwareRaid:InstallationTemplatePartitionSchemeHardwareRaid group1 template_name/scheme_name/name\n```\n\n ", + "description": "Use this resource to create a hardware raid group in the partition scheme of a custom installation template available for dedicated servers.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst mytemplate = new ovh.me.InstallationTemplate(\"mytemplate\", {\n baseTemplateName: \"centos7_64\",\n templateName: \"mytemplate\",\n defaultLanguage: \"fr\",\n});\nconst scheme = new ovh.me.InstallationTemplatePartitionScheme(\"scheme\", {\n templateName: mytemplate.templateName,\n priority: 1,\n});\nconst group1 = new ovh.me.InstallationTemplatePartitionSchemeHardwareRaid(\"group1\", {\n templateName: scheme.templateName,\n schemeName: scheme.name,\n disks: [\n \"[c1:d1,c1:d2,c1:d3]\",\n \"[c1:d10,c1:d20,c1:d30]\",\n ],\n mode: \"raid50\",\n step: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmytemplate = ovh.me.InstallationTemplate(\"mytemplate\",\n base_template_name=\"centos7_64\",\n template_name=\"mytemplate\",\n default_language=\"fr\")\nscheme = ovh.me.InstallationTemplatePartitionScheme(\"scheme\",\n template_name=mytemplate.template_name,\n priority=1)\ngroup1 = ovh.me.InstallationTemplatePartitionSchemeHardwareRaid(\"group1\",\n template_name=scheme.template_name,\n scheme_name=scheme.name,\n disks=[\n \"[c1:d1,c1:d2,c1:d3]\",\n \"[c1:d10,c1:d20,c1:d30]\",\n ],\n mode=\"raid50\",\n step=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var mytemplate = new Ovh.Me.InstallationTemplate(\"mytemplate\", new()\n {\n BaseTemplateName = \"centos7_64\",\n TemplateName = \"mytemplate\",\n DefaultLanguage = \"fr\",\n });\n\n var scheme = new Ovh.Me.InstallationTemplatePartitionScheme(\"scheme\", new()\n {\n TemplateName = mytemplate.TemplateName,\n Priority = 1,\n });\n\n var group1 = new Ovh.Me.InstallationTemplatePartitionSchemeHardwareRaid(\"group1\", new()\n {\n TemplateName = scheme.TemplateName,\n SchemeName = scheme.Name,\n Disks = new[]\n {\n \"[c1:d1,c1:d2,c1:d3]\",\n \"[c1:d10,c1:d20,c1:d30]\",\n },\n Mode = \"raid50\",\n Step = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmytemplate, err := Me.NewInstallationTemplate(ctx, \"mytemplate\", \u0026Me.InstallationTemplateArgs{\n\t\t\tBaseTemplateName: pulumi.String(\"centos7_64\"),\n\t\t\tTemplateName: pulumi.String(\"mytemplate\"),\n\t\t\tDefaultLanguage: pulumi.String(\"fr\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tscheme, err := Me.NewInstallationTemplatePartitionScheme(ctx, \"scheme\", \u0026Me.InstallationTemplatePartitionSchemeArgs{\n\t\t\tTemplateName: mytemplate.TemplateName,\n\t\t\tPriority: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Me.NewInstallationTemplatePartitionSchemeHardwareRaid(ctx, \"group1\", \u0026Me.InstallationTemplatePartitionSchemeHardwareRaidArgs{\n\t\t\tTemplateName: scheme.TemplateName,\n\t\t\tSchemeName: scheme.Name,\n\t\t\tDisks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"[c1:d1,c1:d2,c1:d3]\"),\n\t\t\t\tpulumi.String(\"[c1:d10,c1:d20,c1:d30]\"),\n\t\t\t},\n\t\t\tMode: pulumi.String(\"raid50\"),\n\t\t\tStep: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.InstallationTemplate;\nimport com.pulumi.ovh.Me.InstallationTemplateArgs;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionScheme;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionSchemeArgs;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionSchemeHardwareRaid;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionSchemeHardwareRaidArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var mytemplate = new InstallationTemplate(\"mytemplate\", InstallationTemplateArgs.builder() \n .baseTemplateName(\"centos7_64\")\n .templateName(\"mytemplate\")\n .defaultLanguage(\"fr\")\n .build());\n\n var scheme = new InstallationTemplatePartitionScheme(\"scheme\", InstallationTemplatePartitionSchemeArgs.builder() \n .templateName(mytemplate.templateName())\n .priority(1)\n .build());\n\n var group1 = new InstallationTemplatePartitionSchemeHardwareRaid(\"group1\", InstallationTemplatePartitionSchemeHardwareRaidArgs.builder() \n .templateName(scheme.templateName())\n .schemeName(scheme.name())\n .disks( \n \"[c1:d1,c1:d2,c1:d3]\",\n \"[c1:d10,c1:d20,c1:d30]\")\n .mode(\"raid50\")\n .step(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mytemplate:\n type: ovh:Me:InstallationTemplate\n properties:\n baseTemplateName: centos7_64\n templateName: mytemplate\n defaultLanguage: fr\n scheme:\n type: ovh:Me:InstallationTemplatePartitionScheme\n properties:\n templateName: ${mytemplate.templateName}\n priority: 1\n group1:\n type: ovh:Me:InstallationTemplatePartitionSchemeHardwareRaid\n properties:\n templateName: ${scheme.templateName}\n schemeName: ${scheme.name}\n disks:\n - '[c1:d1,c1:d2,c1:d3]'\n - '[c1:d10,c1:d20,c1:d30]'\n mode: raid50\n step: 1\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nThe resource can be imported using the `template_name`, `scheme_name`, `name` of the cluster, separated by \"/\" E.g.,\n\n bash\n\n ```sh\n $ pulumi import ovh:Me/installationTemplatePartitionSchemeHardwareRaid:InstallationTemplatePartitionSchemeHardwareRaid group1 template_name/scheme_name/name\n```\n\n ", "properties": { "disks": { "type": "array", @@ -14067,7 +14624,7 @@ } }, "ovh:Me/installationTemplatePartitionSchemePartition:InstallationTemplatePartitionSchemePartition": { - "description": "Use this resource to create a partition in the partition scheme of a custom installation template available for dedicated servers.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst mytemplate = new ovh.me.InstallationTemplate(\"mytemplate\", {\n baseTemplateName: \"centos7_64\",\n templateName: \"mytemplate\",\n defaultLanguage: \"fr\",\n});\nconst scheme = new ovh.me.InstallationTemplatePartitionScheme(\"scheme\", {\n templateName: mytemplate.templateName,\n priority: 1,\n});\nconst root = new ovh.me.InstallationTemplatePartitionSchemePartition(\"root\", {\n templateName: scheme.templateName,\n schemeName: scheme.name,\n mountpoint: \"/\",\n filesystem: \"ext4\",\n size: 400,\n order: 1,\n type: \"primary\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmytemplate = ovh.me.InstallationTemplate(\"mytemplate\",\n base_template_name=\"centos7_64\",\n template_name=\"mytemplate\",\n default_language=\"fr\")\nscheme = ovh.me.InstallationTemplatePartitionScheme(\"scheme\",\n template_name=mytemplate.template_name,\n priority=1)\nroot = ovh.me.InstallationTemplatePartitionSchemePartition(\"root\",\n template_name=scheme.template_name,\n scheme_name=scheme.name,\n mountpoint=\"/\",\n filesystem=\"ext4\",\n size=400,\n order=1,\n type=\"primary\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var mytemplate = new Ovh.Me.InstallationTemplate(\"mytemplate\", new()\n {\n BaseTemplateName = \"centos7_64\",\n TemplateName = \"mytemplate\",\n DefaultLanguage = \"fr\",\n });\n\n var scheme = new Ovh.Me.InstallationTemplatePartitionScheme(\"scheme\", new()\n {\n TemplateName = mytemplate.TemplateName,\n Priority = 1,\n });\n\n var root = new Ovh.Me.InstallationTemplatePartitionSchemePartition(\"root\", new()\n {\n TemplateName = scheme.TemplateName,\n SchemeName = scheme.Name,\n Mountpoint = \"/\",\n Filesystem = \"ext4\",\n Size = 400,\n Order = 1,\n Type = \"primary\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmytemplate, err := Me.NewInstallationTemplate(ctx, \"mytemplate\", \u0026Me.InstallationTemplateArgs{\n\t\t\tBaseTemplateName: pulumi.String(\"centos7_64\"),\n\t\t\tTemplateName: pulumi.String(\"mytemplate\"),\n\t\t\tDefaultLanguage: pulumi.String(\"fr\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tscheme, err := Me.NewInstallationTemplatePartitionScheme(ctx, \"scheme\", \u0026Me.InstallationTemplatePartitionSchemeArgs{\n\t\t\tTemplateName: mytemplate.TemplateName,\n\t\t\tPriority: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Me.NewInstallationTemplatePartitionSchemePartition(ctx, \"root\", \u0026Me.InstallationTemplatePartitionSchemePartitionArgs{\n\t\t\tTemplateName: scheme.TemplateName,\n\t\t\tSchemeName: scheme.Name,\n\t\t\tMountpoint: pulumi.String(\"/\"),\n\t\t\tFilesystem: pulumi.String(\"ext4\"),\n\t\t\tSize: pulumi.Int(400),\n\t\t\tOrder: pulumi.Int(1),\n\t\t\tType: pulumi.String(\"primary\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.InstallationTemplate;\nimport com.pulumi.ovh.Me.InstallationTemplateArgs;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionScheme;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionSchemeArgs;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionSchemePartition;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionSchemePartitionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var mytemplate = new InstallationTemplate(\"mytemplate\", InstallationTemplateArgs.builder() \n .baseTemplateName(\"centos7_64\")\n .templateName(\"mytemplate\")\n .defaultLanguage(\"fr\")\n .build());\n\n var scheme = new InstallationTemplatePartitionScheme(\"scheme\", InstallationTemplatePartitionSchemeArgs.builder() \n .templateName(mytemplate.templateName())\n .priority(1)\n .build());\n\n var root = new InstallationTemplatePartitionSchemePartition(\"root\", InstallationTemplatePartitionSchemePartitionArgs.builder() \n .templateName(scheme.templateName())\n .schemeName(scheme.name())\n .mountpoint(\"/\")\n .filesystem(\"ext4\")\n .size(\"400\")\n .order(1)\n .type(\"primary\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mytemplate:\n type: ovh:Me:InstallationTemplate\n properties:\n baseTemplateName: centos7_64\n templateName: mytemplate\n defaultLanguage: fr\n scheme:\n type: ovh:Me:InstallationTemplatePartitionScheme\n properties:\n templateName: ${mytemplate.templateName}\n priority: 1\n root:\n type: ovh:Me:InstallationTemplatePartitionSchemePartition\n properties:\n templateName: ${scheme.templateName}\n schemeName: ${scheme.name}\n mountpoint: /\n filesystem: ext4\n size: '400'\n order: 1\n type: primary\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nThe resource can be imported using the `template_name`, `scheme_name`, `mountpoint` of the cluster, separated by \"/\" E.g., bash\n\n```sh\n $ pulumi import ovh:Me/installationTemplatePartitionSchemePartition:InstallationTemplatePartitionSchemePartition root template_name/scheme_name/mountpoint\n```\n\n ", + "description": "Use this resource to create a partition in the partition scheme of a custom installation template available for dedicated servers.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst mytemplate = new ovh.me.InstallationTemplate(\"mytemplate\", {\n baseTemplateName: \"centos7_64\",\n templateName: \"mytemplate\",\n defaultLanguage: \"fr\",\n});\nconst scheme = new ovh.me.InstallationTemplatePartitionScheme(\"scheme\", {\n templateName: mytemplate.templateName,\n priority: 1,\n});\nconst root = new ovh.me.InstallationTemplatePartitionSchemePartition(\"root\", {\n templateName: scheme.templateName,\n schemeName: scheme.name,\n mountpoint: \"/\",\n filesystem: \"ext4\",\n size: 400,\n order: 1,\n type: \"primary\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmytemplate = ovh.me.InstallationTemplate(\"mytemplate\",\n base_template_name=\"centos7_64\",\n template_name=\"mytemplate\",\n default_language=\"fr\")\nscheme = ovh.me.InstallationTemplatePartitionScheme(\"scheme\",\n template_name=mytemplate.template_name,\n priority=1)\nroot = ovh.me.InstallationTemplatePartitionSchemePartition(\"root\",\n template_name=scheme.template_name,\n scheme_name=scheme.name,\n mountpoint=\"/\",\n filesystem=\"ext4\",\n size=400,\n order=1,\n type=\"primary\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var mytemplate = new Ovh.Me.InstallationTemplate(\"mytemplate\", new()\n {\n BaseTemplateName = \"centos7_64\",\n TemplateName = \"mytemplate\",\n DefaultLanguage = \"fr\",\n });\n\n var scheme = new Ovh.Me.InstallationTemplatePartitionScheme(\"scheme\", new()\n {\n TemplateName = mytemplate.TemplateName,\n Priority = 1,\n });\n\n var root = new Ovh.Me.InstallationTemplatePartitionSchemePartition(\"root\", new()\n {\n TemplateName = scheme.TemplateName,\n SchemeName = scheme.Name,\n Mountpoint = \"/\",\n Filesystem = \"ext4\",\n Size = 400,\n Order = 1,\n Type = \"primary\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmytemplate, err := Me.NewInstallationTemplate(ctx, \"mytemplate\", \u0026Me.InstallationTemplateArgs{\n\t\t\tBaseTemplateName: pulumi.String(\"centos7_64\"),\n\t\t\tTemplateName: pulumi.String(\"mytemplate\"),\n\t\t\tDefaultLanguage: pulumi.String(\"fr\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tscheme, err := Me.NewInstallationTemplatePartitionScheme(ctx, \"scheme\", \u0026Me.InstallationTemplatePartitionSchemeArgs{\n\t\t\tTemplateName: mytemplate.TemplateName,\n\t\t\tPriority: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Me.NewInstallationTemplatePartitionSchemePartition(ctx, \"root\", \u0026Me.InstallationTemplatePartitionSchemePartitionArgs{\n\t\t\tTemplateName: scheme.TemplateName,\n\t\t\tSchemeName: scheme.Name,\n\t\t\tMountpoint: pulumi.String(\"/\"),\n\t\t\tFilesystem: pulumi.String(\"ext4\"),\n\t\t\tSize: pulumi.Int(400),\n\t\t\tOrder: pulumi.Int(1),\n\t\t\tType: pulumi.String(\"primary\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.InstallationTemplate;\nimport com.pulumi.ovh.Me.InstallationTemplateArgs;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionScheme;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionSchemeArgs;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionSchemePartition;\nimport com.pulumi.ovh.Me.InstallationTemplatePartitionSchemePartitionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var mytemplate = new InstallationTemplate(\"mytemplate\", InstallationTemplateArgs.builder() \n .baseTemplateName(\"centos7_64\")\n .templateName(\"mytemplate\")\n .defaultLanguage(\"fr\")\n .build());\n\n var scheme = new InstallationTemplatePartitionScheme(\"scheme\", InstallationTemplatePartitionSchemeArgs.builder() \n .templateName(mytemplate.templateName())\n .priority(1)\n .build());\n\n var root = new InstallationTemplatePartitionSchemePartition(\"root\", InstallationTemplatePartitionSchemePartitionArgs.builder() \n .templateName(scheme.templateName())\n .schemeName(scheme.name())\n .mountpoint(\"/\")\n .filesystem(\"ext4\")\n .size(\"400\")\n .order(1)\n .type(\"primary\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mytemplate:\n type: ovh:Me:InstallationTemplate\n properties:\n baseTemplateName: centos7_64\n templateName: mytemplate\n defaultLanguage: fr\n scheme:\n type: ovh:Me:InstallationTemplatePartitionScheme\n properties:\n templateName: ${mytemplate.templateName}\n priority: 1\n root:\n type: ovh:Me:InstallationTemplatePartitionSchemePartition\n properties:\n templateName: ${scheme.templateName}\n schemeName: ${scheme.name}\n mountpoint: /\n filesystem: ext4\n size: '400'\n order: 1\n type: primary\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nThe resource can be imported using the `template_name`, `scheme_name`, `mountpoint` of the cluster, separated by \"/\" E.g.,\n\n bash\n\n ```sh\n $ pulumi import ovh:Me/installationTemplatePartitionSchemePartition:InstallationTemplatePartitionSchemePartition root template_name/scheme_name/mountpoint\n```\n\n ", "properties": { "filesystem": { "type": "string", @@ -14333,7 +14890,7 @@ } }, "ovh:Vrack/cloudProject:CloudProject": { - "description": "Attach a Public Cloud Project to a VRack.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst vcp = new ovh.vrack.CloudProject(\"vcp\", {\n projectId: \"67890\",\n serviceName: \"12345\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nvcp = ovh.vrack.CloudProject(\"vcp\",\n project_id=\"67890\",\n service_name=\"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 vcp = new Ovh.Vrack.CloudProject(\"vcp\", new()\n {\n ProjectId = \"67890\",\n ServiceName = \"12345\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Vrack\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Vrack.NewCloudProject(ctx, \"vcp\", \u0026Vrack.CloudProjectArgs{\n\t\t\tProjectId: pulumi.String(\"67890\"),\n\t\t\tServiceName: pulumi.String(\"12345\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\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.CloudProject;\nimport com.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 .projectId(\"67890\")\n .serviceName(\"12345\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vcp:\n type: ovh:Vrack:CloudProject\n properties:\n projectId: '67890'\n serviceName: '12345'\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAttachment of a public cloud project and a VRack can be imported using the `project_id`, the `service_name` (vRackID) and the `attach_id`, separated by \"/\" E.g., bash\n\n```sh\n $ pulumi import ovh:Vrack/cloudProject:CloudProject myattach ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678/vrack_pn-12345678-cloudproject_ookie9mee8Shaeghaeleeju7Xeghohv6e-attach\n```\n\n ", + "description": "Attach a Public Cloud Project to a VRack.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\n\nconst vcp = new ovh.vrack.CloudProject(\"vcp\", {\n projectId: \"67890\",\n serviceName: \"12345\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nvcp = ovh.vrack.CloudProject(\"vcp\",\n project_id=\"67890\",\n service_name=\"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 vcp = new Ovh.Vrack.CloudProject(\"vcp\", new()\n {\n ProjectId = \"67890\",\n ServiceName = \"12345\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Vrack\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Vrack.NewCloudProject(ctx, \"vcp\", \u0026Vrack.CloudProjectArgs{\n\t\t\tProjectId: pulumi.String(\"67890\"),\n\t\t\tServiceName: pulumi.String(\"12345\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\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.CloudProject;\nimport com.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 .projectId(\"67890\")\n .serviceName(\"12345\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vcp:\n type: ovh:Vrack:CloudProject\n properties:\n projectId: '67890'\n serviceName: '12345'\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAttachment of a public cloud project and a VRack can be imported using the `project_id`, the `service_name` (vRackID) and the `attach_id`, separated by \"/\" E.g.,\n\n bash\n\n ```sh\n $ pulumi import ovh:Vrack/cloudProject:CloudProject myattach ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678/vrack_pn-12345678-cloudproject_ookie9mee8Shaeghaeleeju7Xeghohv6e-attach\n```\n\n ", "properties": { "projectId": { "type": "string", @@ -14605,7 +15162,7 @@ } }, "ovh:Vrack/vrack:Vrack": { - "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst myaccount = ovh.Me.getMe({});\nconst mycart = myaccount.then(myaccount =\u003e ovh.Order.getCart({\n ovhSubsidiary: myaccount.ovhSubsidiary,\n}));\nconst vrackCartProductPlan = mycart.then(mycart =\u003e ovh.Order.getCartProductPlan({\n cartId: mycart.id,\n priceCapacity: \"renew\",\n product: \"vrack\",\n planCode: \"vrack\",\n}));\nconst vrackVrack = new ovh.vrack.Vrack(\"vrackVrack\", {\n ovhSubsidiary: mycart.then(mycart =\u003e mycart.ovhSubsidiary),\n description: \"my vrack\",\n plan: {\n duration: vrackCartProductPlan.then(vrackCartProductPlan =\u003e vrackCartProductPlan.selectedPrices?.[0]?.duration),\n planCode: vrackCartProductPlan.then(vrackCartProductPlan =\u003e vrackCartProductPlan.planCode),\n pricingMode: vrackCartProductPlan.then(vrackCartProductPlan =\u003e vrackCartProductPlan.selectedPrices?.[0]?.pricingMode),\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmyaccount = ovh.Me.get_me()\nmycart = ovh.Order.get_cart(ovh_subsidiary=myaccount.ovh_subsidiary)\nvrack_cart_product_plan = ovh.Order.get_cart_product_plan(cart_id=mycart.id,\n price_capacity=\"renew\",\n product=\"vrack\",\n plan_code=\"vrack\")\nvrack_vrack = ovh.vrack.Vrack(\"vrackVrack\",\n ovh_subsidiary=mycart.ovh_subsidiary,\n description=\"my vrack\",\n plan=ovh.vrack.VrackPlanArgs(\n duration=vrack_cart_product_plan.selected_prices[0].duration,\n plan_code=vrack_cart_product_plan.plan_code,\n pricing_mode=vrack_cart_product_plan.selected_prices[0].pricing_mode,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myaccount = Ovh.Me.GetMe.Invoke();\n\n var mycart = Ovh.Order.GetCart.Invoke(new()\n {\n OvhSubsidiary = myaccount.Apply(getMeResult =\u003e getMeResult.OvhSubsidiary),\n });\n\n var vrackCartProductPlan = Ovh.Order.GetCartProductPlan.Invoke(new()\n {\n CartId = mycart.Apply(getCartResult =\u003e getCartResult.Id),\n PriceCapacity = \"renew\",\n Product = \"vrack\",\n PlanCode = \"vrack\",\n });\n\n var vrackVrack = new Ovh.Vrack.Vrack(\"vrackVrack\", new()\n {\n OvhSubsidiary = mycart.Apply(getCartResult =\u003e getCartResult.OvhSubsidiary),\n Description = \"my vrack\",\n Plan = new Ovh.Vrack.Inputs.VrackPlanArgs\n {\n Duration = vrackCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.Duration),\n PlanCode = vrackCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PlanCode),\n PricingMode = vrackCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.PricingMode),\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Order\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Vrack\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyaccount, err := Me.GetMe(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmycart, err := Order.GetCart(ctx, \u0026order.GetCartArgs{\n\t\t\tOvhSubsidiary: myaccount.OvhSubsidiary,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvrackCartProductPlan, err := Order.GetCartProductPlan(ctx, \u0026order.GetCartProductPlanArgs{\n\t\t\tCartId: mycart.Id,\n\t\t\tPriceCapacity: \"renew\",\n\t\t\tProduct: \"vrack\",\n\t\t\tPlanCode: \"vrack\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Vrack.NewVrack(ctx, \"vrackVrack\", \u0026Vrack.VrackArgs{\n\t\t\tOvhSubsidiary: *pulumi.String(mycart.OvhSubsidiary),\n\t\t\tDescription: pulumi.String(\"my vrack\"),\n\t\t\tPlan: \u0026vrack.VrackPlanArgs{\n\t\t\t\tDuration: *pulumi.String(vrackCartProductPlan.SelectedPrices[0].Duration),\n\t\t\t\tPlanCode: *pulumi.String(vrackCartProductPlan.PlanCode),\n\t\t\t\tPricingMode: *pulumi.String(vrackCartProductPlan.SelectedPrices[0].PricingMode),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.MeFunctions;\nimport com.pulumi.ovh.Order.OrderFunctions;\nimport com.pulumi.ovh.Order.inputs.GetCartArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductPlanArgs;\nimport com.pulumi.ovh.Vrack.Vrack;\nimport com.pulumi.ovh.Vrack.VrackArgs;\nimport com.pulumi.ovh.Vrack.inputs.VrackPlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var myaccount = MeFunctions.getMe();\n\n final var mycart = OrderFunctions.getCart(GetCartArgs.builder()\n .ovhSubsidiary(myaccount.applyValue(getMeResult -\u003e getMeResult.ovhSubsidiary()))\n .build());\n\n final var vrackCartProductPlan = OrderFunctions.getCartProductPlan(GetCartProductPlanArgs.builder()\n .cartId(mycart.applyValue(getCartResult -\u003e getCartResult.id()))\n .priceCapacity(\"renew\")\n .product(\"vrack\")\n .planCode(\"vrack\")\n .build());\n\n var vrackVrack = new Vrack(\"vrackVrack\", VrackArgs.builder() \n .ovhSubsidiary(mycart.applyValue(getCartResult -\u003e getCartResult.ovhSubsidiary()))\n .description(\"my vrack\")\n .plan(VrackPlanArgs.builder()\n .duration(vrackCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].duration()))\n .planCode(vrackCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.planCode()))\n .pricingMode(vrackCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].pricingMode()))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vrackVrack:\n type: ovh:Vrack:Vrack\n properties:\n ovhSubsidiary: ${mycart.ovhSubsidiary}\n description: my vrack\n plan:\n duration: ${vrackCartProductPlan.selectedPrices[0].duration}\n planCode: ${vrackCartProductPlan.planCode}\n pricingMode: ${vrackCartProductPlan.selectedPrices[0].pricingMode}\nvariables:\n myaccount:\n fn::invoke:\n Function: ovh:Me:getMe\n Arguments: {}\n mycart:\n fn::invoke:\n Function: ovh:Order:getCart\n Arguments:\n ovhSubsidiary: ${myaccount.ovhSubsidiary}\n vrackCartProductPlan:\n fn::invoke:\n Function: ovh:Order:getCartProductPlan\n Arguments:\n cartId: ${mycart.id}\n priceCapacity: renew\n product: vrack\n planCode: vrack\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nvRack can be imported using the `order_id` that can be retrieved in the [order page](https://www.ovh.com/manager/#/dedicated/billing/orders/orders).\n\nbash\n\n```sh\n $ pulumi import ovh:Vrack/vrack:Vrack vrack order_id\n```\n\n ", + "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovh-devrelteam/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst myaccount = ovh.Me.getMe({});\nconst mycart = myaccount.then(myaccount =\u003e ovh.Order.getCart({\n ovhSubsidiary: myaccount.ovhSubsidiary,\n}));\nconst vrackCartProductPlan = mycart.then(mycart =\u003e ovh.Order.getCartProductPlan({\n cartId: mycart.id,\n priceCapacity: \"renew\",\n product: \"vrack\",\n planCode: \"vrack\",\n}));\nconst vrackVrack = new ovh.vrack.Vrack(\"vrackVrack\", {\n ovhSubsidiary: mycart.then(mycart =\u003e mycart.ovhSubsidiary),\n description: \"my vrack\",\n plan: {\n duration: vrackCartProductPlan.then(vrackCartProductPlan =\u003e vrackCartProductPlan.selectedPrices?.[0]?.duration),\n planCode: vrackCartProductPlan.then(vrackCartProductPlan =\u003e vrackCartProductPlan.planCode),\n pricingMode: vrackCartProductPlan.then(vrackCartProductPlan =\u003e vrackCartProductPlan.selectedPrices?.[0]?.pricingMode),\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmyaccount = ovh.Me.get_me()\nmycart = ovh.Order.get_cart(ovh_subsidiary=myaccount.ovh_subsidiary)\nvrack_cart_product_plan = ovh.Order.get_cart_product_plan(cart_id=mycart.id,\n price_capacity=\"renew\",\n product=\"vrack\",\n plan_code=\"vrack\")\nvrack_vrack = ovh.vrack.Vrack(\"vrackVrack\",\n ovh_subsidiary=mycart.ovh_subsidiary,\n description=\"my vrack\",\n plan=ovh.vrack.VrackPlanArgs(\n duration=vrack_cart_product_plan.selected_prices[0].duration,\n plan_code=vrack_cart_product_plan.plan_code,\n pricing_mode=vrack_cart_product_plan.selected_prices[0].pricing_mode,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myaccount = Ovh.Me.GetMe.Invoke();\n\n var mycart = Ovh.Order.GetCart.Invoke(new()\n {\n OvhSubsidiary = myaccount.Apply(getMeResult =\u003e getMeResult.OvhSubsidiary),\n });\n\n var vrackCartProductPlan = Ovh.Order.GetCartProductPlan.Invoke(new()\n {\n CartId = mycart.Apply(getCartResult =\u003e getCartResult.Id),\n PriceCapacity = \"renew\",\n Product = \"vrack\",\n PlanCode = \"vrack\",\n });\n\n var vrackVrack = new Ovh.Vrack.Vrack(\"vrackVrack\", new()\n {\n OvhSubsidiary = mycart.Apply(getCartResult =\u003e getCartResult.OvhSubsidiary),\n Description = \"my vrack\",\n Plan = new Ovh.Vrack.Inputs.VrackPlanArgs\n {\n Duration = vrackCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.Duration),\n PlanCode = vrackCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PlanCode),\n PricingMode = vrackCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.PricingMode),\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Order\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Vrack\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyaccount, err := Me.GetMe(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmycart, err := Order.GetCart(ctx, \u0026order.GetCartArgs{\n\t\t\tOvhSubsidiary: myaccount.OvhSubsidiary,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvrackCartProductPlan, err := Order.GetCartProductPlan(ctx, \u0026order.GetCartProductPlanArgs{\n\t\t\tCartId: mycart.Id,\n\t\t\tPriceCapacity: \"renew\",\n\t\t\tProduct: \"vrack\",\n\t\t\tPlanCode: \"vrack\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Vrack.NewVrack(ctx, \"vrackVrack\", \u0026Vrack.VrackArgs{\n\t\t\tOvhSubsidiary: *pulumi.String(mycart.OvhSubsidiary),\n\t\t\tDescription: pulumi.String(\"my vrack\"),\n\t\t\tPlan: \u0026vrack.VrackPlanArgs{\n\t\t\t\tDuration: *pulumi.String(vrackCartProductPlan.SelectedPrices[0].Duration),\n\t\t\t\tPlanCode: *pulumi.String(vrackCartProductPlan.PlanCode),\n\t\t\t\tPricingMode: *pulumi.String(vrackCartProductPlan.SelectedPrices[0].PricingMode),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.MeFunctions;\nimport com.pulumi.ovh.Order.OrderFunctions;\nimport com.pulumi.ovh.Order.inputs.GetCartArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductPlanArgs;\nimport com.pulumi.ovh.Vrack.Vrack;\nimport com.pulumi.ovh.Vrack.VrackArgs;\nimport com.pulumi.ovh.Vrack.inputs.VrackPlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var myaccount = MeFunctions.getMe();\n\n final var mycart = OrderFunctions.getCart(GetCartArgs.builder()\n .ovhSubsidiary(myaccount.applyValue(getMeResult -\u003e getMeResult.ovhSubsidiary()))\n .build());\n\n final var vrackCartProductPlan = OrderFunctions.getCartProductPlan(GetCartProductPlanArgs.builder()\n .cartId(mycart.applyValue(getCartResult -\u003e getCartResult.id()))\n .priceCapacity(\"renew\")\n .product(\"vrack\")\n .planCode(\"vrack\")\n .build());\n\n var vrackVrack = new Vrack(\"vrackVrack\", VrackArgs.builder() \n .ovhSubsidiary(mycart.applyValue(getCartResult -\u003e getCartResult.ovhSubsidiary()))\n .description(\"my vrack\")\n .plan(VrackPlanArgs.builder()\n .duration(vrackCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].duration()))\n .planCode(vrackCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.planCode()))\n .pricingMode(vrackCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].pricingMode()))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vrackVrack:\n type: ovh:Vrack:Vrack\n properties:\n ovhSubsidiary: ${mycart.ovhSubsidiary}\n description: my vrack\n plan:\n duration: ${vrackCartProductPlan.selectedPrices[0].duration}\n planCode: ${vrackCartProductPlan.planCode}\n pricingMode: ${vrackCartProductPlan.selectedPrices[0].pricingMode}\nvariables:\n myaccount:\n fn::invoke:\n Function: ovh:Me:getMe\n Arguments: {}\n mycart:\n fn::invoke:\n Function: ovh:Order:getCart\n Arguments:\n ovhSubsidiary: ${myaccount.ovhSubsidiary}\n vrackCartProductPlan:\n fn::invoke:\n Function: ovh:Order:getCartProductPlan\n Arguments:\n cartId: ${mycart.id}\n priceCapacity: renew\n product: vrack\n planCode: vrack\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nvRack can be imported using the `order_id` that can be retrieved in the [order page](https://www.ovh.com/manager/#/dedicated/billing/orders/orders).\n\n bash\n\n ```sh\n $ pulumi import ovh:Vrack/vrack:Vrack vrack order_id\n```\n\n ", "properties": { "VrackURN": { "type": "string", @@ -14934,7 +15491,149 @@ }, "serviceName": { "type": "string", - "description": "The id of the public cloud project. If omitted,\nthe `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n" + "description": "The id of the public cloud project. If omitted,\nthe `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": { + "type": "string", + "description": "Registry creation date\n" + }, + "id": { + "type": "string", + "description": "The provider-assigned unique ID for this managed resource.\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" + }, + "registryId": { + "type": "string" + }, + "serviceName": { + "type": "string" + }, + "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", + "name", + "projectId", + "region", + "registryId", + "serviceName", + "size", + "status", + "updatedAt", + "url", + "version", + "id" + ] + } + }, + "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", + "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": { + "type": "string", + "description": "The provider-assigned unique ID for this managed resource.\n" + }, + "ipRestrictions": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "pulumi.json#/Any" + } + }, + "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" + } + }, + "type": "object", + "required": [ + "ipRestrictions", + "registryId", + "serviceName", + "id" + ] + } + }, + "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", + "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", @@ -14944,68 +15643,36 @@ ] }, "outputs": { - "description": "A collection of values returned by getContainerRegistry.\n", + "description": "A collection of values returned by getContainerRegistryIPRestrictionsRegistry.\n", "properties": { - "createdAt": { - "type": "string", - "description": "Registry creation date\n" - }, "id": { "type": "string", "description": "The provider-assigned unique ID for this managed resource.\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" + "ipRestrictions": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "pulumi.json#/Any" + } + }, + "description": "IP restrictions applied on artifact manager component.\n" }, "registryId": { - "type": "string" - }, - "serviceName": { - "type": "string" - }, - "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" + "description": "The ID of the Managed Private Registry.\n" }, - "version": { + "serviceName": { "type": "string", - "description": "Version of your registry\n" + "description": "The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.\n" } }, "type": "object", "required": [ - "createdAt", - "name", - "projectId", - "region", + "ipRestrictions", "registryId", "serviceName", - "size", - "status", - "updatedAt", - "url", - "version", "id" ] } @@ -15521,6 +16188,18 @@ "type": "boolean", "description": "(Optional) Enable auto-scaling for the pool. Default to `false`.\n" }, + "autoscalingScaleDownUnneededTimeSeconds": { + "type": "integer", + "description": "(Optional) scaleDownUnneededTimeSeconds autoscaling parameter\nHow long a node should be unneeded before it is eligible for scale down\n" + }, + "autoscalingScaleDownUnreadyTimeSeconds": { + "type": "integer", + "description": "(Optional) scaleDownUnreadyTimeSeconds autoscaling parameter\nHow long an unready node should be unneeded before it is eligible for scale down\n" + }, + "autoscalingScaleDownUtilizationThreshold": { + "type": "number", + "description": "(Optional) scaleDownUtilizationThreshold autoscaling parameter\nNode utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down\n" + }, "availableNodes": { "type": "integer", "description": "Number of nodes which are actually ready in the pool\n" @@ -15601,6 +16280,9 @@ "required": [ "antiAffinity", "autoscale", + "autoscalingScaleDownUnneededTimeSeconds", + "autoscalingScaleDownUnreadyTimeSeconds", + "autoscalingScaleDownUtilizationThreshold", "availableNodes", "createdAt", "currentNodes", @@ -17025,6 +17707,13 @@ }, "description": "Advanced configuration key / value.\n" }, + "backupRegions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of region where backups are pushed.\n" + }, "backupTime": { "type": "string", "description": "Time on which backups start every day.\n" @@ -17106,6 +17795,7 @@ "type": "object", "required": [ "advancedConfiguration", + "backupRegions", "backupTime", "createdAt", "description", @@ -17949,6 +18639,95 @@ ] } }, + "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{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst testPoolPostgresSqlConnectionPool = ovh.CloudProjectDatabase.getPostgresSqlConnectionPool({\n serviceName: \"XXX\",\n clusterId: \"YYY\",\n name: \"ZZZ\",\n});\nexport const testPool = {\n service_name: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool =\u003e testPoolPostgresSqlConnectionPool.serviceName),\n cluster_id: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool =\u003e testPoolPostgresSqlConnectionPool.clusterId),\n name: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool =\u003e testPoolPostgresSqlConnectionPool.name),\n database_id: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool =\u003e testPoolPostgresSqlConnectionPool.databaseId),\n mode: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool =\u003e testPoolPostgresSqlConnectionPool.mode),\n size: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool =\u003e testPoolPostgresSqlConnectionPool.size),\n port: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool =\u003e testPoolPostgresSqlConnectionPool.port),\n ssl_mode: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool =\u003e testPoolPostgresSqlConnectionPool.sslMode),\n uri: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool =\u003e testPoolPostgresSqlConnectionPool.uri),\n user_id: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool =\u003e testPoolPostgresSqlConnectionPool.userId),\n};\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ntest_pool_postgres_sql_connection_pool = ovh.CloudProjectDatabase.get_postgres_sql_connection_pool(service_name=\"XXX\",\n cluster_id=\"YYY\",\n name=\"ZZZ\")\npulumi.export(\"testPool\", {\n \"service_name\": test_pool_postgres_sql_connection_pool.service_name,\n \"cluster_id\": test_pool_postgres_sql_connection_pool.cluster_id,\n \"name\": test_pool_postgres_sql_connection_pool.name,\n \"database_id\": test_pool_postgres_sql_connection_pool.database_id,\n \"mode\": test_pool_postgres_sql_connection_pool.mode,\n \"size\": test_pool_postgres_sql_connection_pool.size,\n \"port\": test_pool_postgres_sql_connection_pool.port,\n \"ssl_mode\": test_pool_postgres_sql_connection_pool.ssl_mode,\n \"uri\": test_pool_postgres_sql_connection_pool.uri,\n \"user_id\": test_pool_postgres_sql_connection_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 testPoolPostgresSqlConnectionPool = 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 { \"service_name\", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult =\u003e getPostgresSqlConnectionPoolResult.ServiceName) },\n { \"cluster_id\", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult =\u003e getPostgresSqlConnectionPoolResult.ClusterId) },\n { \"name\", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult =\u003e getPostgresSqlConnectionPoolResult.Name) },\n { \"database_id\", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult =\u003e getPostgresSqlConnectionPoolResult.DatabaseId) },\n { \"mode\", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult =\u003e getPostgresSqlConnectionPoolResult.Mode) },\n { \"size\", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult =\u003e getPostgresSqlConnectionPoolResult.Size) },\n { \"port\", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult =\u003e getPostgresSqlConnectionPoolResult.Port) },\n { \"ssl_mode\", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult =\u003e getPostgresSqlConnectionPoolResult.SslMode) },\n { \"uri\", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult =\u003e getPostgresSqlConnectionPoolResult.Uri) },\n { \"user_id\", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult =\u003e getPostgresSqlConnectionPoolResult.UserId) },\n },\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestPoolPostgresSqlConnectionPool, 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\", map[string]interface{}{\n\t\t\t\"service_name\": testPoolPostgresSqlConnectionPool.ServiceName,\n\t\t\t\"cluster_id\": testPoolPostgresSqlConnectionPool.ClusterId,\n\t\t\t\"name\": testPoolPostgresSqlConnectionPool.Name,\n\t\t\t\"database_id\": testPoolPostgresSqlConnectionPool.DatabaseId,\n\t\t\t\"mode\": testPoolPostgresSqlConnectionPool.Mode,\n\t\t\t\"size\": testPoolPostgresSqlConnectionPool.Size,\n\t\t\t\"port\": testPoolPostgresSqlConnectionPool.Port,\n\t\t\t\"ssl_mode\": testPoolPostgresSqlConnectionPool.SslMode,\n\t\t\t\"uri\": testPoolPostgresSqlConnectionPool.Uri,\n\t\t\t\"user_id\": testPoolPostgresSqlConnectionPool.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 testPoolPostgresSqlConnectionPool = CloudProjectDatabaseFunctions.getPostgresSqlConnectionPool(GetPostgresSqlConnectionPoolArgs.builder()\n .serviceName(\"XXX\")\n .clusterId(\"YYY\")\n .name(\"ZZZ\")\n .build());\n\n ctx.export(\"testPool\", %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference));\n }\n}\n```\n```yaml\nvariables:\n testPoolPostgresSqlConnectionPool:\n fn::invoke:\n Function: ovh:CloudProjectDatabase:getPostgresSqlConnectionPool\n Arguments:\n serviceName: XXX\n clusterId: YYY\n name: ZZZ\noutputs:\n testPool:\n service_name: ${testPoolPostgresSqlConnectionPool.serviceName}\n cluster_id: ${testPoolPostgresSqlConnectionPool.clusterId}\n name: ${testPoolPostgresSqlConnectionPool.name}\n database_id: ${testPoolPostgresSqlConnectionPool.databaseId}\n mode: ${testPoolPostgresSqlConnectionPool.mode}\n size: ${testPoolPostgresSqlConnectionPool.size}\n port: ${testPoolPostgresSqlConnectionPool.port}\n ssl_mode: ${testPoolPostgresSqlConnectionPool.sslMode}\n uri: ${testPoolPostgresSqlConnectionPool.uri}\n user_id: ${testPoolPostgresSqlConnectionPool.userId}\n```\n{{% /example %}}\n{{% /examples %}}", + "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,\nthe `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": { + "type": "string", + "description": "See Argument Reference above\n" + }, + "databaseId": { + "type": "string", + "description": "Database ID for a database that belongs to the Database cluster given above.\n" + }, + "id": { + "type": "string", + "description": "The provider-assigned unique ID for this managed resource.\n" + }, + "mode": { + "type": "string", + "description": "Connection mode to the connection pool\nAvailable modes:\n" + }, + "name": { + "type": "string", + "description": "See Argument Reference above\n" + }, + "port": { + "type": "integer", + "description": "Port of the connection pool.\n" + }, + "serviceName": { + "type": "string", + "description": "See Argument Reference above\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" + } + }, + "type": "object", + "required": [ + "clusterId", + "databaseId", + "mode", + "name", + "port", + "serviceName", + "size", + "sslMode", + "uri", + "userId", + "id" + ] + } + }, "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{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@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\npguser = ovh.CloudProjectDatabase.get_postgres_sql_user(service_name=\"XXX\",\n cluster_id=\"YYY\",\n name=\"ZZZ\")\npulumi.export(\"pguserRoles\", pguser.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/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.applyValue(getPostgresSqlUserResult -\u003e getPostgresSqlUserResult.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{{% /example %}}\n{{% /examples %}}", "inputs": { @@ -18179,10 +18958,6 @@ "outputs": { "description": "A collection of values returned by getLogsCluster.\n", "properties": { - "DBaasURN": { - "type": "string", - "description": "is the URN of the DBaas logs instance\n" - }, "archiveAllowedNetworks": { "type": "array", "items": { @@ -18243,6 +19018,10 @@ }, "serviceName": { "type": "string" + }, + "urn": { + "type": "string", + "description": "is the URN of the DBaas logs instance\n" } }, "type": "object", @@ -18258,7 +19037,7 @@ "queryAllowedNetworks", "region", "serviceName", - "DBaasURN", + "urn", "id" ] } @@ -19178,6 +19957,120 @@ ] } }, + "ovh:Iam/getPermissionsGroup:getPermissionsGroup": { + "inputs": { + "description": "A collection of arguments for invoking getPermissionsGroup.\n", + "properties": { + "allows": { + "type": "array", + "items": { + "type": "string" + } + }, + "denies": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "type": "string" + }, + "excepts": { + "type": "array", + "items": { + "type": "string" + } + }, + "updatedAt": { + "type": "string" + }, + "urn": { + "type": "string" + } + }, + "type": "object", + "required": [ + "urn" + ] + }, + "outputs": { + "description": "A collection of values returned by getPermissionsGroup.\n", + "properties": { + "allows": { + "type": "array", + "items": { + "type": "string" + } + }, + "createdAt": { + "type": "string" + }, + "denies": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "type": "string" + }, + "excepts": { + "type": "array", + "items": { + "type": "string" + } + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "owner": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "urn": { + "type": "string" + } + }, + "type": "object", + "required": [ + "createdAt", + "id", + "name", + "owner", + "updatedAt", + "urn" + ] + } + }, + "ovh:Iam/getPermissionsGroups:getPermissionsGroups": { + "description": "Use this data source to retrieve an IAM permissions group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@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/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{{% /example %}}\n{{% /examples %}}", + "outputs": { + "description": "A collection of values returned by getPermissionsGroups.\n", + "properties": { + "id": { + "type": "string", + "description": "The provider-assigned unique ID for this managed resource.\n" + }, + "urns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "type": "object", + "required": [ + "urns", + "id" + ] + } + }, "ovh:Iam/getPolicies:getPolicies": { "description": "Use this data source to list the existing IAM policies of an account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@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/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, nil, 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();\n\n }\n}\n```\n```yaml\nvariables:\n myPolicies:\n fn::invoke:\n Function: ovh:Iam:getPolicies\n Arguments: {}\n```\n{{% /example %}}\n{{% /examples %}}", "outputs": { @@ -19212,14 +20105,14 @@ "items": { "type": "string" }, - "description": "List of actions allowed by the policy.\n" + "description": "Set of actions allowed by the policy.\n" }, "denies": { "type": "array", "items": { "type": "string" }, - "description": "List of actions that will be denied no matter what policy exists.\n" + "description": "Set of actions that will be denied no matter what policy exists.\n" }, "description": { "type": "string", @@ -19230,11 +20123,18 @@ "items": { "type": "string" }, - "description": "List of actions that will be subtracted from the `allow` list.\n" + "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", @@ -19250,7 +20150,7 @@ "items": { "type": "string" }, - "description": "List of actions allowed by the policy.\n" + "description": "Set of actions allowed by the policy.\n" }, "createdAt": { "type": "string", @@ -19261,7 +20161,7 @@ "items": { "type": "string" }, - "description": "List of actions that will be denied no matter what policy exists.\n" + "description": "Set of actions that will be denied no matter what policy exists.\n" }, "description": { "type": "string", @@ -19272,7 +20172,7 @@ "items": { "type": "string" }, - "description": "List of actions that will be subtracted from the `allow` list.\n" + "description": "Set of actions that will be subtracted from the `allow` list.\n" }, "id": { "type": "string" @@ -19282,7 +20182,7 @@ "items": { "type": "string" }, - "description": "List of identities affected by the policy.\n" + "description": "Set of identities affected by the policy.\n" }, "name": { "type": "string", @@ -19292,6 +20192,13 @@ "type": "string", "description": "Owner of the policy.\n" }, + "permissionsGroups": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Set of permissions groups that apply to the policy.\n" + }, "readOnly": { "type": "boolean", "description": "Indicates that the policy is a default one.\n" @@ -19301,7 +20208,7 @@ "items": { "type": "string" }, - "description": "List of resources affected by the policy.\n" + "description": "Set of resources affected by the policy.\n" }, "updatedAt": { "type": "string", @@ -21231,6 +22138,10 @@ "type": "integer", "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" @@ -21337,6 +22248,7 @@ "type": "object", "required": [ "bootId", + "bootScript", "commercialRange", "datacenter", "enabledPublicVnis", diff --git a/provider/cmd/pulumi-tfgen-ovh/main.go b/provider/cmd/pulumi-tfgen-ovh/main.go index 9a63f0ef..761fd436 100644 --- a/provider/cmd/pulumi-tfgen-ovh/main.go +++ b/provider/cmd/pulumi-tfgen-ovh/main.go @@ -15,12 +15,13 @@ package main import ( - "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfgen" ovh "github.com/ovh/pulumi-ovh/provider" - "github.com/ovh/pulumi-ovh/provider/pkg/version" + "github.com/pulumi/pulumi-terraform-bridge/pf/tfgen" ) func main() { // Modify the path to point to the new provider - tfgen.Main("ovh", version.Version, ovh.Provider()) + //tfgen.Main("ovh", version.Version, ovh.Provider()) + + tfgen.MainWithMuxer("ovh", ovh.Provider()) } diff --git a/provider/go.mod b/provider/go.mod index 41bbc830..fb1f9a84 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -2,35 +2,31 @@ module github.com/ovh/pulumi-ovh/provider go 1.20 -replace github.com/hashicorp/terraform-plugin-sdk/v2 => github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20230912190043-e6d96b3b8f7e +replace github.com/hashicorp/terraform-plugin-sdk/v2 => github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20240202163305-e2a20ae13ef9 require ( - github.com/ovh/terraform-provider-ovh v0.36.1 - github.com/pulumi/pulumi-terraform-bridge/v3 v3.70.0 - github.com/pulumi/pulumi/sdk/v3 v3.99.0 + github.com/ovh/terraform-provider-ovh v0.37.0 + github.com/pulumi/pulumi-terraform-bridge/pf v0.27.0 + github.com/pulumi/pulumi-terraform-bridge/v3 v3.74.0 + github.com/pulumi/pulumi/sdk/v3 v3.105.0 ) require ( - cloud.google.com/go v0.110.8 // indirect - cloud.google.com/go/compute v1.23.0 // indirect + cloud.google.com/go v0.110.10 // indirect + cloud.google.com/go/compute v1.23.3 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect - cloud.google.com/go/iam v1.1.2 // indirect - cloud.google.com/go/kms v1.15.2 // indirect + cloud.google.com/go/iam v1.1.5 // indirect + cloud.google.com/go/kms v1.15.5 // indirect cloud.google.com/go/logging v1.8.1 // indirect - cloud.google.com/go/longrunning v0.5.1 // indirect - cloud.google.com/go/storage v1.30.1 // indirect + cloud.google.com/go/longrunning v0.5.4 // indirect + cloud.google.com/go/storage v1.35.1 // indirect dario.cat/mergo v1.0.0 // indirect - github.com/Azure/azure-sdk-for-go v66.0.0+incompatible // indirect - github.com/Azure/go-autorest v14.2.0+incompatible // indirect - github.com/Azure/go-autorest/autorest v0.11.28 // indirect - github.com/Azure/go-autorest/autorest/adal v0.9.21 // indirect - github.com/Azure/go-autorest/autorest/azure/auth v0.5.11 // indirect - github.com/Azure/go-autorest/autorest/azure/cli v0.4.6 // indirect - github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect - github.com/Azure/go-autorest/autorest/to v0.4.0 // indirect - github.com/Azure/go-autorest/autorest/validation v0.3.1 // indirect - github.com/Azure/go-autorest/logger v0.2.1 // indirect - github.com/Azure/go-autorest/tracing v0.6.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.1 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v1.2.0 // indirect github.com/BurntSushi/toml v1.2.1 // indirect github.com/Masterminds/goutils v1.1.1 // indirect github.com/Masterminds/semver v1.5.0 // indirect @@ -45,19 +41,21 @@ require ( github.com/armon/go-metrics v0.4.0 // indirect github.com/armon/go-radix v1.0.0 // indirect github.com/atotto/clipboard v0.1.4 // indirect - github.com/aws/aws-sdk-go v1.44.298 // indirect - github.com/aws/aws-sdk-go-v2 v1.17.3 // indirect - github.com/aws/aws-sdk-go-v2/config v1.15.15 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.12.10 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.9 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.27 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.21 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.3.16 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.9 // indirect - github.com/aws/aws-sdk-go-v2/service/kms v1.18.1 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.11.13 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.16.10 // indirect - github.com/aws/smithy-go v1.13.5 // indirect + github.com/aws/aws-sdk-go v1.49.0 // indirect + github.com/aws/aws-sdk-go-v2 v1.24.0 // indirect + github.com/aws/aws-sdk-go-v2/config v1.26.1 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.16.12 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.10 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.9 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.9 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.7.2 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.9 // indirect + github.com/aws/aws-sdk-go-v2/service/kms v1.27.5 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.18.5 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.5 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.26.5 // indirect + github.com/aws/smithy-go v1.19.0 // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect github.com/bgentry/speakeasy v0.1.0 // indirect @@ -72,7 +70,6 @@ require ( github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/deckarep/golang-set/v2 v2.5.0 // indirect - github.com/dimchansky/utfbom v1.1.1 // indirect github.com/djherbis/times v1.5.0 // indirect github.com/edsrzf/mmap-go v1.1.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect @@ -81,21 +78,21 @@ require ( github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/go-billy/v5 v5.5.0 // indirect - github.com/go-git/go-git/v5 v5.10.1 // indirect + github.com/go-git/go-git/v5 v5.11.0 // indirect github.com/gofrs/uuid v4.2.0+incompatible // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang-jwt/jwt/v4 v4.4.2 // indirect + github.com/golang-jwt/jwt/v5 v5.1.0 // indirect github.com/golang/glog v1.1.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/go-cmp v0.6.0 // indirect github.com/google/go-querystring v1.1.0 // indirect - github.com/google/s2a-go v0.1.4 // indirect + github.com/google/s2a-go v0.1.7 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect - github.com/google/uuid v1.3.1 // indirect + github.com/google/uuid v1.4.0 // indirect github.com/google/wire v0.5.0 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.2.4 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect github.com/googleapis/gax-go/v2 v2.12.0 // indirect github.com/gorilla/mux v1.8.0 // indirect github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect @@ -125,11 +122,13 @@ require ( github.com/hashicorp/logutils v1.0.0 // indirect github.com/hashicorp/terraform-exec v0.19.0 // indirect github.com/hashicorp/terraform-json v0.18.0 // indirect - github.com/hashicorp/terraform-plugin-framework v1.4.2 // indirect - github.com/hashicorp/terraform-plugin-go v0.20.0 // indirect + github.com/hashicorp/terraform-plugin-framework v1.5.0 // indirect + github.com/hashicorp/terraform-plugin-go v0.21.0 // indirect github.com/hashicorp/terraform-plugin-log v0.9.0 // indirect + github.com/hashicorp/terraform-plugin-mux v0.14.0 // indirect github.com/hashicorp/terraform-plugin-sdk v1.8.0 // indirect github.com/hashicorp/terraform-plugin-sdk/v2 v2.31.0 // indirect + github.com/hashicorp/terraform-plugin-testing v1.6.0 // indirect github.com/hashicorp/terraform-registry-address v0.2.3 // indirect github.com/hashicorp/terraform-svchost v0.1.1 // indirect github.com/hashicorp/vault/api v1.8.2 // indirect @@ -144,6 +143,7 @@ require ( github.com/json-iterator/go v1.1.12 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect github.com/klauspost/compress v1.15.11 // indirect + github.com/kylelemons/godebug v1.1.0 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.19 // indirect @@ -173,16 +173,17 @@ require ( github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386 // indirect github.com/pierrec/lz4 v2.6.1+incompatible // indirect github.com/pjbgf/sha1cd v0.3.0 // indirect + github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pkg/term v1.1.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/posener/complete v1.2.3 // indirect github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect github.com/pulumi/esc v0.6.2 // indirect - github.com/pulumi/pulumi-java/pkg v0.9.8 // indirect - github.com/pulumi/pulumi-terraform-bridge/x/muxer v0.0.6 // indirect - github.com/pulumi/pulumi-yaml v1.4.4 // indirect - github.com/pulumi/pulumi/pkg/v3 v3.99.0 // indirect + github.com/pulumi/pulumi-java/pkg v0.9.9 // indirect + github.com/pulumi/pulumi-terraform-bridge/x/muxer v0.0.7 // indirect + github.com/pulumi/pulumi-yaml v1.5.0 // indirect + github.com/pulumi/pulumi/pkg/v3 v3.105.0 // indirect github.com/pulumi/schema-tools v0.1.2 // indirect github.com/pulumi/terraform-diff-reader v0.0.2 // indirect github.com/rivo/uniseg v0.4.4 // indirect @@ -217,27 +218,27 @@ require ( github.com/zclconf/go-cty v1.14.1 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/atomic v1.9.0 // indirect - gocloud.dev v0.27.0 // indirect + gocloud.dev v0.36.0 // indirect gocloud.dev/secrets/hashivault v0.27.0 // indirect - golang.org/x/crypto v0.17.0 // indirect + golang.org/x/crypto v0.18.0 // indirect golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa // indirect golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.18.0 // indirect - golang.org/x/oauth2 v0.13.0 // indirect + golang.org/x/net v0.19.0 // indirect + golang.org/x/oauth2 v0.14.0 // indirect golang.org/x/sync v0.5.0 // indirect - golang.org/x/sys v0.15.0 // indirect - golang.org/x/term v0.15.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/term v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect - golang.org/x/time v0.3.0 // indirect + golang.org/x/time v0.4.0 // indirect golang.org/x/tools v0.15.0 // indirect - golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - google.golang.org/api v0.128.0 // indirect + golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect + google.golang.org/api v0.151.0 // indirect google.golang.org/appengine v1.6.8 // indirect - google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97 // indirect - google.golang.org/grpc v1.60.0 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/genproto v0.0.0-20231120223509-83a465c0220f // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20231120223509-83a465c0220f // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f // indirect + google.golang.org/grpc v1.61.0 // indirect + google.golang.org/protobuf v1.32.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/square/go-jose.v2 v2.6.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect diff --git a/provider/go.sum b/provider/go.sum index 5ec7d10f..b784f6f6 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -40,8 +40,8 @@ cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRY cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM= cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I= cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= -cloud.google.com/go v0.110.8 h1:tyNdfIxjzaWctIiLYOTalaLKZ17SI44SKFW26QbOhME= -cloud.google.com/go v0.110.8/go.mod h1:Iz8AkXJf1qmxC3Oxoep8R1T36w8B92yU29PcBhHO5fk= +cloud.google.com/go v0.110.10 h1:LXy9GEO+timppncPIAZoOj3l58LIU9k+kn48AN7IO3Y= +cloud.google.com/go v0.110.10/go.mod h1:v1OoFqYxiBkUrruItNM3eT4lLByNjxmJSV/xDKJNnic= cloud.google.com/go/accessapproval v1.4.0/go.mod h1:zybIuC3KpDOvotz59lFe5qxRZx6C75OtwbisN56xYB4= cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw= cloud.google.com/go/accessapproval v1.6.0/go.mod h1:R0EiYnwV5fsRFiKZkPHr6mwyk2wxUJ30nL4j2pcFY2E= @@ -178,8 +178,8 @@ cloud.google.com/go/compute v1.15.1/go.mod h1:bjjoF/NtFUrkD/urWfdHaKuOPDR5nWIs63 cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= cloud.google.com/go/compute v1.19.0/go.mod h1:rikpw2y+UMidAe9tISo04EHNOIf42RLYF/q8Bs93scU= cloud.google.com/go/compute v1.19.1/go.mod h1:6ylj3a05WF8leseCdIf77NK0g1ey+nj5IKd5/kvShxE= -cloud.google.com/go/compute v1.23.0 h1:tP41Zoavr8ptEqaW6j+LQOnyBBhO7OkOMAGrgLopTwY= -cloud.google.com/go/compute v1.23.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= +cloud.google.com/go/compute v1.23.3 h1:6sVlXXBmbd7jNX0Ipq0trII3e4n1/MsADLK6a+aiVlk= +cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZEXYonfTBHHFPO/4UU= cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= @@ -320,8 +320,8 @@ cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGE cloud.google.com/go/iam v0.11.0/go.mod h1:9PiLDanza5D+oWFZiH1uG+RnRCfEGKoyl6yo4cgWZGY= cloud.google.com/go/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY= cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= -cloud.google.com/go/iam v1.1.2 h1:gacbrBdWcoVmGLozRuStX45YKvJtzIjJdAolzUs1sm4= -cloud.google.com/go/iam v1.1.2/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU= +cloud.google.com/go/iam v1.1.5 h1:1jTsCu4bcsNsE4iiqNT5SHwrDRCfRmIaaaVFhRveTJI= +cloud.google.com/go/iam v1.1.5/go.mod h1:rB6P/Ic3mykPbFio+vo7403drjlgvoWfYpJhMXEbzv8= cloud.google.com/go/iap v1.4.0/go.mod h1:RGFwRJdihTINIe4wZ2iCP0zF/qu18ZwyKxrhMhygBEc= cloud.google.com/go/iap v1.5.0/go.mod h1:UH/CGgKd4KyohZL5Pt0jSKE4m3FR51qg6FKQ/z/Ix9A= cloud.google.com/go/iap v1.6.0/go.mod h1:NSuvI9C/j7UdjGjIde7t7HBz+QTwBcapPE07+sSRcLk= @@ -341,8 +341,8 @@ cloud.google.com/go/kms v1.8.0/go.mod h1:4xFEhYFqvW+4VMELtZyxomGSYtSQKzM178ylFW4 cloud.google.com/go/kms v1.9.0/go.mod h1:qb1tPTgfF9RQP8e1wq4cLFErVuTJv7UsSC915J8dh3w= cloud.google.com/go/kms v1.10.0/go.mod h1:ng3KTUtQQU9bPX3+QGLsflZIHlkbn8amFAMY63m8d24= cloud.google.com/go/kms v1.10.1/go.mod h1:rIWk/TryCkR59GMC3YtHtXeLzd634lBbKenvyySAyYI= -cloud.google.com/go/kms v1.15.2 h1:lh6qra6oC4AyWe5fUUUBe/S27k12OHAleOOOw6KakdE= -cloud.google.com/go/kms v1.15.2/go.mod h1:3hopT4+7ooWRCjc2DxgnpESFxhIraaI2IpAVUEhbT/w= +cloud.google.com/go/kms v1.15.5 h1:pj1sRfut2eRbD9pFRjNnPNg/CzJPuQAzUujMIM1vVeM= +cloud.google.com/go/kms v1.15.5/go.mod h1:cU2H5jnp6G2TDpUGZyqTCoy1n16fbubHZjmVXSMtwDI= cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= cloud.google.com/go/language v1.7.0/go.mod h1:DJ6dYN/W+SQOjF8e1hLQXMF21AkH2w9wiPzPCJa2MIE= @@ -358,8 +358,8 @@ cloud.google.com/go/logging v1.8.1/go.mod h1:TJjR+SimHwuC8MZ9cjByQulAMgni+RkXeI3 cloud.google.com/go/longrunning v0.1.1/go.mod h1:UUFxuDWkv22EuY93jjmDMFT5GPQKeFVJBIF6QlTqdsE= cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc= cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= -cloud.google.com/go/longrunning v0.5.1 h1:Fr7TXftcqTudoyRJa113hyaqlGdiBQkp0Gq7tErFDWI= -cloud.google.com/go/longrunning v0.5.1/go.mod h1:spvimkwdz6SPWKEt/XBij79E9fiTkHSQl/fRUUQJYJc= +cloud.google.com/go/longrunning v0.5.4 h1:w8xEcbZodnA2BbW6sVirkkoC+1gP8wS57EUUgGS0GVg= +cloud.google.com/go/longrunning v0.5.4/go.mod h1:zqNVncI0BOP8ST6XQD1+VcvuShMmq7+xFSzOL++V0dI= cloud.google.com/go/managedidentities v1.3.0/go.mod h1:UzlW3cBOiPrzucO5qWkNkh0w33KFtBJU281hacNvsdE= cloud.google.com/go/managedidentities v1.4.0/go.mod h1:NWSBYbEMgqmbZsLIyKvxrYbtqOsxY1ZrGM+9RgDqInM= cloud.google.com/go/managedidentities v1.5.0/go.mod h1:+dWcZ0JlUmpuxpIDfyP5pP5y0bLdRwOS4Lp7gMni/LA= @@ -551,8 +551,8 @@ cloud.google.com/go/storage v1.24.0/go.mod h1:3xrJEFMXBsQLgxwThyjuD3aYlroL0TMRec cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4= -cloud.google.com/go/storage v1.30.1 h1:uOdMxAs8HExqBlnLtnQyP0YkvbiDpdGShGKtx6U/oNM= -cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E= +cloud.google.com/go/storage v1.35.1 h1:B59ahL//eDfx2IIKFBeT5Atm9wnNmj3+8xG/W4WB//w= +cloud.google.com/go/storage v1.35.1/go.mod h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8= cloud.google.com/go/storagetransfer v1.5.0/go.mod h1:dxNzUopWy7RQevYFHewchb29POFv3/AaBgnhqzqiK0w= cloud.google.com/go/storagetransfer v1.6.0/go.mod h1:y77xm4CQV/ZhFZH75PLEXY0ROiS7Gh6pSKrM8dJyg6I= cloud.google.com/go/storagetransfer v1.7.0/go.mod h1:8Giuj1QNb1kfLAiWM1bN6dHzfdlDAVC9rv9abHot2W4= @@ -634,15 +634,24 @@ github.com/Azure/azure-amqp-common-go/v3 v3.2.3/go.mod h1:7rPmbSfszeovxGfc5fSAXE github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go v63.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go v65.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/azure-sdk-for-go v66.0.0+incompatible h1:bmmC38SlE8/E81nNADlgmVGurPWMHDX2YNXVQMrBpEE= github.com/Azure/azure-sdk-for-go v66.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go/sdk/azcore v0.19.0/go.mod h1:h6H6c8enJmmocHUbLiiGY6sx7f9i+X3m1CHdd5c6Rdw= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.0.0/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.1/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.0 h1:fb8kj/Dh4CSwgsOzHeZY4Xh68cFVbzXx+ONXGMY//4w= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.0/go.mod h1:uReU2sSxZExRPBAg3qKzmAucSi51+SP1OhohieR821Q= github.com/Azure/azure-sdk-for-go/sdk/azidentity v0.11.0/go.mod h1:HcM1YX14R7CJcghJGOYCgdezslRSVzqwLf/q+4Y2r/0= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.0.0/go.mod h1:+6sju8gk8FRmSajX3Oz4G5Gm7P+mbqE9FVaXXFYTkCM= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0 h1:BMAjVKJM0U/CYF27gA0ZMmXGkOcvfFtD0oHVZ1TIPRI= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0/go.mod h1:1fXstnBMas5kzG+S3q8UoJcmyU6nUeunJcMDHcRYHhs= github.com/Azure/azure-sdk-for-go/sdk/internal v0.7.0/go.mod h1:yqy467j36fJxcRV2TzfVZ1pCb5vxm4BtZPUdYWe/Xo8= github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.0 h1:d81/ng9rET2YqdVkVwkb6EXeRrLJIwyGnJcAlAWKwhs= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.0/go.mod h1:s4kgfzA0covAXNicZHDMN58jExvcng2mC/DepXiF1EI= +github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0 h1:m/sWOGCREuSBqg2htVQTBY8nOZpyajYztF0vUvSZTuM= +github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0/go.mod h1:Pu5Zksi2KrU7LPbZbNINx6fuVrUp/ffvpxdDj+i8LeE= +github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.1 h1:FbH3BbSb4bvGluTesZZ+ttN/MDsnMmQP36OSnDuSXqw= +github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.1/go.mod h1:9V2j0jn9jDEkCkv8w/bKTNppX/d0FVA1ud77xCIP4KA= github.com/Azure/azure-sdk-for-go/sdk/messaging/azservicebus v1.0.2/go.mod h1:LH9XQnMr2ZYxQdVdCrzLO9mxeDyrDFa6wbSI3x5zCZk= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.1/go.mod h1:eZ4g6GUvXiGulfIbbhh1Xr4XwUYaYaWMqzGD/284wCA= github.com/Azure/go-amqp v0.17.0/go.mod h1:9YJ3RhxRT1gquYnzpZO1vcYMMpAdJT+QEg6fwmw9Zlg= @@ -651,43 +660,34 @@ github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX github.com/Azure/go-ansiterm v0.0.0-20210608223527-2377c96fe795/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Azure/go-autorest v10.8.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= -github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw= github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA= github.com/Azure/go-autorest/autorest v0.11.24/go.mod h1:G6kyRlFnTuSbEYkQGawPfsCswgme4iYf6rfSKUDzbCc= github.com/Azure/go-autorest/autorest v0.11.25/go.mod h1:7l8ybrIdUmGqZMTD0sRtAr8NvbHjfofbf8RSP2q7w7U= github.com/Azure/go-autorest/autorest v0.11.27/go.mod h1:7l8ybrIdUmGqZMTD0sRtAr8NvbHjfofbf8RSP2q7w7U= -github.com/Azure/go-autorest/autorest v0.11.28 h1:ndAExarwr5Y+GaHE6VCaY1kyS/HwwGGyuimVhWsHOEM= github.com/Azure/go-autorest/autorest v0.11.28/go.mod h1:MrkzG3Y3AH668QyF9KRk5neJnGgmhQ6krbhR8Q5eMvA= github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg= github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= github.com/Azure/go-autorest/autorest/adal v0.9.18/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ= github.com/Azure/go-autorest/autorest/adal v0.9.20/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ= -github.com/Azure/go-autorest/autorest/adal v0.9.21 h1:jjQnVFXPfekaqb8vIsv2G1lxshoW+oGv4MDlhRtnYZk= github.com/Azure/go-autorest/autorest/adal v0.9.21/go.mod h1:zua7mBUaCc5YnSLKYgGJR/w5ePdMDA6H56upLsHzA9U= -github.com/Azure/go-autorest/autorest/azure/auth v0.5.11 h1:P6bYXFoao05z5uhOQzbC3Qd8JqF3jUoocoTeIxkp2cA= github.com/Azure/go-autorest/autorest/azure/auth v0.5.11/go.mod h1:84w/uV8E37feW2NCJ08uT9VBfjfUHpgLVnG2InYD6cg= github.com/Azure/go-autorest/autorest/azure/cli v0.4.5/go.mod h1:ADQAXrkgm7acgWVUNamOgh8YNrv4p27l3Wc55oVfpzg= -github.com/Azure/go-autorest/autorest/azure/cli v0.4.6 h1:w77/uPk80ZET2F+AfQExZyEWtn+0Rk/uw17m9fv5Ajc= github.com/Azure/go-autorest/autorest/azure/cli v0.4.6/go.mod h1:piCfgPho7BiIDdEQ1+g4VmKyD5y+p/XtSNqE6Hc4QD0= -github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw= github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= -github.com/Azure/go-autorest/autorest/mocks v0.4.2 h1:PGN4EDXnuQbojHbU0UWoNvmu9AGVwYHG9/fkDYhtAfw= github.com/Azure/go-autorest/autorest/mocks v0.4.2/go.mod h1:Vy7OitM9Kei0i1Oj+LvyAWMXJHeKH1MVlzFugfVrmyU= -github.com/Azure/go-autorest/autorest/to v0.4.0 h1:oXVqrxakqqV1UZdSazDOPOLvOIz+XA683u8EctwboHk= github.com/Azure/go-autorest/autorest/to v0.4.0/go.mod h1:fE8iZBn7LQR7zH/9XU2NcPR4o9jEImooCeWJcYV/zLE= -github.com/Azure/go-autorest/autorest/validation v0.3.1 h1:AgyqjAd94fwNAoTjl/WQXg4VvFeRFpO+UhNyRXqF1ac= github.com/Azure/go-autorest/autorest/validation v0.3.1/go.mod h1:yhLgjC0Wda5DYXl6JAsWyUe4KVNffhoDhG0zVzUMo3E= github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= -github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg= github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= -github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0/go.mod h1:Vt9sXTKwMyGcOxSmLDMnGPgqsUg7m8pe215qMLrDXw4= +github.com/AzureAD/microsoft-authentication-library-for-go v1.2.0 h1:hVeq+yCyUi+MsoO/CU95yqCIcdzra5ovzk8Q2BBpV2M= +github.com/AzureAD/microsoft-authentication-library-for-go v1.2.0/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak= github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= @@ -816,56 +816,67 @@ github.com/aws/aws-sdk-go v1.43.31/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4 github.com/aws/aws-sdk-go v1.44.45/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= github.com/aws/aws-sdk-go v1.44.68/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= -github.com/aws/aws-sdk-go v1.44.298 h1:5qTxdubgV7PptZJmp/2qDwD2JL187ePL7VOxsSh1i3g= -github.com/aws/aws-sdk-go v1.44.298/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.49.0 h1:g9BkW1fo9GqKfwg2+zCD+TW/D36Ux+vtfJ8guF4AYmY= +github.com/aws/aws-sdk-go v1.49.0/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/aws/aws-sdk-go-v2 v1.16.8/go.mod h1:6CpKuLXg2w7If3ABZCl/qZ6rEgwtjZTn4eAf4RcEyuw= -github.com/aws/aws-sdk-go-v2 v1.17.3 h1:shN7NlnVzvDUgPQ+1rLMSxY8OWRNDRYtiqe0p/PgrhY= -github.com/aws/aws-sdk-go-v2 v1.17.3/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.3 h1:S/ZBwevQkr7gv5YxONYpGQxlMFFYSRfz3RMcjsC9Qhk= +github.com/aws/aws-sdk-go-v2 v1.24.0 h1:890+mqQ+hTpNuw0gGP6/4akolQkSToDJgHfQE7AwGuk= +github.com/aws/aws-sdk-go-v2 v1.24.0/go.mod h1:LNh45Br1YAkEKaAqvmE1m8FUx6a5b/V0oAKV7of29b4= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.3/go.mod h1:gNsR5CaXKmQSSzrmGxmwmct/r+ZBfbxorAuXYsj/M5Y= -github.com/aws/aws-sdk-go-v2/config v1.15.15 h1:yBV+J7Au5KZwOIrIYhYkTGJbifZPCkAnCFSvGsF3ui8= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.5.4 h1:OCs21ST2LrepDfD3lwlQiOqIGp6JiEUqG84GzTDoyJs= github.com/aws/aws-sdk-go-v2/config v1.15.15/go.mod h1:A1Lzyy/o21I5/s2FbyX5AevQfSVXpvvIDCoVFD0BC4E= -github.com/aws/aws-sdk-go-v2/credentials v1.12.10 h1:7gGcMQePejwiKoDWjB9cWnpfVdnz/e5JwJFuT6OrroI= +github.com/aws/aws-sdk-go-v2/config v1.26.1 h1:z6DqMxclFGL3Zfo+4Q0rLnAZ6yVkzCRxhRMsiRQnD1o= +github.com/aws/aws-sdk-go-v2/config v1.26.1/go.mod h1:ZB+CuKHRbb5v5F0oJtGdhFTelmrxd4iWO1lf0rQwSAg= github.com/aws/aws-sdk-go-v2/credentials v1.12.10/go.mod h1:g5eIM5XRs/OzIIK81QMBl+dAuDyoLN0VYaLP+tBqEOk= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.9 h1:hz8tc+OW17YqxyFFPSkvfSikbqWcyyHRyPVSTzC0+aI= +github.com/aws/aws-sdk-go-v2/credentials v1.16.12 h1:v/WgB8NxprNvr5inKIiVVrXPuuTegM+K8nncFkr1usU= +github.com/aws/aws-sdk-go-v2/credentials v1.16.12/go.mod h1:X21k0FjEJe+/pauud82HYiQbEr9jRKY3kXEIQ4hXeTQ= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.9/go.mod h1:KDCCm4ONIdHtUloDcFvK2+vshZvx4Zmj7UMDfusuz5s= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.21 h1:bpiKFJ9aC0xTVpygSRRRL/YHC1JZ+pHQHENATHuoiwo= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.10 h1:w98BT5w+ao1/r5sUuiH6JkVzjowOKeOJRHERyy1vh58= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.10/go.mod h1:K2WGI7vUvkIv1HoNbfBA1bvIZ+9kL3YVmWxeKuLQsiw= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.21/go.mod h1:iIYPrQ2rYfZiB/iADYlhj9HHZ9TTi6PqKQPAqygohbE= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.15.7 h1:FnLf60PtjXp8ZOzQfhJVsqF0OtYKQZWQfqOLshh8YXg= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.15/go.mod h1:pWrr2OoHlT7M/Pd2y4HV3gJyPb3qj5qMmnPkKSNPYK4= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.27 h1:I3cakv2Uy1vNmmhRQmFptYDxOvBnwCdNwyw63N0RaRU= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.27/go.mod h1:a1/UpzeyBBerajpnP5nGZa9mGzsBn5cOKxm6NWQsvoI= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.9 h1:v+HbZaCGmOwnTTVS86Fleq0vPzOd7tnJGbFhP0stNLs= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.9/go.mod h1:Xjqy+Nyj7VDLBtCMkQYOw1QYfAEZCVLrfI0ezve8wd4= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.9/go.mod h1:08tUpeSGN33QKSO7fwxXczNfiwCpbj+GxK6XKwqWVv0= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.21 h1:5NbbMrIzmUn/TXFqAle6mgrH5m9cOvMLRGL7pnG8tRE= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.21/go.mod h1:+Gxn8jYn5k9ebfHEqlhrMirFjSW0v0C9fI+KN5vk2kE= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.16 h1:f0ySVcmQhwmzn7zQozd8wBM3yuGBfzdpsOaKQ0/Epzw= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.9 h1:N94sVhRACtXyVcjXxrwK1SKFIJrA9pOJ5yu2eSHnmls= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.9/go.mod h1:hqamLz7g1/4EJP+GH5NBhcUMLjW+gKLQabgyz6/7WAU= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.16/go.mod h1:CYmI+7x03jjJih8kBEEFKRQc40UjUokT0k7GbvrhhTc= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.6 h1:3L8pcjvgaSOs0zzZcMKzxDSkYKEpwJ2dNVDdxm68jAY= +github.com/aws/aws-sdk-go-v2/internal/ini v1.7.2 h1:GrSw8s0Gs/5zZ0SX+gX4zQjRnRsMJDJ2sLur1gRBhEM= +github.com/aws/aws-sdk-go-v2/internal/ini v1.7.2/go.mod h1:6fQQgfuGmw8Al/3M2IgIllycxV7ZW7WCdVSqfBeUiCY= github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.6/go.mod h1:O7Oc4peGZDEKlddivslfYFvAbgzvl/GH3J8j3JIGBXc= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.2.9 h1:ugD6qzjYtB7zM5PN/ZIeaAIyefPaD82G8+SJopgvUpw= github.com/aws/aws-sdk-go-v2/service/iam v1.19.0 h1:9vCynoqC+dgxZKrsjvAniyIopsv3RZFsZ6wkQ+yxtj8= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.3 h1:4n4KCtv5SUoT5Er5XV41huuzrCqepxlW3SDI9qHQebc= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.3/go.mod h1:gkb2qADY+OHaGLKNTYxMaQNacfeyQpZ4csDTQMeFmcw= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.10 h1:7LJcuRalaLw+GYQTMGmVUl4opg2HrDZkvn/L3KvIQfw= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4 h1:/b31bi3YVNlkzkBrm9LfpaKoaYZUxIAj4sHfOTmLfqw= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4/go.mod h1:2aGXHFmbInwgP9ZfpmdIfOELL79zhdNYNmReK8qDfdQ= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.10/go.mod h1:Qks+dxK3O+Z2deAhNo6cJ8ls1bam3tUGUAcgxQP1c70= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.9 h1:sHfDuhbOuuWSIAEDd3pma6p0JgUcR2iePxtCE8gfCxQ= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.2.9 h1:/90OR2XbSYfXucBMJ4U14wrjlfleq/0SB6dZDPncgmo= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.9/go.mod h1:yQowTpvdZkFVuHrLBXmczat4W+WJKg/PafBZnGBLga0= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.9 h1:sJdKvydGYDML9LTFcp6qq6Z5fIjN0Rdq2Gvw1hUg8tc= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.9 h1:Nf2sHxjMJR8CSImIVCONRi4g0Su3J+TSTbS7G0pUeMU= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.9/go.mod h1:idky4TER38YIjr2cADF1/ugFMKvZV7p//pVeV5LZbF0= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.9/go.mod h1:Rc5+wn2k8gFSi3V1Ch4mhxOzjMh+bYSXVFfVaqowQOY= -github.com/aws/aws-sdk-go-v2/service/kms v1.18.1 h1:y07kzPdcjuuyDVYWf1CCsQQ6kcAWMbFy+yIJ71xQBS0= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.16.9 h1:iEAeF6YC3l4FzlJPP9H3Ko1TXpdjdqWffxXjp8SY6uk= github.com/aws/aws-sdk-go-v2/service/kms v1.18.1/go.mod h1:4PZMUkc9rXHWGVB5J9vKaZy3D7Nai79ORworQ3ASMiM= -github.com/aws/aws-sdk-go-v2/service/s3 v1.27.2 h1:NvzGue25jKnuAsh6yQ+TZ4ResMcnp49AWgWGm2L4b5o= +github.com/aws/aws-sdk-go-v2/service/kms v1.27.5 h1:7lKTr8zJ2nVaVgyII+7hUayTi7xWedMuANiNVXiD2S8= +github.com/aws/aws-sdk-go-v2/service/kms v1.27.5/go.mod h1:D9FVDkZjkZnnFHymJ3fPVz0zOUlNSd0xcIIVmmrAac8= github.com/aws/aws-sdk-go-v2/service/s3 v1.27.2/go.mod h1:u+566cosFI+d+motIz3USXEh6sN8Nq4GrNXSg2RXVMo= +github.com/aws/aws-sdk-go-v2/service/s3 v1.47.5 h1:Keso8lIOS+IzI2MkPZyK6G0LYcK3My2LQ+T5bxghEAY= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.15.14/go.mod h1:xakbH8KMsQQKqzX87uyyzTHshc/0/Df8bsTneTS5pFU= github.com/aws/aws-sdk-go-v2/service/sns v1.17.10/go.mod h1:uITsRNVMeCB3MkWpXxXw0eDz8pW4TYLzj+eyQtbhSxM= github.com/aws/aws-sdk-go-v2/service/sqs v1.19.1/go.mod h1:A94o564Gj+Yn+7QO1eLFeI7UVv3riy/YBFOfICVqFvU= github.com/aws/aws-sdk-go-v2/service/ssm v1.27.6/go.mod h1:fiFzQgj4xNOg4/wqmAiPvzgDMXPD+cUEplX/CYn+0j0= -github.com/aws/aws-sdk-go-v2/service/sso v1.11.13 h1:DQpf+al+aWozOEmVEdml67qkVZ6vdtGUi71BZZWw40k= github.com/aws/aws-sdk-go-v2/service/sso v1.11.13/go.mod h1:d7ptRksDDgvXaUvxyHZ9SYh+iMDymm94JbVcgvSYSzU= -github.com/aws/aws-sdk-go-v2/service/sts v1.16.10 h1:7tquJrhjYz2EsCBvA9VTl+sBAAh1bv7h/sGASdZOGGo= +github.com/aws/aws-sdk-go-v2/service/sso v1.18.5 h1:ldSFWz9tEHAwHNmjx2Cvy1MjP5/L9kNoR0skc6wyOOM= +github.com/aws/aws-sdk-go-v2/service/sso v1.18.5/go.mod h1:CaFfXLYL376jgbP7VKC96uFcU8Rlavak0UlAwk1Dlhc= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.5 h1:2k9KmFawS63euAkY4/ixVNsYYwrwnd5fIvgEKkfZFNM= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.5/go.mod h1:W+nd4wWDVkSUIox9bacmkBP5NMFQeTJ/xqNabpzSR38= github.com/aws/aws-sdk-go-v2/service/sts v1.16.10/go.mod h1:cftkHYN6tCDNfkSasAmclSfl4l7cySoay8vz7p/ce0E= +github.com/aws/aws-sdk-go-v2/service/sts v1.26.5 h1:5UYvv8JUvllZsRnfrcMQ+hJ9jNICmcgKPAO1CER25Wg= +github.com/aws/aws-sdk-go-v2/service/sts v1.26.5/go.mod h1:XX5gh4CB7wAs4KhcF46G6C8a2i7eupU19dcAAE+EydU= github.com/aws/smithy-go v1.12.0/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= -github.com/aws/smithy-go v1.13.5 h1:hgz0X/DX0dGqTYpGALqXJoRKRj5oQ7150i5FdTePzO8= -github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= +github.com/aws/smithy-go v1.19.0 h1:KWFKQV80DpP3vJrrA9sVAHQ5gc2z8i4EzrLhLlWXcBM= +github.com/aws/smithy-go v1.19.0/go.mod h1:NukqUGpCZIILqqiV0NIjeFh24kd/FAa4beRb6nbIUPE= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= @@ -1108,12 +1119,12 @@ github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8 github.com/dgryski/go-sip13 v0.0.0-20200911182023-62edffca9245/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/digitalocean/godo v1.78.0/go.mod h1:GBmu8MkjZmNARE7IXRPmkbbnocNN8+uBm0xbEVw2LCs= github.com/digitalocean/godo v1.81.0/go.mod h1:BPCqvwbjbGqxuUnIKB4EvS/AX7IDnNmt5fwvIkWo+ew= -github.com/dimchansky/utfbom v1.1.1 h1:vV6w1AhK4VMnhBno/TPVCoK9U/LP0PkLCS9tbxHdi/U= github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE= github.com/djherbis/times v1.5.0 h1:79myA211VwPhFTqUk8xehWrsEO+zcIZj0zT8mXPVARU= github.com/djherbis/times v1.5.0/go.mod h1:5q7FDLvbNg1L/KaBmPcWlVR9NmoKo3+ucqUA3ijQhA0= github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= github.com/dnaeon/go-vcr v1.1.0/go.mod h1:M7tiix8f0r6mKKJ3Yq/kqU1OYf3MnfmBWVbPx/yU9ko= +github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY= @@ -1226,8 +1237,8 @@ github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgF github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20230305113008-0c11038e723f/go.mod h1:8LHG1a3SRW71ettAD/jW13h8c6AqjVSeL11RAdgaqpo= github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4= github.com/go-git/go-git/v5 v5.8.1/go.mod h1:FHFuoD6yGz5OSKEBK+aWN9Oah0q54Jxl0abmj6GnqAo= -github.com/go-git/go-git/v5 v5.10.1 h1:tu8/D8i+TWxgKpzQ3Vc43e+kkhXqtsZCKI/egajKnxk= -github.com/go-git/go-git/v5 v5.10.1/go.mod h1:uEuHjxkHap8kAl//V5F/nNWwqIYtP/402ddd05mp0wg= +github.com/go-git/go-git/v5 v5.11.0 h1:XIZc1p+8YzypNr34itUfSvYJcv+eYdTnTvOZ2vD3cA4= +github.com/go-git/go-git/v5 v5.11.0/go.mod h1:6GFcX2P3NM7FPBfpePbpLd21XxsgdAt+lKqXmCUiUCY= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -1352,8 +1363,9 @@ github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69 github.com/golang-jwt/jwt v3.2.1+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= -github.com/golang-jwt/jwt/v4 v4.4.2 h1:rcc4lwaZgFMCZ5jxF9ABolDcIHdBytAFgqFPbSJQAYs= github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v5 v5.1.0 h1:UGKbA/IPjtS6zLcdB7i5TyACMgSbOTiR8qzXgw8HWQU= +github.com/golang-jwt/jwt/v5 v5.1.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= @@ -1431,8 +1443,8 @@ github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= github.com/google/go-replayers/grpcreplay v1.1.0 h1:S5+I3zYyZ+GQz68OfbURDdt/+cSMqCK1wrvNx7WBzTE= github.com/google/go-replayers/grpcreplay v1.1.0/go.mod h1:qzAvJ8/wi57zq7gWqaE6AwLM6miiXUQwP1S+I9icmhk= -github.com/google/go-replayers/httpreplay v1.1.1 h1:H91sIMlt1NZzN7R+/ASswyouLJfW0WLW7fhyUFvDEkY= github.com/google/go-replayers/httpreplay v1.1.1/go.mod h1:gN9GeLIs7l6NUoVaSSnv2RiqK1NiwAmD0MrKeC9IIks= +github.com/google/go-replayers/httpreplay v1.2.0 h1:VM1wEyyjaoU53BwrOnaf9VhAyQQEEioJvFYxYcLRKzk= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -1463,8 +1475,8 @@ github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20220318212150-b2ab0324ddda/go.mod h1:KgnwoLYCZ8IQu3XUZ8Nc/bM9CCZFOyjUNOSygVozoDg= github.com/google/pprof v0.0.0-20220608213341-c488b8fa1db3/go.mod h1:gSuNB+gJaOiQKLEZ+q+PK9Mq3SOzhRcw2GsGS/FhYDk= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/s2a-go v0.1.4 h1:1kZ/sQM3srePvKs3tXAvQzo66XfcReoqFpIpIccE7Oc= -github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= +github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= +github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/subcommands v1.0.1/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= @@ -1473,8 +1485,8 @@ github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= -github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4= +github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/wire v0.5.0 h1:I7ELFeVBr3yfPIcc8+MWvrjk+3VjbcSzoXm3JVa+jD8= github.com/google/wire v0.5.0/go.mod h1:ngWDr9Qvq3yZA10YrxfyGELY/AFWGVpy9c1LTRi1EoU= github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= @@ -1482,8 +1494,8 @@ github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= github.com/googleapis/enterprise-certificate-proxy v0.2.1/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= -github.com/googleapis/enterprise-certificate-proxy v0.2.4 h1:uGy6JWR/uMIILU8wbf+OkstIrNiMjGpEIyhx8f6W7s4= -github.com/googleapis/enterprise-certificate-proxy v0.2.4/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= +github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= @@ -1649,17 +1661,22 @@ github.com/hashicorp/terraform-json v0.4.0/go.mod h1:eAbqb4w0pSlRmdvl8fOyHAi/+8j github.com/hashicorp/terraform-json v0.17.1/go.mod h1:Huy6zt6euxaY9knPAFKjUITn8QxUFIe9VuSzb4zn/0o= github.com/hashicorp/terraform-json v0.18.0 h1:pCjgJEqqDESv4y0Tzdqfxr/edOIGkjs8keY42xfNBwU= github.com/hashicorp/terraform-json v0.18.0/go.mod h1:qdeBs11ovMzo5puhrRibdD6d2Dq6TyE/28JiU4tIQxk= -github.com/hashicorp/terraform-plugin-framework v1.4.2 h1:P7a7VP1GZbjc4rv921Xy5OckzhoiO3ig6SGxwelD2sI= -github.com/hashicorp/terraform-plugin-framework v1.4.2/go.mod h1:GWl3InPFZi2wVQmdVnINPKys09s9mLmTZr95/ngLnbY= +github.com/hashicorp/terraform-plugin-framework v1.5.0 h1:8kcvqJs/x6QyOFSdeAyEgsenVOUeC/IyKpi2ul4fjTg= +github.com/hashicorp/terraform-plugin-framework v1.5.0/go.mod h1:6waavirukIlFpVpthbGd2PUNYaFedB0RwW3MDzJ/rtc= +github.com/hashicorp/terraform-plugin-framework-validators v0.10.0 h1:4L0tmy/8esP6OcvocVymw52lY0HyQ5OxB7VNl7k4bS0= github.com/hashicorp/terraform-plugin-go v0.19.0/go.mod h1:EhRSkEPNoylLQntYsk5KrDHTZJh9HQoumZXbOGOXmec= -github.com/hashicorp/terraform-plugin-go v0.20.0 h1:oqvoUlL+2EUbKNsJbIt3zqqZ7wi6lzn4ufkn/UA51xQ= -github.com/hashicorp/terraform-plugin-go v0.20.0/go.mod h1:Rr8LBdMlY53a3Z/HpP+ZU3/xCDqtKNCkeI9qOyT10QE= +github.com/hashicorp/terraform-plugin-go v0.21.0 h1:VSjdVQYNDKR0l2pi3vsFK1PdMQrw6vGOshJXMNFeVc0= +github.com/hashicorp/terraform-plugin-go v0.21.0/go.mod h1:piJp8UmO1uupCvC9/H74l2C6IyKG0rW4FDedIpwW5RQ= github.com/hashicorp/terraform-plugin-log v0.9.0 h1:i7hOA+vdAItN1/7UrfBqBwvYPQ9TFvymaRGZED3FCV0= github.com/hashicorp/terraform-plugin-log v0.9.0/go.mod h1:rKL8egZQ/eXSyDqzLUuwUYLVdlYeamldAHSxjUFADow= +github.com/hashicorp/terraform-plugin-mux v0.14.0 h1:+UeiTaYy8zPAk1pktNRp3288pIih8gxiRJ6O0e7fS0U= +github.com/hashicorp/terraform-plugin-mux v0.14.0/go.mod h1:UzkNhewtpuqSnBvo1ZXSagAxu+hQ+Ir3F5Mpm86dWn0= github.com/hashicorp/terraform-plugin-sdk v1.7.0/go.mod h1:OjgQmey5VxnPej/buEhe+YqKm0KNvV3QqU4hkqHqPCY= github.com/hashicorp/terraform-plugin-sdk v1.8.0 h1:HE1p52nzcgz88hIJmapUnkmM9noEjV3QhTOLaua5XUA= github.com/hashicorp/terraform-plugin-sdk v1.8.0/go.mod h1:OjgQmey5VxnPej/buEhe+YqKm0KNvV3QqU4hkqHqPCY= github.com/hashicorp/terraform-plugin-test v1.2.0/go.mod h1:QIJHYz8j+xJtdtLrFTlzQVC0ocr3rf/OjIpgZLK56Hs= +github.com/hashicorp/terraform-plugin-testing v1.6.0 h1:Wsnfh+7XSVRfwcr2jZYHsnLOnZl7UeaOBvsx6dl/608= +github.com/hashicorp/terraform-plugin-testing v1.6.0/go.mod h1:cJGG0/8j9XhHaJZRC+0sXFI4uzqQZ9Az4vh6C4GJpFE= github.com/hashicorp/terraform-registry-address v0.2.2/go.mod h1:LtwNbCihUoUZ3RYriyS2wF/lGPB6gF9ICLRtuDk7hSo= github.com/hashicorp/terraform-registry-address v0.2.3 h1:2TAiKJ1A3MAkZlH1YI/aTVcLZRu7JseiXNRHbOAyoTI= github.com/hashicorp/terraform-registry-address v0.2.3/go.mod h1:lFHA76T8jfQteVfT7caREqguFrW3c4MFSPhZB7HHgUM= @@ -2064,8 +2081,8 @@ github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnh github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= github.com/ovh/go-ovh v1.4.2 h1:ub4jVK6ERbiBTo4y5wbLCjeKCjGY+K36e7BviW+MaAU= github.com/ovh/go-ovh v1.4.2/go.mod h1:AkPXVtgwB6xlKblMjRKJJmjRp+ogrE7fz2lVgcQY8SY= -github.com/ovh/terraform-provider-ovh v0.36.1 h1:2lSNGub1fNfRMnknx+ahlf2jaqel3jwUPPrZLtxi0HI= -github.com/ovh/terraform-provider-ovh v0.36.1/go.mod h1:CBjNAllCoc1SMuGibWBJlLHOOm9FpRpf3FPT9INFbIw= +github.com/ovh/terraform-provider-ovh v0.37.0 h1:0X3lNqS4j0uWxPBnim1DUHEZ6/U/bv27g6IDQW7tTmk= +github.com/ovh/terraform-provider-ovh v0.37.0/go.mod h1:VIWdTfkugUjtdBAAU071QB0cj1q+++eDJ+ePigkU1xY= github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= @@ -2094,6 +2111,8 @@ github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4/go.mod h1:4OwLy04Bl9Ef3GJJCoec+30X3LQs/0/m4HFRt/2LUSA= github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4/go.mod h1:N6UoU20jOqggOuDwUaBQpluzLNDqif3kq9z2wpdYEfQ= +github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= +github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -2173,25 +2192,27 @@ github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435 github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE= github.com/pulumi/esc v0.6.2 h1:+z+l8cuwIauLSwXQS0uoI3rqB+YG4SzsZYtHfNoXBvw= github.com/pulumi/esc v0.6.2/go.mod h1:jNnYNjzsOgVTjCp0LL24NsCk8ZJxq4IoLQdCT0X7l8k= -github.com/pulumi/pulumi-java/pkg v0.9.8 h1:c8mYsalnRXA2Ibgvv6scefOn6mW1Vb0UT0mcDqjsivQ= -github.com/pulumi/pulumi-java/pkg v0.9.8/go.mod h1:c6rSw/+q4O0IImgJ9axxoC6QesbPYWBaG5gimbHouUQ= -github.com/pulumi/pulumi-terraform-bridge/testing v0.0.1 h1:SCg1gjfY9N4yn8U8peIUYATifjoDABkyR7H9lmefsfc= -github.com/pulumi/pulumi-terraform-bridge/v3 v3.70.0 h1:+o0c2gUjZURORGNftW4dEOm/E4rzh2JnK+z9PAwLjbE= -github.com/pulumi/pulumi-terraform-bridge/v3 v3.70.0/go.mod h1:jcdXdda230ZJJjzeRwWuFPRzq1EI8APwYVQIH32MoRk= -github.com/pulumi/pulumi-terraform-bridge/x/muxer v0.0.6 h1:uy8P3aaAbrOrGvytvCb2KsYqZMA9TJiY8IKeVQgNAJo= -github.com/pulumi/pulumi-terraform-bridge/x/muxer v0.0.6/go.mod h1:uw1IN0Mlvi5SL0cmWzmKqZ+ZDNueRIXkr9aE+XQkrug= -github.com/pulumi/pulumi-yaml v1.4.4 h1:BODM3hnmy/kjmbjxySNI5dmGURn2fczVql2MSGjdeQw= -github.com/pulumi/pulumi-yaml v1.4.4/go.mod h1:1hwsXFnT7hm2ZeftY5fzjkngjs2eT/rv9MsPE48Leb4= -github.com/pulumi/pulumi/pkg/v3 v3.99.0 h1:Mal/ncVw16RBw+0M7jwX4mDlma/X324PXotuHJHDa7s= -github.com/pulumi/pulumi/pkg/v3 v3.99.0/go.mod h1:Gk/N8qblqKI6+fTORH7oJi2SSWaOVTDhNwTrazoQPao= -github.com/pulumi/pulumi/sdk/v3 v3.99.0 h1:vsFoEEdweYg3Hm6/Jlj1sE2cLtauzoqAdVbLMcC7Cw8= -github.com/pulumi/pulumi/sdk/v3 v3.99.0/go.mod h1:wFM/6iAMlidgLDSF9QU+p3P+B+vg/xloFyVeZrVwA1w= +github.com/pulumi/providertest v0.0.10 h1:bx77G0JYPO2Alf/SHRP05XpAYMrboKJkMIVkbFclVhI= +github.com/pulumi/pulumi-java/pkg v0.9.9 h1:F3xJUtMFDVrTGCxb7Rh2Q8s6tj7gMfM5pcoUthz7vFY= +github.com/pulumi/pulumi-java/pkg v0.9.9/go.mod h1:LVF1zeg3UkToHWxb67V+zEIxQc3EdMnlot5NWSt+FpA= +github.com/pulumi/pulumi-terraform-bridge/pf v0.27.0 h1:D9XAlpWh2Ai65HrBsWNFvJbdS1kWo0aoiPl/T7wHSk0= +github.com/pulumi/pulumi-terraform-bridge/pf v0.27.0/go.mod h1:bxg00rjoF8jhIN9EIdwe+ptl+Ia3/Syb0ZEDCBh0CIw= +github.com/pulumi/pulumi-terraform-bridge/v3 v3.74.0 h1:cVsqcIJqgCosq9ib0rUyUBLEr3Mamz138JA7gqN21c8= +github.com/pulumi/pulumi-terraform-bridge/v3 v3.74.0/go.mod h1:WOKqq+pzEXcfoXbGPd4weBFIY6RQjzlKO365LPHKrB8= +github.com/pulumi/pulumi-terraform-bridge/x/muxer v0.0.7 h1:Z9vmfVTW0QtJrWh+DRR3UKiRZX23f45lFtdhQiUHEqE= +github.com/pulumi/pulumi-terraform-bridge/x/muxer v0.0.7/go.mod h1:T9zHpTHyVz2EyobzByFFpjfqgGtXO4C4bNqC0j29D2I= +github.com/pulumi/pulumi-yaml v1.5.0 h1:HfXu+WSFNpycref9CK935cViYJzXwSgHGWM/RepyrW0= +github.com/pulumi/pulumi-yaml v1.5.0/go.mod h1:AvKSmEQv2EkPbpvAQroR1eP1LkJGC8z5NDM34rVWOtg= +github.com/pulumi/pulumi/pkg/v3 v3.105.0 h1:bJG1vUiYH2gDF1pfBKlIABDNoJD2LvU1LmjjL+EbvuM= +github.com/pulumi/pulumi/pkg/v3 v3.105.0/go.mod h1:eZAFEFOwE/skElTfwetfyTxPebmWr5vOS5NSU9XwlVw= +github.com/pulumi/pulumi/sdk/v3 v3.105.0 h1:OKEeubZigWyQVnZS6udnFnZHZ/8OWXuUYv9ir3OY+vs= +github.com/pulumi/pulumi/sdk/v3 v3.105.0/go.mod h1:Ml3rpGfyZlI4zQCG7LN2XDSmH4XUNYdyBwJ3yEr/OpI= github.com/pulumi/schema-tools v0.1.2 h1:Fd9xvUjgck4NA+7/jSk7InqCUT4Kj940+EcnbQKpfZo= github.com/pulumi/schema-tools v0.1.2/go.mod h1:62lgj52Tzq11eqWTIaKd+EVyYAu5dEcDJxMhTjvMO/k= github.com/pulumi/terraform-diff-reader v0.0.2 h1:kTE4nEXU3/SYXESvAIem+wyHMI3abqkI3OhJ0G04LLI= github.com/pulumi/terraform-diff-reader v0.0.2/go.mod h1:sZ9FUzGO+yM41hsQHs/yIcj/Y993qMdBxBU5mpDmAfQ= -github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20230912190043-e6d96b3b8f7e h1:blSirnXqvm8JXLxwxelsBroUNRhOHakDO7cgJUYTdpQ= -github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20230912190043-e6d96b3b8f7e/go.mod h1:qH/34G25Ugdj5FcM95cSoXzUgIbgfhVLXCcEcYaMwq8= +github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20240202163305-e2a20ae13ef9 h1:k3SdGlmaJ49yaRV79Ktb5KGdPvuNfeiv4+oHXN+wyhs= +github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20240202163305-e2a20ae13ef9/go.mod h1:qH/34G25Ugdj5FcM95cSoXzUgIbgfhVLXCcEcYaMwq8= github.com/rakyll/embedmd v0.0.0-20171029212350-c8060a0752a2/go.mod h1:7jOTMgqac46PZcF54q6l2hkLEG8op93fZu61KmxWDV4= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= @@ -2518,8 +2539,9 @@ go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= -gocloud.dev v0.27.0 h1:j0WTUsnKTxCsWO7y8T+YCiBZUmLl9w/WIowqAY3yo0g= gocloud.dev v0.27.0/go.mod h1:YlYKhYsY5/1JdHGWQDkAuqkezVKowu7qbe9aIeUF6p0= +gocloud.dev v0.36.0 h1:q5zoXux4xkOZP473e1EZbG8Gq9f0vlg1VNH5Du/ybus= +gocloud.dev v0.36.0/go.mod h1:bLxah6JQVKBaIxzsr5BQLYB4IYdWHkMZdzCXlo6F0gg= gocloud.dev/secrets/hashivault v0.27.0 h1:AAeGJXr0tiHHJgg5tL8atOGktB4eK9EJAqkZbPKAcOo= gocloud.dev/secrets/hashivault v0.27.0/go.mod h1:offqsI5oj0B0bVHZdfk/88uIb3NnN93ia8py0yvRlHY= golang.org/x/arch v0.1.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= @@ -2558,7 +2580,6 @@ golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20211202192323-5770296d904e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220511200225-c6db032c6c88/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220517005047-85d78b3ac167/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= @@ -2570,8 +2591,8 @@ golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= -golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= -golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -2732,8 +2753,8 @@ golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= golang.org/x/net v0.13.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= -golang.org/x/net v0.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg= -golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= +golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= +golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -2768,8 +2789,8 @@ golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= -golang.org/x/oauth2 v0.13.0 h1:jDDenyj+WgFtmV3zYVoi8aE2BwtXFLWOA67ZfNWftiY= -golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0= +golang.org/x/oauth2 v0.14.0 h1:P0Vrf/2538nmC0H+pEQ3MNFRRnVR7RlqyVw+bvm26z0= +golang.org/x/oauth2 v0.14.0/go.mod h1:lAtNWgaWfL4cm7j2OV8TxGi9Qb7ECORx8DktCY74OwM= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -2898,6 +2919,7 @@ golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -2949,8 +2971,8 @@ golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -2967,8 +2989,8 @@ golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= -golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= -golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= +golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= +golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -3003,8 +3025,9 @@ golang.org/x/time v0.0.0-20220609170525-579cf78fd858/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.4.0 h1:Z81tqI5ddIoXDPvVQ7/7CC9TnLM7ubaFG2qXYd5BbYY= +golang.org/x/time v0.4.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -3108,8 +3131,9 @@ golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU= +golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0= @@ -3182,8 +3206,8 @@ google.golang.org/api v0.108.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/ google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI= google.golang.org/api v0.111.0/go.mod h1:qtFHvU9mhgTJegR31csQ+rwxyUTHOKFqCKWp1J0fdw0= google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg= -google.golang.org/api v0.128.0 h1:RjPESny5CnQRn9V6siglged+DZCgfu9l6mO9dkX9VOg= -google.golang.org/api v0.128.0/go.mod h1:Y611qgqaE92On/7g65MQgxYul3c0rEB894kniWLY750= +google.golang.org/api v0.151.0 h1:FhfXLO/NFdJIzQtCqjpysWwqKk8AzGWBUhMIx67cVDU= +google.golang.org/api v0.151.0/go.mod h1:ccy+MJ6nrYFgE3WgRx/AMXOxOmU8Q4hSa+jjibzhxcg= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -3346,16 +3370,16 @@ google.golang.org/genproto v0.0.0-20230330154414-c0448cd141ea/go.mod h1:UUQDJDOl google.golang.org/genproto v0.0.0-20230331144136-dcfb400f0633/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= google.golang.org/genproto v0.0.0-20230525234025-438c736192d0/go.mod h1:9ExIQyXL5hZrHzQceCwuSYwZZ5QZBazOcprJ5rgs3lY= google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk= +google.golang.org/genproto v0.0.0-20231120223509-83a465c0220f h1:Vn+VyHU5guc9KjB5KrjI2q0wCOWEOIh0OEsleqakHJg= +google.golang.org/genproto v0.0.0-20231120223509-83a465c0220f/go.mod h1:nWSwAFPb+qfNJXsoeO3Io7zf4tMSfN8EA8RlDA04GhY= google.golang.org/genproto/googleapis/api v0.0.0-20230525234020-1aefcd67740a/go.mod h1:ts19tUU+Z0ZShN1y3aPyq2+O3d5FUNNgT6FtOzmrNn8= google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= -google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU= -google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= +google.golang.org/genproto/googleapis/api v0.0.0-20231120223509-83a465c0220f h1:2yNACc1O40tTnrsbk9Cv6oxiW8pxI/pXj0wRtdlYmgY= +google.golang.org/genproto/googleapis/api v0.0.0-20231120223509-83a465c0220f/go.mod h1:Uy9bTZJqmfrw2rIBxgGLnamc78euZULUBrLZ9XTITKI= google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234015-3fc162c6f38a/go.mod h1:xURIpW9ES5+/GZhnV6beoEtxQrnkRGIfP5VQG2tCBLc= google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97 h1:6GQBEOdGkX6MMTLT9V+TjtIRZCw9VPD5Z+yHY9wMgS0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97/go.mod h1:v7nGkzlmW8P3n/bKmWBn2WpBjpOEx8Q6gMueudAmKfY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f h1:ultW7fxlIvee4HYrtnaRPon9HpEgFk5zYpmfMgtKB5I= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f/go.mod h1:L9KNLi232K1/xB6f7AlSX692koaRnKaWSR0stBki0Yc= google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= @@ -3408,8 +3432,8 @@ google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5v google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo= -google.golang.org/grpc v1.60.0 h1:6FQAR0kM31P6MRdeluor2w2gPaS4SVNrD/DNTxrQ15k= -google.golang.org/grpc v1.60.0/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM= +google.golang.org/grpc v1.61.0 h1:TOvOcuXn30kRao+gfcvsebNEa5iZIiLkisYEkf7R7o0= +google.golang.org/grpc v1.61.0/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -3429,8 +3453,9 @@ google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw google.golang.org/protobuf v1.28.2-0.20230222093303-bc1253ad3743/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= +google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/provider/resources.go b/provider/resources.go index 31a1e024..a96fb5bb 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -15,6 +15,8 @@ package ovh import ( + "context" + _ "embed" "fmt" "path/filepath" "unicode" @@ -23,6 +25,7 @@ import ( "github.com/ovh/pulumi-ovh/provider/pkg/version" "github.com/ovh/terraform-provider-ovh/ovh" + pfbridge "github.com/pulumi/pulumi-terraform-bridge/pf/tfbridge" "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfbridge" shim "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfshim" shimv2 "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfshim/sdk-v2" @@ -90,10 +93,20 @@ func preConfigureCallback(vars resource.PropertyMap, c shim.ResourceConfig) erro return nil } +//go:embed cmd/pulumi-resource-ovh/bridge-metadata.json +var bridgeMetadata []byte + // Provider returns additional overlaid schema and metadata associated with the provider.. func Provider() tfbridge.ProviderInfo { // Instantiate the Terraform provider - p := shimv2.NewProvider(ovh.Provider()) + //p := shimv2.NewProvider(ovh.Provider()) + + p := pfbridge.MuxShimWithPF( + context.Background(), + shimv2.NewProvider(ovh.Provider()), + &ovh.OvhProvider{}, + //shimv2.NewProvider(ovh.Provider()), + ) // Create a Pulumi provider mapping prov := tfbridge.ProviderInfo{ @@ -107,6 +120,10 @@ func Provider() tfbridge.ProviderInfo { // would like to be shown in the Pulumi Registry if this package is published // there. Publisher: "OVHcloud", + + // This is now required. + MetadataInfo: tfbridge.NewProviderMetadata(bridgeMetadata), + // LogoURL is optional but useful to help identify your package in the Pulumi Registry // if this package is published there. // @@ -170,6 +187,12 @@ func Provider() tfbridge.ProviderInfo { "ovh_cloud_project_containerregistry_oidc": { Tok: ovhResource(cloudProjectMod, "ContainerRegistryOIDC"), }, + "ovh_cloud_project_containerregistry_ip_restrictions_management": { + Tok: ovhResource(cloudProjectMod, "ContainerRegistryIPRestrictionsManagement"), + }, + "ovh_cloud_project_containerregistry_ip_restrictions_registry": { + Tok: ovhResource(cloudProjectMod, "ContainerRegistryIPRestrictionsRegistry"), + }, "ovh_cloud_project_database": { Tok: ovhResource(cloudProjectMod, "Database"), }, @@ -194,6 +217,9 @@ func Provider() tfbridge.ProviderInfo { "ovh_cloud_project_database_postgresql_user": { Tok: ovhResource(cloudProjectDbMod, "PostgresSqlUser"), }, + "ovh_cloud_project_database_postgresql_connection_pool": { + Tok: ovhResource(cloudProjectDbMod, "PostgresSqlConnectionPool"), + }, "ovh_cloud_project_database_m3db_namespace": { Tok: ovhResource(cloudProjectDbMod, "M3DbNamespace"), }, @@ -429,11 +455,9 @@ func Provider() tfbridge.ProviderInfo { }, "ovh_dbaas_logs_cluster": { Tok: ovhResource(dbaasMod, "LogsCluster"), - Fields: map[string]*tfbridge.SchemaInfo{ - "urn": { - Name: "DBaasURN", - }, - }, + }, + "ovh_iam_permissions_group": { + Tok: ovhResource(iamMod, "PermissionsGroup"), }, "ovh_iam_policy": { Tok: ovhResource(iamMod, "Policy"), @@ -477,6 +501,12 @@ func Provider() tfbridge.ProviderInfo { "ovh_cloud_project_containerregistry_oidc": { Tok: ovhDataSource(cloudProjectMod, "getContainerRegistryOIDC"), }, + "ovh_cloud_project_containerregistry_ip_restrictions_management": { + Tok: ovhDataSource(cloudProjectMod, "getContainerRegistryIPRestrictionsManagement"), + }, + "ovh_cloud_project_containerregistry_ip_restrictions_registry": { + Tok: ovhDataSource(cloudProjectMod, "getContainerRegistryIPRestrictionsRegistry"), + }, "ovh_cloud_project_database": { Tok: ovhDataSource(cloudProjectDbMod, "getDatabase"), }, @@ -525,6 +555,9 @@ func Provider() tfbridge.ProviderInfo { "ovh_cloud_project_database_postgresql_user": { Tok: ovhDataSource(cloudProjectDbMod, "getPostgresSqlUser"), }, + "ovh_cloud_project_database_postgresql_connection_pool": { + Tok: ovhDataSource(cloudProjectDbMod, "getPostgresSqlConnectionPool"), + }, "ovh_cloud_project_database_user": { Tok: ovhDataSource(cloudProjectDbMod, "getUser"), }, @@ -759,11 +792,12 @@ func Provider() tfbridge.ProviderInfo { }, "ovh_dbaas_logs_cluster": { Tok: ovhDataSource(dbaasMod, "getLogsCluster"), - Fields: map[string]*tfbridge.SchemaInfo{ - "urn": { - Name: "DBaasURN", - }, - }, + }, + "ovh_iam_permissions_group": { + Tok: ovhDataSource(iamMod, "getPermissionsGroup"), + }, + "ovh_iam_permissions_groups": { + Tok: ovhDataSource(iamMod, "getPermissionsGroups"), }, "ovh_iam_policies": { Tok: ovhDataSource(iamMod, "getPolicies"), diff --git a/sdk/dotnet/CloudProject/ContainerRegistryIPRestrictionsManagement.cs b/sdk/dotnet/CloudProject/ContainerRegistryIPRestrictionsManagement.cs new file mode 100644 index 00000000..6fd1f317 --- /dev/null +++ b/sdk/dotnet/CloudProject/ContainerRegistryIPRestrictionsManagement.cs @@ -0,0 +1,177 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.CloudProject +{ + /// + /// Apply IP restrictions container registry associated with a public cloud project on Harbor UI and API. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Ovh = Pulumi.Ovh; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var registry = Ovh.CloudProject.GetContainerRegistry.Invoke(new() + /// { + /// ServiceName = "XXXXXX", + /// RegistryId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx", + /// }); + /// + /// var my_mgt_iprestrictions = new Ovh.CloudProject.ContainerRegistryIPRestrictionsManagement("my-mgt-iprestrictions", new() + /// { + /// ServiceName = ovh_cloud_project_containerregistry.Registry.Service_name, + /// RegistryId = ovh_cloud_project_containerregistry.Registry.Id, + /// IpRestrictions = new[] + /// { + /// + /// { + /// { "ip_block", "xxx.xxx.xxx.xxx/xx" }, + /// { "description", "xxxxxxx" }, + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// + [OvhResourceType("ovh:CloudProject/containerRegistryIPRestrictionsManagement:ContainerRegistryIPRestrictionsManagement")] + public partial class ContainerRegistryIPRestrictionsManagement : global::Pulumi.CustomResource + { + /// + /// IP restrictions applied on Harbor UI and API. + /// + [Output("ipRestrictions")] + public Output>> IpRestrictions { get; private set; } = null!; + + /// + /// The id of the Managed Private Registry. + /// + [Output("registryId")] + public Output RegistryId { get; private set; } = null!; + + /// + /// The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + /// + [Output("serviceName")] + public Output ServiceName { get; private set; } = null!; + + + /// + /// Create a ContainerRegistryIPRestrictionsManagement resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public ContainerRegistryIPRestrictionsManagement(string name, ContainerRegistryIPRestrictionsManagementArgs args, CustomResourceOptions? options = null) + : base("ovh:CloudProject/containerRegistryIPRestrictionsManagement:ContainerRegistryIPRestrictionsManagement", name, args ?? new ContainerRegistryIPRestrictionsManagementArgs(), MakeResourceOptions(options, "")) + { + } + + private ContainerRegistryIPRestrictionsManagement(string name, Input id, ContainerRegistryIPRestrictionsManagementState? state = null, CustomResourceOptions? options = null) + : base("ovh:CloudProject/containerRegistryIPRestrictionsManagement:ContainerRegistryIPRestrictionsManagement", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/ovh/pulumi-ovh", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing ContainerRegistryIPRestrictionsManagement resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static ContainerRegistryIPRestrictionsManagement Get(string name, Input id, ContainerRegistryIPRestrictionsManagementState? state = null, CustomResourceOptions? options = null) + { + return new ContainerRegistryIPRestrictionsManagement(name, id, state, options); + } + } + + public sealed class ContainerRegistryIPRestrictionsManagementArgs : global::Pulumi.ResourceArgs + { + [Input("ipRestrictions", required: true)] + private InputList>? _ipRestrictions; + + /// + /// IP restrictions applied on Harbor UI and API. + /// + public InputList> IpRestrictions + { + get => _ipRestrictions ?? (_ipRestrictions = new InputList>()); + set => _ipRestrictions = value; + } + + /// + /// The id of the Managed Private Registry. + /// + [Input("registryId", required: true)] + public Input RegistryId { get; set; } = null!; + + /// + /// The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + /// + [Input("serviceName", required: true)] + public Input ServiceName { get; set; } = null!; + + public ContainerRegistryIPRestrictionsManagementArgs() + { + } + public static new ContainerRegistryIPRestrictionsManagementArgs Empty => new ContainerRegistryIPRestrictionsManagementArgs(); + } + + public sealed class ContainerRegistryIPRestrictionsManagementState : global::Pulumi.ResourceArgs + { + [Input("ipRestrictions")] + private InputList>? _ipRestrictions; + + /// + /// IP restrictions applied on Harbor UI and API. + /// + public InputList> IpRestrictions + { + get => _ipRestrictions ?? (_ipRestrictions = new InputList>()); + set => _ipRestrictions = value; + } + + /// + /// The id of the Managed Private Registry. + /// + [Input("registryId")] + public Input? RegistryId { get; set; } + + /// + /// The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + /// + [Input("serviceName")] + public Input? ServiceName { get; set; } + + public ContainerRegistryIPRestrictionsManagementState() + { + } + public static new ContainerRegistryIPRestrictionsManagementState Empty => new ContainerRegistryIPRestrictionsManagementState(); + } +} diff --git a/sdk/dotnet/CloudProject/ContainerRegistryIPRestrictionsRegistry.cs b/sdk/dotnet/CloudProject/ContainerRegistryIPRestrictionsRegistry.cs new file mode 100644 index 00000000..53b0c0c5 --- /dev/null +++ b/sdk/dotnet/CloudProject/ContainerRegistryIPRestrictionsRegistry.cs @@ -0,0 +1,177 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.CloudProject +{ + /// + /// Apply IP restrictions container registry associated with a public cloud project on artifact manager component. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Ovh = Pulumi.Ovh; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var registry = Ovh.CloudProject.GetContainerRegistry.Invoke(new() + /// { + /// ServiceName = "XXXXXX", + /// RegistryId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx", + /// }); + /// + /// var my_registry_iprestrictions = new Ovh.CloudProject.ContainerRegistryIPRestrictionsRegistry("my-registry-iprestrictions", new() + /// { + /// ServiceName = ovh_cloud_project_containerregistry.Registry.Service_name, + /// RegistryId = ovh_cloud_project_containerregistry.Registry.Id, + /// IpRestrictions = new[] + /// { + /// + /// { + /// { "ip_block", "xxx.xxx.xxx.xxx/xx" }, + /// { "description", "xxxxxxx" }, + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// + [OvhResourceType("ovh:CloudProject/containerRegistryIPRestrictionsRegistry:ContainerRegistryIPRestrictionsRegistry")] + public partial class ContainerRegistryIPRestrictionsRegistry : global::Pulumi.CustomResource + { + /// + /// IP restrictions applied on artifact manager component. + /// + [Output("ipRestrictions")] + public Output>> IpRestrictions { get; private set; } = null!; + + /// + /// The id of the Managed Private Registry. + /// + [Output("registryId")] + public Output RegistryId { get; private set; } = null!; + + /// + /// The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + /// + [Output("serviceName")] + public Output ServiceName { get; private set; } = null!; + + + /// + /// Create a ContainerRegistryIPRestrictionsRegistry resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public ContainerRegistryIPRestrictionsRegistry(string name, ContainerRegistryIPRestrictionsRegistryArgs args, CustomResourceOptions? options = null) + : base("ovh:CloudProject/containerRegistryIPRestrictionsRegistry:ContainerRegistryIPRestrictionsRegistry", name, args ?? new ContainerRegistryIPRestrictionsRegistryArgs(), MakeResourceOptions(options, "")) + { + } + + private ContainerRegistryIPRestrictionsRegistry(string name, Input id, ContainerRegistryIPRestrictionsRegistryState? state = null, CustomResourceOptions? options = null) + : base("ovh:CloudProject/containerRegistryIPRestrictionsRegistry:ContainerRegistryIPRestrictionsRegistry", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/ovh/pulumi-ovh", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing ContainerRegistryIPRestrictionsRegistry resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static ContainerRegistryIPRestrictionsRegistry Get(string name, Input id, ContainerRegistryIPRestrictionsRegistryState? state = null, CustomResourceOptions? options = null) + { + return new ContainerRegistryIPRestrictionsRegistry(name, id, state, options); + } + } + + public sealed class ContainerRegistryIPRestrictionsRegistryArgs : global::Pulumi.ResourceArgs + { + [Input("ipRestrictions", required: true)] + private InputList>? _ipRestrictions; + + /// + /// IP restrictions applied on artifact manager component. + /// + public InputList> IpRestrictions + { + get => _ipRestrictions ?? (_ipRestrictions = new InputList>()); + set => _ipRestrictions = value; + } + + /// + /// The id of the Managed Private Registry. + /// + [Input("registryId", required: true)] + public Input RegistryId { get; set; } = null!; + + /// + /// The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + /// + [Input("serviceName", required: true)] + public Input ServiceName { get; set; } = null!; + + public ContainerRegistryIPRestrictionsRegistryArgs() + { + } + public static new ContainerRegistryIPRestrictionsRegistryArgs Empty => new ContainerRegistryIPRestrictionsRegistryArgs(); + } + + public sealed class ContainerRegistryIPRestrictionsRegistryState : global::Pulumi.ResourceArgs + { + [Input("ipRestrictions")] + private InputList>? _ipRestrictions; + + /// + /// IP restrictions applied on artifact manager component. + /// + public InputList> IpRestrictions + { + get => _ipRestrictions ?? (_ipRestrictions = new InputList>()); + set => _ipRestrictions = value; + } + + /// + /// The id of the Managed Private Registry. + /// + [Input("registryId")] + public Input? RegistryId { get; set; } + + /// + /// The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + /// + [Input("serviceName")] + public Input? ServiceName { get; set; } + + public ContainerRegistryIPRestrictionsRegistryState() + { + } + public static new ContainerRegistryIPRestrictionsRegistryState Empty => new ContainerRegistryIPRestrictionsRegistryState(); + } +} diff --git a/sdk/dotnet/CloudProject/ContainerRegistryOIDC.cs b/sdk/dotnet/CloudProject/ContainerRegistryOIDC.cs index 3760ded0..344c786a 100644 --- a/sdk/dotnet/CloudProject/ContainerRegistryOIDC.cs +++ b/sdk/dotnet/CloudProject/ContainerRegistryOIDC.cs @@ -48,10 +48,12 @@ namespace Pulumi.Ovh.CloudProject /// /// ## Import /// - /// OVHcloud Managed Private Registry OIDC can be imported using the tenant `service_name` and registry id `registry_id` separated by "/" E.g., bash + /// OVHcloud Managed Private Registry OIDC can be imported using the tenant `service_name` and registry id `registry_id` separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:CloudProject/containerRegistryOIDC:ContainerRegistryOIDC my-oidc service_name/registry_id + /// $ pulumi import ovh:CloudProject/containerRegistryOIDC:ContainerRegistryOIDC my-oidc service_name/registry_id /// ``` /// [OvhResourceType("ovh:CloudProject/containerRegistryOIDC:ContainerRegistryOIDC")] diff --git a/sdk/dotnet/CloudProject/Database.cs b/sdk/dotnet/CloudProject/Database.cs index 8acde3a3..de7cc5b4 100644 --- a/sdk/dotnet/CloudProject/Database.cs +++ b/sdk/dotnet/CloudProject/Database.cs @@ -281,10 +281,12 @@ namespace Pulumi.Ovh.CloudProject /// /// ## Import /// - /// OVHcloud Managed database clusters can be imported using the `service_name`, `engine`, `id` of the cluster, separated by "/" E.g., bash + /// OVHcloud Managed database clusters can be imported using the `service_name`, `engine`, `id` of the cluster, separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:CloudProject/database:Database my_database_cluster service_name/engine/id + /// $ pulumi import ovh:CloudProject/database:Database my_database_cluster service_name/engine/id /// ``` /// [OvhResourceType("ovh:CloudProject/database:Database")] @@ -296,6 +298,12 @@ public partial class Database : global::Pulumi.CustomResource [Output("advancedConfiguration")] public Output> AdvancedConfiguration { get; private set; } = null!; + /// + /// 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 + /// + [Output("backupRegions")] + public Output> BackupRegions { get; private set; } = null!; + /// /// Time on which backups start every day. /// @@ -463,6 +471,24 @@ public InputMap AdvancedConfiguration set => _advancedConfiguration = value; } + [Input("backupRegions")] + private InputList? _backupRegions; + + /// + /// 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 + /// + public InputList BackupRegions + { + get => _backupRegions ?? (_backupRegions = new InputList()); + set => _backupRegions = value; + } + + /// + /// Time on which backups start every day. + /// + [Input("backupTime")] + public Input? BackupTime { get; set; } + /// /// Small description of the database service. /// @@ -555,6 +581,18 @@ public InputMap AdvancedConfiguration set => _advancedConfiguration = value; } + [Input("backupRegions")] + private InputList? _backupRegions; + + /// + /// 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 + /// + public InputList BackupRegions + { + get => _backupRegions ?? (_backupRegions = new InputList()); + set => _backupRegions = value; + } + /// /// Time on which backups start every day. /// diff --git a/sdk/dotnet/CloudProject/GetContainerRegistryIPRestrictionsManagement.cs b/sdk/dotnet/CloudProject/GetContainerRegistryIPRestrictionsManagement.cs new file mode 100644 index 00000000..42c63739 --- /dev/null +++ b/sdk/dotnet/CloudProject/GetContainerRegistryIPRestrictionsManagement.cs @@ -0,0 +1,105 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.CloudProject +{ + public static class GetContainerRegistryIPRestrictionsManagement + { + /// + /// Use this data source to get the list of Management IP Restrictions of a container registry associated with a public cloud project. + /// + public static Task InvokeAsync(GetContainerRegistryIPRestrictionsManagementArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("ovh:CloudProject/getContainerRegistryIPRestrictionsManagement:getContainerRegistryIPRestrictionsManagement", args ?? new GetContainerRegistryIPRestrictionsManagementArgs(), options.WithDefaults()); + + /// + /// Use this data source to get the list of Management IP Restrictions of a container registry associated with a public cloud project. + /// + public static Output Invoke(GetContainerRegistryIPRestrictionsManagementInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("ovh:CloudProject/getContainerRegistryIPRestrictionsManagement:getContainerRegistryIPRestrictionsManagement", args ?? new GetContainerRegistryIPRestrictionsManagementInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetContainerRegistryIPRestrictionsManagementArgs : global::Pulumi.InvokeArgs + { + /// + /// The id of the Managed Private Registry. + /// + [Input("registryId", required: true)] + public string RegistryId { get; set; } = null!; + + /// + /// The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + /// + [Input("serviceName", required: true)] + public string ServiceName { get; set; } = null!; + + public GetContainerRegistryIPRestrictionsManagementArgs() + { + } + public static new GetContainerRegistryIPRestrictionsManagementArgs Empty => new GetContainerRegistryIPRestrictionsManagementArgs(); + } + + public sealed class GetContainerRegistryIPRestrictionsManagementInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The id of the Managed Private Registry. + /// + [Input("registryId", required: true)] + public Input RegistryId { get; set; } = null!; + + /// + /// The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + /// + [Input("serviceName", required: true)] + public Input ServiceName { get; set; } = null!; + + public GetContainerRegistryIPRestrictionsManagementInvokeArgs() + { + } + public static new GetContainerRegistryIPRestrictionsManagementInvokeArgs Empty => new GetContainerRegistryIPRestrictionsManagementInvokeArgs(); + } + + + [OutputType] + public sealed class GetContainerRegistryIPRestrictionsManagementResult + { + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + /// + /// IP restrictions applied on Harbor UI and API. + /// + public readonly ImmutableArray> IpRestrictions; + /// + /// The ID of the Managed Private Registry. + /// + public readonly string RegistryId; + /// + /// The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + /// + public readonly string ServiceName; + + [OutputConstructor] + private GetContainerRegistryIPRestrictionsManagementResult( + string id, + + ImmutableArray> ipRestrictions, + + string registryId, + + string serviceName) + { + Id = id; + IpRestrictions = ipRestrictions; + RegistryId = registryId; + ServiceName = serviceName; + } + } +} diff --git a/sdk/dotnet/CloudProject/GetContainerRegistryIPRestrictionsRegistry.cs b/sdk/dotnet/CloudProject/GetContainerRegistryIPRestrictionsRegistry.cs new file mode 100644 index 00000000..8d3f10e9 --- /dev/null +++ b/sdk/dotnet/CloudProject/GetContainerRegistryIPRestrictionsRegistry.cs @@ -0,0 +1,105 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.CloudProject +{ + public static class GetContainerRegistryIPRestrictionsRegistry + { + /// + /// Use this data source to get the list of Registry IP Restrictions of a container registry associated with a public cloud project. + /// + public static Task InvokeAsync(GetContainerRegistryIPRestrictionsRegistryArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("ovh:CloudProject/getContainerRegistryIPRestrictionsRegistry:getContainerRegistryIPRestrictionsRegistry", args ?? new GetContainerRegistryIPRestrictionsRegistryArgs(), options.WithDefaults()); + + /// + /// Use this data source to get the list of Registry IP Restrictions of a container registry associated with a public cloud project. + /// + public static Output Invoke(GetContainerRegistryIPRestrictionsRegistryInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("ovh:CloudProject/getContainerRegistryIPRestrictionsRegistry:getContainerRegistryIPRestrictionsRegistry", args ?? new GetContainerRegistryIPRestrictionsRegistryInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetContainerRegistryIPRestrictionsRegistryArgs : global::Pulumi.InvokeArgs + { + /// + /// The id of the Managed Private Registry. + /// + [Input("registryId", required: true)] + public string RegistryId { get; set; } = null!; + + /// + /// The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + /// + [Input("serviceName", required: true)] + public string ServiceName { get; set; } = null!; + + public GetContainerRegistryIPRestrictionsRegistryArgs() + { + } + public static new GetContainerRegistryIPRestrictionsRegistryArgs Empty => new GetContainerRegistryIPRestrictionsRegistryArgs(); + } + + public sealed class GetContainerRegistryIPRestrictionsRegistryInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The id of the Managed Private Registry. + /// + [Input("registryId", required: true)] + public Input RegistryId { get; set; } = null!; + + /// + /// The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + /// + [Input("serviceName", required: true)] + public Input ServiceName { get; set; } = null!; + + public GetContainerRegistryIPRestrictionsRegistryInvokeArgs() + { + } + public static new GetContainerRegistryIPRestrictionsRegistryInvokeArgs Empty => new GetContainerRegistryIPRestrictionsRegistryInvokeArgs(); + } + + + [OutputType] + public sealed class GetContainerRegistryIPRestrictionsRegistryResult + { + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + /// + /// IP restrictions applied on artifact manager component. + /// + public readonly ImmutableArray> IpRestrictions; + /// + /// The ID of the Managed Private Registry. + /// + public readonly string RegistryId; + /// + /// The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + /// + public readonly string ServiceName; + + [OutputConstructor] + private GetContainerRegistryIPRestrictionsRegistryResult( + string id, + + ImmutableArray> ipRestrictions, + + string registryId, + + string serviceName) + { + Id = id; + IpRestrictions = ipRestrictions; + RegistryId = registryId; + ServiceName = serviceName; + } + } +} diff --git a/sdk/dotnet/CloudProject/GetKubeNodePool.cs b/sdk/dotnet/CloudProject/GetKubeNodePool.cs index 768d48ad..a2a2339d 100644 --- a/sdk/dotnet/CloudProject/GetKubeNodePool.cs +++ b/sdk/dotnet/CloudProject/GetKubeNodePool.cs @@ -154,6 +154,21 @@ public sealed class GetKubeNodePoolResult /// public readonly bool Autoscale; /// + /// (Optional) scaleDownUnneededTimeSeconds autoscaling parameter + /// How long a node should be unneeded before it is eligible for scale down + /// + public readonly int AutoscalingScaleDownUnneededTimeSeconds; + /// + /// (Optional) scaleDownUnreadyTimeSeconds autoscaling parameter + /// How long an unready node should be unneeded before it is eligible for scale down + /// + public readonly int AutoscalingScaleDownUnreadyTimeSeconds; + /// + /// (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 + /// + public readonly double AutoscalingScaleDownUtilizationThreshold; + /// /// Number of nodes which are actually ready in the pool /// public readonly int AvailableNodes; @@ -239,6 +254,12 @@ private GetKubeNodePoolResult( bool autoscale, + int autoscalingScaleDownUnneededTimeSeconds, + + int autoscalingScaleDownUnreadyTimeSeconds, + + double autoscalingScaleDownUtilizationThreshold, + int availableNodes, string createdAt, @@ -279,6 +300,9 @@ private GetKubeNodePoolResult( { AntiAffinity = antiAffinity; Autoscale = autoscale; + AutoscalingScaleDownUnneededTimeSeconds = autoscalingScaleDownUnneededTimeSeconds; + AutoscalingScaleDownUnreadyTimeSeconds = autoscalingScaleDownUnreadyTimeSeconds; + AutoscalingScaleDownUtilizationThreshold = autoscalingScaleDownUtilizationThreshold; AvailableNodes = availableNodes; CreatedAt = createdAt; CurrentNodes = currentNodes; diff --git a/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplate.cs b/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplate.cs index 703847e2..37cc05fa 100644 --- a/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplate.cs +++ b/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplate.cs @@ -12,9 +12,15 @@ namespace Pulumi.Ovh.CloudProject.Inputs public sealed class GetKubeNodePoolTemplateArgs : global::Pulumi.InvokeArgs { + /// + /// metadata + /// [Input("metadata")] public Inputs.GetKubeNodePoolTemplateMetadataArgs? Metadata { get; set; } + /// + /// spec + /// [Input("spec")] public Inputs.GetKubeNodePoolTemplateSpecArgs? Spec { get; set; } diff --git a/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplateArgs.cs b/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplateArgs.cs index 06c8f07a..2142f9a7 100644 --- a/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplateArgs.cs +++ b/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplateArgs.cs @@ -12,9 +12,15 @@ namespace Pulumi.Ovh.CloudProject.Inputs public sealed class GetKubeNodePoolTemplateInputArgs : global::Pulumi.ResourceArgs { + /// + /// metadata + /// [Input("metadata")] public Input? Metadata { get; set; } + /// + /// spec + /// [Input("spec")] public Input? Spec { get; set; } diff --git a/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplateMetadata.cs b/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplateMetadata.cs index 02bda0b8..3ba530ff 100644 --- a/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplateMetadata.cs +++ b/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplateMetadata.cs @@ -14,6 +14,10 @@ public sealed class GetKubeNodePoolTemplateMetadataArgs : global::Pulumi.InvokeA { [Input("annotations")] private Dictionary? _annotations; + + /// + /// annotations + /// public Dictionary Annotations { get => _annotations ?? (_annotations = new Dictionary()); @@ -22,6 +26,10 @@ public Dictionary Annotations [Input("finalizers")] private List? _finalizers; + + /// + /// finalizers + /// public List Finalizers { get => _finalizers ?? (_finalizers = new List()); @@ -30,6 +38,10 @@ public List Finalizers [Input("labels")] private Dictionary? _labels; + + /// + /// labels + /// public Dictionary Labels { get => _labels ?? (_labels = new Dictionary()); diff --git a/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplateMetadataArgs.cs b/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplateMetadataArgs.cs index 60298715..3ef05229 100644 --- a/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplateMetadataArgs.cs +++ b/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplateMetadataArgs.cs @@ -14,6 +14,10 @@ public sealed class GetKubeNodePoolTemplateMetadataInputArgs : global::Pulumi.Re { [Input("annotations")] private InputMap? _annotations; + + /// + /// annotations + /// public InputMap Annotations { get => _annotations ?? (_annotations = new InputMap()); @@ -22,6 +26,10 @@ public InputMap Annotations [Input("finalizers")] private InputList? _finalizers; + + /// + /// finalizers + /// public InputList Finalizers { get => _finalizers ?? (_finalizers = new InputList()); @@ -30,6 +38,10 @@ public InputList Finalizers [Input("labels")] private InputMap? _labels; + + /// + /// labels + /// public InputMap Labels { get => _labels ?? (_labels = new InputMap()); diff --git a/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplateSpec.cs b/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplateSpec.cs index 13ff0c58..a69ba815 100644 --- a/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplateSpec.cs +++ b/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplateSpec.cs @@ -14,12 +14,19 @@ public sealed class GetKubeNodePoolTemplateSpecArgs : global::Pulumi.InvokeArgs { [Input("taints")] private List>? _taints; + + /// + /// taints + /// public List> Taints { get => _taints ?? (_taints = new List>()); set => _taints = value; } + /// + /// unschedulable + /// [Input("unschedulable")] public bool? Unschedulable { get; set; } diff --git a/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplateSpecArgs.cs b/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplateSpecArgs.cs index 726ff63e..511deba0 100644 --- a/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplateSpecArgs.cs +++ b/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplateSpecArgs.cs @@ -14,12 +14,19 @@ public sealed class GetKubeNodePoolTemplateSpecInputArgs : global::Pulumi.Resour { [Input("taints")] private InputList>? _taints; + + /// + /// taints + /// public InputList> Taints { get => _taints ?? (_taints = new InputList>()); set => _taints = value; } + /// + /// unschedulable + /// [Input("unschedulable")] public Input? Unschedulable { get; set; } diff --git a/sdk/dotnet/CloudProject/Inputs/KubeNodePoolTemplateSpecArgs.cs b/sdk/dotnet/CloudProject/Inputs/KubeNodePoolTemplateSpecArgs.cs index ef96ba69..3f2ec14e 100644 --- a/sdk/dotnet/CloudProject/Inputs/KubeNodePoolTemplateSpecArgs.cs +++ b/sdk/dotnet/CloudProject/Inputs/KubeNodePoolTemplateSpecArgs.cs @@ -16,7 +16,7 @@ public sealed class KubeNodePoolTemplateSpecArgs : global::Pulumi.ResourceArgs private InputList>? _taints; /// - /// Taints to apply to each node + /// Taints to apply to each node [NodeSpec kubernetes documentation](https://kubernetes.io/docs/reference/kubernetes-api/cluster-resources/node-v1/#NodeSpec) /// public InputList> Taints { diff --git a/sdk/dotnet/CloudProject/Inputs/KubeNodePoolTemplateSpecGetArgs.cs b/sdk/dotnet/CloudProject/Inputs/KubeNodePoolTemplateSpecGetArgs.cs index 18c7462b..203bc7bb 100644 --- a/sdk/dotnet/CloudProject/Inputs/KubeNodePoolTemplateSpecGetArgs.cs +++ b/sdk/dotnet/CloudProject/Inputs/KubeNodePoolTemplateSpecGetArgs.cs @@ -16,7 +16,7 @@ public sealed class KubeNodePoolTemplateSpecGetArgs : global::Pulumi.ResourceArg private InputList>? _taints; /// - /// Taints to apply to each node + /// Taints to apply to each node [NodeSpec kubernetes documentation](https://kubernetes.io/docs/reference/kubernetes-api/cluster-resources/node-v1/#NodeSpec) /// public InputList> Taints { diff --git a/sdk/dotnet/CloudProject/Kube.cs b/sdk/dotnet/CloudProject/Kube.cs index 285816b1..fd31d605 100644 --- a/sdk/dotnet/CloudProject/Kube.cs +++ b/sdk/dotnet/CloudProject/Kube.cs @@ -12,10 +12,12 @@ namespace Pulumi.Ovh.CloudProject /// /// ## Import /// - /// OVHcloud Managed Kubernetes Service clusters can be imported using the `service_name` and the `id` of the cluster, separated by "/" E.g., bash + /// OVHcloud Managed Kubernetes Service clusters can be imported using the `service_name` and the `id` of the cluster, separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:CloudProject/kube:Kube my_kube_cluster service_name/kube_id + /// $ pulumi import ovh:CloudProject/kube:Kube my_kube_cluster service_name/kube_id /// ``` /// [OvhResourceType("ovh:CloudProject/kube:Kube")] diff --git a/sdk/dotnet/CloudProject/KubeIpRestrictions.cs b/sdk/dotnet/CloudProject/KubeIpRestrictions.cs index 2c9e8e75..84c6c181 100644 --- a/sdk/dotnet/CloudProject/KubeIpRestrictions.cs +++ b/sdk/dotnet/CloudProject/KubeIpRestrictions.cs @@ -37,10 +37,12 @@ namespace Pulumi.Ovh.CloudProject /// /// ## Import /// - /// OVHcloud Managed Kubernetes Service cluster IP restrictions can be imported using the `service_name` and the `id` of the cluster, separated by "/" E.g., bash + /// OVHcloud Managed Kubernetes Service cluster IP restrictions can be imported using the `service_name` and the `id` of the cluster, separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:CloudProject/kubeIpRestrictions:KubeIpRestrictions iprestrictions service_name/kube_id + /// $ pulumi import ovh:CloudProject/kubeIpRestrictions:KubeIpRestrictions iprestrictions service_name/kube_id /// ``` /// [OvhResourceType("ovh:CloudProject/kubeIpRestrictions:KubeIpRestrictions")] diff --git a/sdk/dotnet/CloudProject/KubeNodePool.cs b/sdk/dotnet/CloudProject/KubeNodePool.cs index c1eb1cab..f1bace3d 100644 --- a/sdk/dotnet/CloudProject/KubeNodePool.cs +++ b/sdk/dotnet/CloudProject/KubeNodePool.cs @@ -96,10 +96,12 @@ namespace Pulumi.Ovh.CloudProject /// /// ## Import /// - /// OVHcloud 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., bash + /// OVHcloud 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., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:CloudProject/kubeNodePool:KubeNodePool pool service_name/kube_id/poolid + /// $ pulumi import ovh:CloudProject/kubeNodePool:KubeNodePool pool service_name/kube_id/poolid /// ``` /// [OvhResourceType("ovh:CloudProject/kubeNodePool:KubeNodePool")] @@ -113,11 +115,32 @@ public partial class KubeNodePool : global::Pulumi.CustomResource /// /// Enable auto-scaling for the pool. Default to `false`. - /// * `template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: /// [Output("autoscale")] public Output Autoscale { get; private set; } = null!; + /// + /// scaleDownUnneededTimeSeconds autoscaling parameter + /// How long a node should be unneeded before it is eligible for scale down + /// + [Output("autoscalingScaleDownUnneededTimeSeconds")] + public Output AutoscalingScaleDownUnneededTimeSeconds { get; private set; } = null!; + + /// + /// scaleDownUnreadyTimeSeconds autoscaling parameter + /// How long an unready node should be unneeded before it is eligible for scale down + /// + [Output("autoscalingScaleDownUnreadyTimeSeconds")] + public Output AutoscalingScaleDownUnreadyTimeSeconds { get; private set; } = null!; + + /// + /// 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 + /// * `template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: + /// + [Output("autoscalingScaleDownUtilizationThreshold")] + public Output AutoscalingScaleDownUtilizationThreshold { get; private set; } = null!; + /// /// Number of nodes which are actually ready in the pool /// @@ -282,11 +305,32 @@ public sealed class KubeNodePoolArgs : global::Pulumi.ResourceArgs /// /// Enable auto-scaling for the pool. Default to `false`. - /// * `template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: /// [Input("autoscale")] public Input? Autoscale { get; set; } + /// + /// scaleDownUnneededTimeSeconds autoscaling parameter + /// How long a node should be unneeded before it is eligible for scale down + /// + [Input("autoscalingScaleDownUnneededTimeSeconds")] + public Input? AutoscalingScaleDownUnneededTimeSeconds { get; set; } + + /// + /// scaleDownUnreadyTimeSeconds autoscaling parameter + /// How long an unready node should be unneeded before it is eligible for scale down + /// + [Input("autoscalingScaleDownUnreadyTimeSeconds")] + public Input? AutoscalingScaleDownUnreadyTimeSeconds { get; set; } + + /// + /// 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 + /// * `template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: + /// + [Input("autoscalingScaleDownUtilizationThreshold")] + public Input? AutoscalingScaleDownUtilizationThreshold { get; set; } + /// /// number of nodes to start. /// @@ -358,11 +402,32 @@ public sealed class KubeNodePoolState : global::Pulumi.ResourceArgs /// /// Enable auto-scaling for the pool. Default to `false`. - /// * `template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: /// [Input("autoscale")] public Input? Autoscale { get; set; } + /// + /// scaleDownUnneededTimeSeconds autoscaling parameter + /// How long a node should be unneeded before it is eligible for scale down + /// + [Input("autoscalingScaleDownUnneededTimeSeconds")] + public Input? AutoscalingScaleDownUnneededTimeSeconds { get; set; } + + /// + /// scaleDownUnreadyTimeSeconds autoscaling parameter + /// How long an unready node should be unneeded before it is eligible for scale down + /// + [Input("autoscalingScaleDownUnreadyTimeSeconds")] + public Input? AutoscalingScaleDownUnreadyTimeSeconds { get; set; } + + /// + /// 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 + /// * `template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: + /// + [Input("autoscalingScaleDownUtilizationThreshold")] + public Input? AutoscalingScaleDownUtilizationThreshold { get; set; } + /// /// Number of nodes which are actually ready in the pool /// diff --git a/sdk/dotnet/CloudProject/KubeOidc.cs b/sdk/dotnet/CloudProject/KubeOidc.cs index 6808ff7d..bff2a9b4 100644 --- a/sdk/dotnet/CloudProject/KubeOidc.cs +++ b/sdk/dotnet/CloudProject/KubeOidc.cs @@ -51,10 +51,12 @@ namespace Pulumi.Ovh.CloudProject /// /// ## Import /// - /// OVHcloud Managed Kubernetes Service cluster OIDC can be imported using the tenant `service_name` and cluster id `kube_id` separated by "/" E.g., bash + /// OVHcloud Managed Kubernetes Service cluster OIDC can be imported using the tenant `service_name` and cluster id `kube_id` separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:CloudProject/kubeOidc:KubeOidc my-oidc service_name/kube_id + /// $ pulumi import ovh:CloudProject/kubeOidc:KubeOidc my-oidc service_name/kube_id /// ``` /// [OvhResourceType("ovh:CloudProject/kubeOidc:KubeOidc")] diff --git a/sdk/dotnet/CloudProject/NetworkPrivate.cs b/sdk/dotnet/CloudProject/NetworkPrivate.cs index 09560039..8268c93c 100644 --- a/sdk/dotnet/CloudProject/NetworkPrivate.cs +++ b/sdk/dotnet/CloudProject/NetworkPrivate.cs @@ -37,10 +37,12 @@ namespace Pulumi.Ovh.CloudProject /// /// ## Import /// - /// Private network in a public cloud project can be imported using the `service_name` and the `network_id`, separated by "/" E.g., bash + /// Private network in a public cloud project can be imported using the `service_name` and the `network_id`, separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:CloudProject/networkPrivate:NetworkPrivate mynet ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678 + /// $ pulumi import ovh:CloudProject/networkPrivate:NetworkPrivate mynet ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678 /// ``` /// [OvhResourceType("ovh:CloudProject/networkPrivate:NetworkPrivate")] diff --git a/sdk/dotnet/CloudProject/NetworkPrivateSubnet.cs b/sdk/dotnet/CloudProject/NetworkPrivateSubnet.cs index 1655cc43..be1f3edd 100644 --- a/sdk/dotnet/CloudProject/NetworkPrivateSubnet.cs +++ b/sdk/dotnet/CloudProject/NetworkPrivateSubnet.cs @@ -39,10 +39,12 @@ namespace Pulumi.Ovh.CloudProject /// /// ## Import /// - /// Subnet in a private network of a public cloud project can be imported using the `service_name` , the `network_id` and the `subnet_id`, separated by "/" E.g., bash + /// Subnet in a private network of a public cloud project can be imported using the `service_name` , the `network_id` and the `subnet_id`, separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:CloudProject/networkPrivateSubnet:NetworkPrivateSubnet mysubnet ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678/0f0b73a4-403b-45e4-86d0-b438f1291909 + /// $ pulumi import ovh:CloudProject/networkPrivateSubnet:NetworkPrivateSubnet mysubnet ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678/0f0b73a4-403b-45e4-86d0-b438f1291909 /// ``` /// [OvhResourceType("ovh:CloudProject/networkPrivateSubnet:NetworkPrivateSubnet")] diff --git a/sdk/dotnet/CloudProject/Outputs/GetKubeNodePoolTemplateMetadataResult.cs b/sdk/dotnet/CloudProject/Outputs/GetKubeNodePoolTemplateMetadataResult.cs index 0a9e55da..735d0e20 100644 --- a/sdk/dotnet/CloudProject/Outputs/GetKubeNodePoolTemplateMetadataResult.cs +++ b/sdk/dotnet/CloudProject/Outputs/GetKubeNodePoolTemplateMetadataResult.cs @@ -13,8 +13,17 @@ namespace Pulumi.Ovh.CloudProject.Outputs [OutputType] public sealed class GetKubeNodePoolTemplateMetadataResult { + /// + /// annotations + /// public readonly ImmutableDictionary? Annotations; + /// + /// finalizers + /// public readonly ImmutableArray Finalizers; + /// + /// labels + /// public readonly ImmutableDictionary? Labels; [OutputConstructor] diff --git a/sdk/dotnet/CloudProject/Outputs/GetKubeNodePoolTemplateResult.cs b/sdk/dotnet/CloudProject/Outputs/GetKubeNodePoolTemplateResult.cs index dfbc5e10..94aa18a2 100644 --- a/sdk/dotnet/CloudProject/Outputs/GetKubeNodePoolTemplateResult.cs +++ b/sdk/dotnet/CloudProject/Outputs/GetKubeNodePoolTemplateResult.cs @@ -13,7 +13,13 @@ namespace Pulumi.Ovh.CloudProject.Outputs [OutputType] public sealed class GetKubeNodePoolTemplateResult { + /// + /// metadata + /// public readonly Outputs.GetKubeNodePoolTemplateMetadataResult? Metadata; + /// + /// spec + /// public readonly Outputs.GetKubeNodePoolTemplateSpecResult? Spec; [OutputConstructor] diff --git a/sdk/dotnet/CloudProject/Outputs/GetKubeNodePoolTemplateSpecResult.cs b/sdk/dotnet/CloudProject/Outputs/GetKubeNodePoolTemplateSpecResult.cs index 816d38e1..963ff3f1 100644 --- a/sdk/dotnet/CloudProject/Outputs/GetKubeNodePoolTemplateSpecResult.cs +++ b/sdk/dotnet/CloudProject/Outputs/GetKubeNodePoolTemplateSpecResult.cs @@ -13,7 +13,13 @@ namespace Pulumi.Ovh.CloudProject.Outputs [OutputType] public sealed class GetKubeNodePoolTemplateSpecResult { + /// + /// taints + /// public readonly ImmutableArray> Taints; + /// + /// unschedulable + /// public readonly bool? Unschedulable; [OutputConstructor] diff --git a/sdk/dotnet/CloudProject/Outputs/KubeNodePoolTemplateSpec.cs b/sdk/dotnet/CloudProject/Outputs/KubeNodePoolTemplateSpec.cs index 47d50d58..a37bd2fb 100644 --- a/sdk/dotnet/CloudProject/Outputs/KubeNodePoolTemplateSpec.cs +++ b/sdk/dotnet/CloudProject/Outputs/KubeNodePoolTemplateSpec.cs @@ -14,7 +14,7 @@ namespace Pulumi.Ovh.CloudProject.Outputs public sealed class KubeNodePoolTemplateSpec { /// - /// Taints to apply to each node + /// Taints to apply to each node [NodeSpec kubernetes documentation](https://kubernetes.io/docs/reference/kubernetes-api/cluster-resources/node-v1/#NodeSpec) /// public readonly ImmutableArray> Taints; /// diff --git a/sdk/dotnet/CloudProject/Project.cs b/sdk/dotnet/CloudProject/Project.cs index cc569dbf..7a4575d8 100644 --- a/sdk/dotnet/CloudProject/Project.cs +++ b/sdk/dotnet/CloudProject/Project.cs @@ -14,10 +14,10 @@ namespace Pulumi.Ovh.CloudProject /// /// Cloud project can be imported using the `order_id` that can be retrieved in the [order page](https://www.ovh.com/manager/#/dedicated/billing/orders/orders) at the creation time of the Public Cloud project. /// - /// bash + /// bash /// /// ```sh - /// $ pulumi import ovh:CloudProject/project:Project my_cloud_project order_id + /// $ pulumi import ovh:CloudProject/project:Project my_cloud_project order_id /// ``` /// [OvhResourceType("ovh:CloudProject/project:Project")] diff --git a/sdk/dotnet/CloudProject/S3Credential.cs b/sdk/dotnet/CloudProject/S3Credential.cs index 20e8d13a..d47c8eb9 100644 --- a/sdk/dotnet/CloudProject/S3Credential.cs +++ b/sdk/dotnet/CloudProject/S3Credential.cs @@ -14,10 +14,12 @@ namespace Pulumi.Ovh.CloudProject /// /// ## Import /// - /// OVHcloud User S3 Credentials can be imported using the `service_name`, `user_id` and `access_key_id` of the credential, separated by "/" E.g., bash + /// OVHcloud User S3 Credentials can be imported using the `service_name`, `user_id` and `access_key_id` of the credential, separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:CloudProject/s3Credential:S3Credential s3_credential service_name/user_id/access_key_id + /// $ pulumi import ovh:CloudProject/s3Credential:S3Credential s3_credential service_name/user_id/access_key_id /// ``` /// [OvhResourceType("ovh:CloudProject/s3Credential:S3Credential")] diff --git a/sdk/dotnet/CloudProject/S3Policy.cs b/sdk/dotnet/CloudProject/S3Policy.cs index 4f05caab..ae8141f5 100644 --- a/sdk/dotnet/CloudProject/S3Policy.cs +++ b/sdk/dotnet/CloudProject/S3Policy.cs @@ -77,10 +77,12 @@ namespace Pulumi.Ovh.CloudProject /// /// ## Import /// - /// OVHcloud User S3 Policy can be imported using the `service_name`, `user_id` of the policy, separated by "/" E.g., bash + /// OVHcloud User S3 Policy can be imported using the `service_name`, `user_id` of the policy, separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:CloudProject/s3Policy:S3Policy policy service_name/user_id + /// $ pulumi import ovh:CloudProject/s3Policy:S3Policy policy service_name/user_id /// ``` /// [OvhResourceType("ovh:CloudProject/s3Policy:S3Policy")] diff --git a/sdk/dotnet/CloudProjectDatabase/DatabaseInstance.cs b/sdk/dotnet/CloudProjectDatabase/DatabaseInstance.cs index 4cb59ba1..1ac5202b 100644 --- a/sdk/dotnet/CloudProjectDatabase/DatabaseInstance.cs +++ b/sdk/dotnet/CloudProjectDatabase/DatabaseInstance.cs @@ -46,10 +46,12 @@ namespace Pulumi.Ovh.CloudProjectDatabase /// /// ## Import /// - /// OVHcloud Managed database clusters databases can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the database, separated by "/" E.g., bash + /// OVHcloud Managed database clusters databases can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the database, separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:CloudProjectDatabase/databaseInstance:DatabaseInstance my_database service_name/engine/cluster_id/id + /// $ pulumi import ovh:CloudProjectDatabase/databaseInstance:DatabaseInstance my_database service_name/engine/cluster_id/id /// ``` /// [OvhResourceType("ovh:CloudProjectDatabase/databaseInstance:DatabaseInstance")] diff --git a/sdk/dotnet/CloudProjectDatabase/GetDatabase.cs b/sdk/dotnet/CloudProjectDatabase/GetDatabase.cs index 3a83ebf1..b2b0d7d1 100644 --- a/sdk/dotnet/CloudProjectDatabase/GetDatabase.cs +++ b/sdk/dotnet/CloudProjectDatabase/GetDatabase.cs @@ -150,6 +150,10 @@ public sealed class GetDatabaseResult /// public readonly ImmutableDictionary AdvancedConfiguration; /// + /// List of region where backups are pushed. + /// + public readonly ImmutableArray BackupRegions; + /// /// Time on which backups start every day. /// public readonly string BackupTime; @@ -223,6 +227,8 @@ public sealed class GetDatabaseResult private GetDatabaseResult( ImmutableDictionary advancedConfiguration, + ImmutableArray backupRegions, + string backupTime, string createdAt, @@ -260,6 +266,7 @@ private GetDatabaseResult( string version) { AdvancedConfiguration = advancedConfiguration; + BackupRegions = backupRegions; BackupTime = backupTime; CreatedAt = createdAt; Description = description; diff --git a/sdk/dotnet/CloudProjectDatabase/GetPostgresSqlConnectionPool.cs b/sdk/dotnet/CloudProjectDatabase/GetPostgresSqlConnectionPool.cs new file mode 100644 index 00000000..a47f1119 --- /dev/null +++ b/sdk/dotnet/CloudProjectDatabase/GetPostgresSqlConnectionPool.cs @@ -0,0 +1,249 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.CloudProjectDatabase +{ + public static class GetPostgresSqlConnectionPool + { + /// + /// Use this data source to get information about a connection pool of a postgresql cluster associated with a public cloud project. + /// + /// {{% examples %}} + /// ## Example Usage + /// {{% example %}} + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Ovh = Pulumi.Ovh; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var testPoolPostgresSqlConnectionPool = Ovh.CloudProjectDatabase.GetPostgresSqlConnectionPool.Invoke(new() + /// { + /// ServiceName = "XXX", + /// ClusterId = "YYY", + /// Name = "ZZZ", + /// }); + /// + /// return new Dictionary<string, object?> + /// { + /// ["testPool"] = + /// { + /// { "service_name", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult => getPostgresSqlConnectionPoolResult.ServiceName) }, + /// { "cluster_id", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult => getPostgresSqlConnectionPoolResult.ClusterId) }, + /// { "name", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult => getPostgresSqlConnectionPoolResult.Name) }, + /// { "database_id", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult => getPostgresSqlConnectionPoolResult.DatabaseId) }, + /// { "mode", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult => getPostgresSqlConnectionPoolResult.Mode) }, + /// { "size", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult => getPostgresSqlConnectionPoolResult.Size) }, + /// { "port", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult => getPostgresSqlConnectionPoolResult.Port) }, + /// { "ssl_mode", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult => getPostgresSqlConnectionPoolResult.SslMode) }, + /// { "uri", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult => getPostgresSqlConnectionPoolResult.Uri) }, + /// { "user_id", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult => getPostgresSqlConnectionPoolResult.UserId) }, + /// }, + /// }; + /// }); + /// ``` + /// {{% /example %}} + /// {{% /examples %}} + /// + public static Task InvokeAsync(GetPostgresSqlConnectionPoolArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("ovh:CloudProjectDatabase/getPostgresSqlConnectionPool:getPostgresSqlConnectionPool", args ?? new GetPostgresSqlConnectionPoolArgs(), options.WithDefaults()); + + /// + /// Use this data source to get information about a connection pool of a postgresql cluster associated with a public cloud project. + /// + /// {{% examples %}} + /// ## Example Usage + /// {{% example %}} + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Ovh = Pulumi.Ovh; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var testPoolPostgresSqlConnectionPool = Ovh.CloudProjectDatabase.GetPostgresSqlConnectionPool.Invoke(new() + /// { + /// ServiceName = "XXX", + /// ClusterId = "YYY", + /// Name = "ZZZ", + /// }); + /// + /// return new Dictionary<string, object?> + /// { + /// ["testPool"] = + /// { + /// { "service_name", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult => getPostgresSqlConnectionPoolResult.ServiceName) }, + /// { "cluster_id", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult => getPostgresSqlConnectionPoolResult.ClusterId) }, + /// { "name", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult => getPostgresSqlConnectionPoolResult.Name) }, + /// { "database_id", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult => getPostgresSqlConnectionPoolResult.DatabaseId) }, + /// { "mode", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult => getPostgresSqlConnectionPoolResult.Mode) }, + /// { "size", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult => getPostgresSqlConnectionPoolResult.Size) }, + /// { "port", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult => getPostgresSqlConnectionPoolResult.Port) }, + /// { "ssl_mode", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult => getPostgresSqlConnectionPoolResult.SslMode) }, + /// { "uri", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult => getPostgresSqlConnectionPoolResult.Uri) }, + /// { "user_id", testPoolPostgresSqlConnectionPool.Apply(getPostgresSqlConnectionPoolResult => getPostgresSqlConnectionPoolResult.UserId) }, + /// }, + /// }; + /// }); + /// ``` + /// {{% /example %}} + /// {{% /examples %}} + /// + public static Output Invoke(GetPostgresSqlConnectionPoolInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("ovh:CloudProjectDatabase/getPostgresSqlConnectionPool:getPostgresSqlConnectionPool", args ?? new GetPostgresSqlConnectionPoolInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetPostgresSqlConnectionPoolArgs : global::Pulumi.InvokeArgs + { + /// + /// Cluster ID. + /// + [Input("clusterId", required: true)] + public string ClusterId { get; set; } = null!; + + /// + /// Name of the Connection pool. + /// + [Input("name", required: true)] + public string Name { get; set; } = null!; + + /// + /// The id of the public cloud project. If omitted, + /// the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + /// + [Input("serviceName", required: true)] + public string ServiceName { get; set; } = null!; + + public GetPostgresSqlConnectionPoolArgs() + { + } + public static new GetPostgresSqlConnectionPoolArgs Empty => new GetPostgresSqlConnectionPoolArgs(); + } + + public sealed class GetPostgresSqlConnectionPoolInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// Cluster ID. + /// + [Input("clusterId", required: true)] + public Input ClusterId { get; set; } = null!; + + /// + /// Name of the Connection pool. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + /// + /// The id of the public cloud project. If omitted, + /// the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + /// + [Input("serviceName", required: true)] + public Input ServiceName { get; set; } = null!; + + public GetPostgresSqlConnectionPoolInvokeArgs() + { + } + public static new GetPostgresSqlConnectionPoolInvokeArgs Empty => new GetPostgresSqlConnectionPoolInvokeArgs(); + } + + + [OutputType] + public sealed class GetPostgresSqlConnectionPoolResult + { + /// + /// See Argument Reference above + /// + public readonly string ClusterId; + /// + /// Database ID for a database that belongs to the Database cluster given above. + /// + public readonly string DatabaseId; + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + /// + /// Connection mode to the connection pool + /// Available modes: + /// + public readonly string Mode; + /// + /// See Argument Reference above + /// + public readonly string Name; + /// + /// Port of the connection pool. + /// + public readonly int Port; + /// + /// See Argument Reference above + /// + public readonly string ServiceName; + /// + /// Size of the connection pool. + /// + public readonly int Size; + /// + /// Ssl connection mode for the pool. + /// + public readonly string SslMode; + /// + /// Connection URI to the pool. + /// + public readonly string Uri; + /// + /// Database user authorized to connect to the pool, if none all the users are allowed. + /// + public readonly string UserId; + + [OutputConstructor] + private GetPostgresSqlConnectionPoolResult( + string clusterId, + + string databaseId, + + string id, + + string mode, + + string name, + + int port, + + string serviceName, + + int size, + + string sslMode, + + string uri, + + string userId) + { + ClusterId = clusterId; + DatabaseId = databaseId; + Id = id; + Mode = mode; + Name = name; + Port = port; + ServiceName = serviceName; + Size = size; + SslMode = sslMode; + Uri = uri; + UserId = userId; + } + } +} diff --git a/sdk/dotnet/CloudProjectDatabase/Integration.cs b/sdk/dotnet/CloudProjectDatabase/Integration.cs index ccb8a0ee..21072df2 100644 --- a/sdk/dotnet/CloudProjectDatabase/Integration.cs +++ b/sdk/dotnet/CloudProjectDatabase/Integration.cs @@ -57,10 +57,12 @@ namespace Pulumi.Ovh.CloudProjectDatabase /// /// ## Import /// - /// OVHcloud Managed database clusters users can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the user, separated by "/" E.g., bash + /// OVHcloud Managed database clusters users can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the user, separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:CloudProjectDatabase/integration:Integration my_user service_name/engine/cluster_id/id + /// $ pulumi import ovh:CloudProjectDatabase/integration:Integration my_user service_name/engine/cluster_id/id /// ``` /// [OvhResourceType("ovh:CloudProjectDatabase/integration:Integration")] diff --git a/sdk/dotnet/CloudProjectDatabase/IpRestriction.cs b/sdk/dotnet/CloudProjectDatabase/IpRestriction.cs index 61fd82b9..cb1fdb25 100644 --- a/sdk/dotnet/CloudProjectDatabase/IpRestriction.cs +++ b/sdk/dotnet/CloudProjectDatabase/IpRestriction.cs @@ -42,10 +42,12 @@ namespace Pulumi.Ovh.CloudProjectDatabase /// /// ## Import /// - /// OVHcloud Managed database cluster IP restrictions can be imported using the `service_name`, `engine`, `cluster_id` and the `ip`, separated by "/" E.g., bash + /// OVHcloud Managed database cluster IP restrictions can be imported using the `service_name`, `engine`, `cluster_id` and the `ip`, separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:CloudProjectDatabase/ipRestriction:IpRestriction my_ip_restriction service_name/engine/cluster_id/178.97.6.0/24 + /// $ pulumi import ovh:CloudProjectDatabase/ipRestriction:IpRestriction my_ip_restriction service_name/engine/cluster_id/178.97.6.0/24 /// ``` /// [OvhResourceType("ovh:CloudProjectDatabase/ipRestriction:IpRestriction")] diff --git a/sdk/dotnet/CloudProjectDatabase/KafkaAcl.cs b/sdk/dotnet/CloudProjectDatabase/KafkaAcl.cs index 2f6539a6..136d0383 100644 --- a/sdk/dotnet/CloudProjectDatabase/KafkaAcl.cs +++ b/sdk/dotnet/CloudProjectDatabase/KafkaAcl.cs @@ -43,10 +43,12 @@ namespace Pulumi.Ovh.CloudProjectDatabase /// /// ## Import /// - /// OVHcloud Managed kafka clusters ACLs can be imported using the `service_name`, `cluster_id` and `id` of the acl, separated by "/" E.g., bash + /// OVHcloud Managed kafka clusters ACLs can be imported using the `service_name`, `cluster_id` and `id` of the acl, separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:CloudProjectDatabase/kafkaAcl:KafkaAcl my_acl service_name/cluster_id/id + /// $ pulumi import ovh:CloudProjectDatabase/kafkaAcl:KafkaAcl my_acl service_name/cluster_id/id /// ``` /// [OvhResourceType("ovh:CloudProjectDatabase/kafkaAcl:KafkaAcl")] diff --git a/sdk/dotnet/CloudProjectDatabase/KafkaSchemaRegistryAcl.cs b/sdk/dotnet/CloudProjectDatabase/KafkaSchemaRegistryAcl.cs index 9bbc8b23..ec59e83a 100644 --- a/sdk/dotnet/CloudProjectDatabase/KafkaSchemaRegistryAcl.cs +++ b/sdk/dotnet/CloudProjectDatabase/KafkaSchemaRegistryAcl.cs @@ -43,10 +43,12 @@ namespace Pulumi.Ovh.CloudProjectDatabase /// /// ## Import /// - /// OVHcloud 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., bash + /// OVHcloud 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., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:CloudProjectDatabase/kafkaSchemaRegistryAcl:KafkaSchemaRegistryAcl my_schemaRegistryAcl service_name/cluster_id/id + /// $ pulumi import ovh:CloudProjectDatabase/kafkaSchemaRegistryAcl:KafkaSchemaRegistryAcl my_schemaRegistryAcl service_name/cluster_id/id /// ``` /// [OvhResourceType("ovh:CloudProjectDatabase/kafkaSchemaRegistryAcl:KafkaSchemaRegistryAcl")] diff --git a/sdk/dotnet/CloudProjectDatabase/KafkaTopic.cs b/sdk/dotnet/CloudProjectDatabase/KafkaTopic.cs index b4f12bfb..9a8b41d5 100644 --- a/sdk/dotnet/CloudProjectDatabase/KafkaTopic.cs +++ b/sdk/dotnet/CloudProjectDatabase/KafkaTopic.cs @@ -45,10 +45,12 @@ namespace Pulumi.Ovh.CloudProjectDatabase /// /// ## Import /// - /// OVHcloud Managed kafka clusters topics can be imported using the `service_name`, `cluster_id` and `id` of the topic, separated by "/" E.g., bash + /// OVHcloud Managed kafka clusters topics can be imported using the `service_name`, `cluster_id` and `id` of the topic, separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:CloudProjectDatabase/kafkaTopic:KafkaTopic my_topic service_name/cluster_id/id + /// $ pulumi import ovh:CloudProjectDatabase/kafkaTopic:KafkaTopic my_topic service_name/cluster_id/id /// ``` /// [OvhResourceType("ovh:CloudProjectDatabase/kafkaTopic:KafkaTopic")] diff --git a/sdk/dotnet/CloudProjectDatabase/M3DbNamespace.cs b/sdk/dotnet/CloudProjectDatabase/M3DbNamespace.cs index 0d83c043..3164fd80 100644 --- a/sdk/dotnet/CloudProjectDatabase/M3DbNamespace.cs +++ b/sdk/dotnet/CloudProjectDatabase/M3DbNamespace.cs @@ -42,10 +42,12 @@ namespace Pulumi.Ovh.CloudProjectDatabase /// /// ## Import /// - /// OVHcloud Managed M3DB clusters namespaces can be imported using the `service_name`, `cluster_id` and `id` of the namespace, separated by "/" E.g., bash + /// OVHcloud Managed M3DB clusters namespaces can be imported using the `service_name`, `cluster_id` and `id` of the namespace, separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:CloudProjectDatabase/m3DbNamespace:M3DbNamespace my_namespace service_name/cluster_id/id + /// $ pulumi import ovh:CloudProjectDatabase/m3DbNamespace:M3DbNamespace my_namespace service_name/cluster_id/id /// ``` /// [OvhResourceType("ovh:CloudProjectDatabase/m3DbNamespace:M3DbNamespace")] diff --git a/sdk/dotnet/CloudProjectDatabase/M3DbUser.cs b/sdk/dotnet/CloudProjectDatabase/M3DbUser.cs index 5800e967..f46ab8a6 100644 --- a/sdk/dotnet/CloudProjectDatabase/M3DbUser.cs +++ b/sdk/dotnet/CloudProjectDatabase/M3DbUser.cs @@ -12,10 +12,12 @@ namespace Pulumi.Ovh.CloudProjectDatabase /// /// ## Import /// - /// OVHcloud Managed M3DB clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., bash + /// OVHcloud Managed M3DB clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:CloudProjectDatabase/m3DbUser:M3DbUser my_user service_name/cluster_id/id + /// $ pulumi import ovh:CloudProjectDatabase/m3DbUser:M3DbUser my_user service_name/cluster_id/id /// ``` /// [OvhResourceType("ovh:CloudProjectDatabase/m3DbUser:M3DbUser")] diff --git a/sdk/dotnet/CloudProjectDatabase/MongoDbUser.cs b/sdk/dotnet/CloudProjectDatabase/MongoDbUser.cs index 3083039d..810c772c 100644 --- a/sdk/dotnet/CloudProjectDatabase/MongoDbUser.cs +++ b/sdk/dotnet/CloudProjectDatabase/MongoDbUser.cs @@ -12,10 +12,12 @@ namespace Pulumi.Ovh.CloudProjectDatabase /// /// ## Import /// - /// OVHcloud Managed MongoDB clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., bash + /// OVHcloud Managed MongoDB clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:CloudProjectDatabase/mongoDbUser:MongoDbUser my_user service_name/cluster_id/id + /// $ pulumi import ovh:CloudProjectDatabase/mongoDbUser:MongoDbUser my_user service_name/cluster_id/id /// ``` /// [OvhResourceType("ovh:CloudProjectDatabase/mongoDbUser:MongoDbUser")] @@ -52,8 +54,25 @@ public partial class MongoDbUser : global::Pulumi.CustomResource public Output PasswordReset { get; private set; } = null!; /// - /// Roles the user belongs to. + /// Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles /// Available roles: + /// * `backup@admin` + /// * `clusterAdmin@admin` + /// * `clusterManager@admin` + /// * `clusterMonitor@admin` + /// * `dbAdmin@(defined db)` + /// * `dbAdminAnyDatabase@admin` + /// * `dbOwner@(defined db)` + /// * `enableSharding@(defined db)` + /// * `hostManager@admin` + /// * `read@(defined db)` + /// * `readAnyDatabase@admin` + /// * `readWrite@(defined db)` + /// * `readWriteAnyDatabase@admin` + /// * `restore@admin` + /// * `root@admin` + /// * `userAdmin@(defined db)` + /// * `userAdminAnyDatabase@admin` /// [Output("roles")] public Output> Roles { get; private set; } = null!; @@ -144,8 +163,25 @@ public sealed class MongoDbUserArgs : global::Pulumi.ResourceArgs private InputList? _roles; /// - /// Roles the user belongs to. + /// Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles /// Available roles: + /// * `backup@admin` + /// * `clusterAdmin@admin` + /// * `clusterManager@admin` + /// * `clusterMonitor@admin` + /// * `dbAdmin@(defined db)` + /// * `dbAdminAnyDatabase@admin` + /// * `dbOwner@(defined db)` + /// * `enableSharding@(defined db)` + /// * `hostManager@admin` + /// * `read@(defined db)` + /// * `readAnyDatabase@admin` + /// * `readWrite@(defined db)` + /// * `readWriteAnyDatabase@admin` + /// * `restore@admin` + /// * `root@admin` + /// * `userAdmin@(defined db)` + /// * `userAdminAnyDatabase@admin` /// public InputList Roles { @@ -212,8 +248,25 @@ public Input? Password private InputList? _roles; /// - /// Roles the user belongs to. + /// Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles /// Available roles: + /// * `backup@admin` + /// * `clusterAdmin@admin` + /// * `clusterManager@admin` + /// * `clusterMonitor@admin` + /// * `dbAdmin@(defined db)` + /// * `dbAdminAnyDatabase@admin` + /// * `dbOwner@(defined db)` + /// * `enableSharding@(defined db)` + /// * `hostManager@admin` + /// * `read@(defined db)` + /// * `readAnyDatabase@admin` + /// * `readWrite@(defined db)` + /// * `readWriteAnyDatabase@admin` + /// * `restore@admin` + /// * `root@admin` + /// * `userAdmin@(defined db)` + /// * `userAdminAnyDatabase@admin` /// public InputList Roles { diff --git a/sdk/dotnet/CloudProjectDatabase/OpensearchPattern.cs b/sdk/dotnet/CloudProjectDatabase/OpensearchPattern.cs index 2c6a76bf..3961e230 100644 --- a/sdk/dotnet/CloudProjectDatabase/OpensearchPattern.cs +++ b/sdk/dotnet/CloudProjectDatabase/OpensearchPattern.cs @@ -42,10 +42,12 @@ namespace Pulumi.Ovh.CloudProjectDatabase /// /// ## Import /// - /// OVHcloud Managed opensearch clusters patterns can be imported using the `service_name`, `cluster_id` and `id` of the pattern, separated by "/" E.g., bash + /// OVHcloud Managed opensearch clusters patterns can be imported using the `service_name`, `cluster_id` and `id` of the pattern, separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:CloudProjectDatabase/opensearchPattern:OpensearchPattern my_pattern service_name/cluster_id/id + /// $ pulumi import ovh:CloudProjectDatabase/opensearchPattern:OpensearchPattern my_pattern service_name/cluster_id/id /// ``` /// [OvhResourceType("ovh:CloudProjectDatabase/opensearchPattern:OpensearchPattern")] diff --git a/sdk/dotnet/CloudProjectDatabase/OpensearchUser.cs b/sdk/dotnet/CloudProjectDatabase/OpensearchUser.cs index f81963e3..2a244cad 100644 --- a/sdk/dotnet/CloudProjectDatabase/OpensearchUser.cs +++ b/sdk/dotnet/CloudProjectDatabase/OpensearchUser.cs @@ -12,10 +12,12 @@ namespace Pulumi.Ovh.CloudProjectDatabase /// /// ## Import /// - /// OVHcloud Managed OpenSearch clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., bash + /// OVHcloud Managed OpenSearch clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:CloudProjectDatabase/opensearchUser:OpensearchUser my_user service_name/cluster_id/id + /// $ pulumi import ovh:CloudProjectDatabase/opensearchUser:OpensearchUser my_user service_name/cluster_id/id /// ``` /// [OvhResourceType("ovh:CloudProjectDatabase/opensearchUser:OpensearchUser")] diff --git a/sdk/dotnet/CloudProjectDatabase/PostgresSqlConnectionPool.cs b/sdk/dotnet/CloudProjectDatabase/PostgresSqlConnectionPool.cs new file mode 100644 index 00000000..07f1acae --- /dev/null +++ b/sdk/dotnet/CloudProjectDatabase/PostgresSqlConnectionPool.cs @@ -0,0 +1,254 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.CloudProjectDatabase +{ + /// + /// ## Import + /// + /// OVHcloud Managed PostgreSQL clusters connection pools can be imported using the `service_name`, `cluster_id` and `id` of the connection pool, separated by "/" E.g., + /// + /// bash + /// + /// ```sh + /// $ pulumi import ovh:CloudProjectDatabase/postgresSqlConnectionPool:PostgresSqlConnectionPool my_connection_pool service_name/cluster_id/id + /// ``` + /// + [OvhResourceType("ovh:CloudProjectDatabase/postgresSqlConnectionPool:PostgresSqlConnectionPool")] + public partial class PostgresSqlConnectionPool : global::Pulumi.CustomResource + { + /// + /// Cluster ID. + /// + [Output("clusterId")] + public Output ClusterId { get; private set; } = null!; + + /// + /// Database ID for a database that belongs to the Database cluster given above. + /// + [Output("databaseId")] + public Output DatabaseId { get; private set; } = null!; + + /// + /// Connection mode to the connection pool + /// Available modes: + /// + [Output("mode")] + public Output Mode { get; private set; } = null!; + + /// + /// Name of the connection pool. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// Port of the connection pool. + /// + [Output("port")] + public Output Port { get; private set; } = null!; + + /// + /// The id of the public cloud project. If omitted, + /// the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + /// + [Output("serviceName")] + public Output ServiceName { get; private set; } = null!; + + /// + /// Size of the connection pool. + /// + [Output("size")] + public Output Size { get; private set; } = null!; + + /// + /// Ssl connection mode for the pool. + /// + [Output("sslMode")] + public Output SslMode { get; private set; } = null!; + + /// + /// Connection URI to the pool. + /// + [Output("uri")] + public Output Uri { get; private set; } = null!; + + /// + /// Database user authorized to connect to the pool, if none all the users are allowed. + /// + [Output("userId")] + public Output UserId { get; private set; } = null!; + + + /// + /// Create a PostgresSqlConnectionPool resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public PostgresSqlConnectionPool(string name, PostgresSqlConnectionPoolArgs args, CustomResourceOptions? options = null) + : base("ovh:CloudProjectDatabase/postgresSqlConnectionPool:PostgresSqlConnectionPool", name, args ?? new PostgresSqlConnectionPoolArgs(), MakeResourceOptions(options, "")) + { + } + + private PostgresSqlConnectionPool(string name, Input id, PostgresSqlConnectionPoolState? state = null, CustomResourceOptions? options = null) + : base("ovh:CloudProjectDatabase/postgresSqlConnectionPool:PostgresSqlConnectionPool", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/ovh/pulumi-ovh", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing PostgresSqlConnectionPool resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static PostgresSqlConnectionPool Get(string name, Input id, PostgresSqlConnectionPoolState? state = null, CustomResourceOptions? options = null) + { + return new PostgresSqlConnectionPool(name, id, state, options); + } + } + + public sealed class PostgresSqlConnectionPoolArgs : global::Pulumi.ResourceArgs + { + /// + /// Cluster ID. + /// + [Input("clusterId", required: true)] + public Input ClusterId { get; set; } = null!; + + /// + /// Database ID for a database that belongs to the Database cluster given above. + /// + [Input("databaseId", required: true)] + public Input DatabaseId { get; set; } = null!; + + /// + /// Connection mode to the connection pool + /// Available modes: + /// + [Input("mode", required: true)] + public Input Mode { get; set; } = null!; + + /// + /// Name of the connection pool. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The id of the public cloud project. If omitted, + /// the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + /// + [Input("serviceName", required: true)] + public Input ServiceName { get; set; } = null!; + + /// + /// Size of the connection pool. + /// + [Input("size", required: true)] + public Input Size { get; set; } = null!; + + /// + /// Database user authorized to connect to the pool, if none all the users are allowed. + /// + [Input("userId")] + public Input? UserId { get; set; } + + public PostgresSqlConnectionPoolArgs() + { + } + public static new PostgresSqlConnectionPoolArgs Empty => new PostgresSqlConnectionPoolArgs(); + } + + public sealed class PostgresSqlConnectionPoolState : global::Pulumi.ResourceArgs + { + /// + /// Cluster ID. + /// + [Input("clusterId")] + public Input? ClusterId { get; set; } + + /// + /// Database ID for a database that belongs to the Database cluster given above. + /// + [Input("databaseId")] + public Input? DatabaseId { get; set; } + + /// + /// Connection mode to the connection pool + /// Available modes: + /// + [Input("mode")] + public Input? Mode { get; set; } + + /// + /// Name of the connection pool. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Port of the connection pool. + /// + [Input("port")] + public Input? Port { get; set; } + + /// + /// The id of the public cloud project. If omitted, + /// the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + /// + [Input("serviceName")] + public Input? ServiceName { get; set; } + + /// + /// Size of the connection pool. + /// + [Input("size")] + public Input? Size { get; set; } + + /// + /// Ssl connection mode for the pool. + /// + [Input("sslMode")] + public Input? SslMode { get; set; } + + /// + /// Connection URI to the pool. + /// + [Input("uri")] + public Input? Uri { get; set; } + + /// + /// Database user authorized to connect to the pool, if none all the users are allowed. + /// + [Input("userId")] + public Input? UserId { get; set; } + + public PostgresSqlConnectionPoolState() + { + } + public static new PostgresSqlConnectionPoolState Empty => new PostgresSqlConnectionPoolState(); + } +} diff --git a/sdk/dotnet/CloudProjectDatabase/PostgresSqlUser.cs b/sdk/dotnet/CloudProjectDatabase/PostgresSqlUser.cs index cd151943..396f5791 100644 --- a/sdk/dotnet/CloudProjectDatabase/PostgresSqlUser.cs +++ b/sdk/dotnet/CloudProjectDatabase/PostgresSqlUser.cs @@ -12,10 +12,12 @@ namespace Pulumi.Ovh.CloudProjectDatabase /// /// ## Import /// - /// OVHcloud Managed PostgreSQL clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., bash + /// OVHcloud Managed PostgreSQL clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:CloudProjectDatabase/postgresSqlUser:PostgresSqlUser my_user service_name/cluster_id/id + /// $ pulumi import ovh:CloudProjectDatabase/postgresSqlUser:PostgresSqlUser my_user service_name/cluster_id/id /// ``` /// [OvhResourceType("ovh:CloudProjectDatabase/postgresSqlUser:PostgresSqlUser")] diff --git a/sdk/dotnet/CloudProjectDatabase/RedisUser.cs b/sdk/dotnet/CloudProjectDatabase/RedisUser.cs index 5373c7d1..322a4bb8 100644 --- a/sdk/dotnet/CloudProjectDatabase/RedisUser.cs +++ b/sdk/dotnet/CloudProjectDatabase/RedisUser.cs @@ -12,10 +12,12 @@ namespace Pulumi.Ovh.CloudProjectDatabase /// /// ## Import /// - /// OVHcloud Managed Redis clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., bash + /// OVHcloud Managed Redis clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:CloudProjectDatabase/redisUser:RedisUser my_user service_name/cluster_id/id + /// $ pulumi import ovh:CloudProjectDatabase/redisUser:RedisUser my_user service_name/cluster_id/id /// ``` /// [OvhResourceType("ovh:CloudProjectDatabase/redisUser:RedisUser")] diff --git a/sdk/dotnet/CloudProjectDatabase/User.cs b/sdk/dotnet/CloudProjectDatabase/User.cs index d70f291b..acb50eb1 100644 --- a/sdk/dotnet/CloudProjectDatabase/User.cs +++ b/sdk/dotnet/CloudProjectDatabase/User.cs @@ -12,10 +12,12 @@ namespace Pulumi.Ovh.CloudProjectDatabase /// /// ## Import /// - /// OVHcloud Managed database clusters users can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the user, separated by "/" E.g., bash + /// OVHcloud Managed database clusters users can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the user, separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:CloudProjectDatabase/user:User my_user service_name/engine/cluster_id/id + /// $ pulumi import ovh:CloudProjectDatabase/user:User my_user service_name/engine/cluster_id/id /// ``` /// [OvhResourceType("ovh:CloudProjectDatabase/user:User")] diff --git a/sdk/dotnet/Dbaas/GetLogsCluster.cs b/sdk/dotnet/Dbaas/GetLogsCluster.cs index 95643090..a245a59e 100644 --- a/sdk/dotnet/Dbaas/GetLogsCluster.cs +++ b/sdk/dotnet/Dbaas/GetLogsCluster.cs @@ -115,10 +115,6 @@ public GetLogsClusterInvokeArgs() [OutputType] public sealed class GetLogsClusterResult { - /// - /// is the URN of the DBaas logs instance - /// - public readonly string DBaasURN; /// /// is allowed networks for ARCHIVE flow type /// @@ -165,11 +161,13 @@ public sealed class GetLogsClusterResult /// public readonly string Region; public readonly string ServiceName; + /// + /// is the URN of the DBaas logs instance + /// + public readonly string Urn; [OutputConstructor] private GetLogsClusterResult( - string DBaasURN, - ImmutableArray archiveAllowedNetworks, string? clusterId, @@ -194,9 +192,10 @@ private GetLogsClusterResult( string region, - string serviceName) + string serviceName, + + string urn) { - this.DBaasURN = DBaasURN; ArchiveAllowedNetworks = archiveAllowedNetworks; ClusterId = clusterId; ClusterType = clusterType; @@ -210,6 +209,7 @@ private GetLogsClusterResult( QueryAllowedNetworks = queryAllowedNetworks; Region = region; ServiceName = serviceName; + Urn = urn; } } } diff --git a/sdk/dotnet/Dbaas/LogsCluster.cs b/sdk/dotnet/Dbaas/LogsCluster.cs index 27127c1f..512d1689 100644 --- a/sdk/dotnet/Dbaas/LogsCluster.cs +++ b/sdk/dotnet/Dbaas/LogsCluster.cs @@ -43,10 +43,12 @@ namespace Pulumi.Ovh.Dbaas /// /// ## Import /// - /// OVHcloud DBaaS Log Data Platform clusters can be imported using the `service_name` and `cluster_id` of the cluster, separated by "/" E.g., bash + /// OVHcloud DBaaS Log Data Platform clusters can be imported using the `service_name` and `cluster_id` of the cluster, separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:Dbaas/logsCluster:LogsCluster ldp service_name/cluster_id + /// $ pulumi import ovh:Dbaas/logsCluster:LogsCluster ldp service_name/cluster_id /// ``` /// [OvhResourceType("ovh:Dbaas/logsCluster:LogsCluster")] diff --git a/sdk/dotnet/Dedicated/Inputs/ServerNetworkingInterfaceArgs.cs b/sdk/dotnet/Dedicated/Inputs/ServerNetworkingInterfaceArgs.cs index 849e6018..18e4d8cc 100644 --- a/sdk/dotnet/Dedicated/Inputs/ServerNetworkingInterfaceArgs.cs +++ b/sdk/dotnet/Dedicated/Inputs/ServerNetworkingInterfaceArgs.cs @@ -14,12 +14,19 @@ public sealed class ServerNetworkingInterfaceArgs : global::Pulumi.ResourceArgs { [Input("macs", required: true)] private InputList? _macs; + + /// + /// Interface Mac address + /// public InputList Macs { get => _macs ?? (_macs = new InputList()); set => _macs = value; } + /// + /// Interface type + /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Dedicated/Inputs/ServerNetworkingInterfaceGetArgs.cs b/sdk/dotnet/Dedicated/Inputs/ServerNetworkingInterfaceGetArgs.cs index 9c44c7a1..6fcb9948 100644 --- a/sdk/dotnet/Dedicated/Inputs/ServerNetworkingInterfaceGetArgs.cs +++ b/sdk/dotnet/Dedicated/Inputs/ServerNetworkingInterfaceGetArgs.cs @@ -14,12 +14,19 @@ public sealed class ServerNetworkingInterfaceGetArgs : global::Pulumi.ResourceAr { [Input("macs", required: true)] private InputList? _macs; + + /// + /// Interface Mac address + /// public InputList Macs { get => _macs ?? (_macs = new InputList()); set => _macs = value; } + /// + /// Interface type + /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Dedicated/NasHAPartition.cs b/sdk/dotnet/Dedicated/NasHAPartition.cs index d6057feb..124f4feb 100644 --- a/sdk/dotnet/Dedicated/NasHAPartition.cs +++ b/sdk/dotnet/Dedicated/NasHAPartition.cs @@ -37,7 +37,7 @@ namespace Pulumi.Ovh.Dedicated /// HA-NAS can be imported using the `{service_name}/{name}`, e.g. /// /// ```sh - /// $ pulumi import ovh:Dedicated/nasHAPartition:NasHAPartition my-partition zpool-12345/my-partition` + /// $ pulumi import ovh:Dedicated/nasHAPartition:NasHAPartition my-partition zpool-12345/my-partition` /// ``` /// [OvhResourceType("ovh:Dedicated/nasHAPartition:NasHAPartition")] diff --git a/sdk/dotnet/Dedicated/NasHAPartitionAccess.cs b/sdk/dotnet/Dedicated/NasHAPartitionAccess.cs index c790ebfe..b746133f 100644 --- a/sdk/dotnet/Dedicated/NasHAPartitionAccess.cs +++ b/sdk/dotnet/Dedicated/NasHAPartitionAccess.cs @@ -38,7 +38,7 @@ namespace Pulumi.Ovh.Dedicated /// HA-NAS partition access can be imported using the `{service_name}/{partition_name}/{ip}`, e.g. /// /// ```sh - /// $ pulumi import ovh:Dedicated/nasHAPartitionAccess:NasHAPartitionAccess my-partition zpool-12345/my-partition/123.123.123.123%2F32` + /// $ pulumi import ovh:Dedicated/nasHAPartitionAccess:NasHAPartitionAccess my-partition zpool-12345/my-partition/123.123.123.123%2F32` /// ``` /// [OvhResourceType("ovh:Dedicated/nasHAPartitionAccess:NasHAPartitionAccess")] diff --git a/sdk/dotnet/Dedicated/NasHAPartitionSnapshot.cs b/sdk/dotnet/Dedicated/NasHAPartitionSnapshot.cs index 8cf1280c..c6c77da2 100644 --- a/sdk/dotnet/Dedicated/NasHAPartitionSnapshot.cs +++ b/sdk/dotnet/Dedicated/NasHAPartitionSnapshot.cs @@ -37,7 +37,7 @@ namespace Pulumi.Ovh.Dedicated /// HA-NAS partition snapshot can be imported using the `{service_name}/{partition_name}/{type}`, e.g. /// /// ```sh - /// $ pulumi import ovh:Dedicated/nasHAPartitionSnapshot:NasHAPartitionSnapshot my-partition zpool-12345/my-partition/day-3` + /// $ pulumi import ovh:Dedicated/nasHAPartitionSnapshot:NasHAPartitionSnapshot my-partition zpool-12345/my-partition/day-3` /// ``` /// [OvhResourceType("ovh:Dedicated/nasHAPartitionSnapshot:NasHAPartitionSnapshot")] diff --git a/sdk/dotnet/Dedicated/Outputs/ServerNetworkingInterface.cs b/sdk/dotnet/Dedicated/Outputs/ServerNetworkingInterface.cs index a4dfff7a..5e9762e2 100644 --- a/sdk/dotnet/Dedicated/Outputs/ServerNetworkingInterface.cs +++ b/sdk/dotnet/Dedicated/Outputs/ServerNetworkingInterface.cs @@ -13,7 +13,13 @@ namespace Pulumi.Ovh.Dedicated.Outputs [OutputType] public sealed class ServerNetworkingInterface { + /// + /// Interface Mac address + /// public readonly ImmutableArray Macs; + /// + /// Interface type + /// public readonly string Type; [OutputConstructor] diff --git a/sdk/dotnet/Dedicated/ServerInstallTask.cs b/sdk/dotnet/Dedicated/ServerInstallTask.cs index 66a7d8fd..22906198 100644 --- a/sdk/dotnet/Dedicated/ServerInstallTask.cs +++ b/sdk/dotnet/Dedicated/ServerInstallTask.cs @@ -61,10 +61,12 @@ namespace Pulumi.Ovh.Dedicated /// /// Installation task can be imported using the `service_name` (`nsXXXX.ip...`) of the baremetal server, the `template_name` used /// - /// and ths `task_id`, separated by "/" E.g., bash + /// and ths `task_id`, separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:Dedicated/serverInstallTask:ServerInstallTask ovh_dedicated_server_install_task nsXXXX.ipXXXX/template_name/12345 + /// $ pulumi import ovh:Dedicated/serverInstallTask:ServerInstallTask ovh_dedicated_server_install_task nsXXXX.ipXXXX/template_name/12345 /// ``` /// [OvhResourceType("ovh:Dedicated/serverInstallTask:ServerInstallTask")] diff --git a/sdk/dotnet/Dedicated/ServerUpdate.cs b/sdk/dotnet/Dedicated/ServerUpdate.cs index 2d737444..13ed6132 100644 --- a/sdk/dotnet/Dedicated/ServerUpdate.cs +++ b/sdk/dotnet/Dedicated/ServerUpdate.cs @@ -47,6 +47,12 @@ public partial class ServerUpdate : global::Pulumi.CustomResource [Output("bootId")] public Output BootId { get; private set; } = null!; + /// + /// boot script of the server + /// + [Output("bootScript")] + public Output BootScript { get; private set; } = null!; + /// /// Icmp monitoring state /// @@ -118,6 +124,12 @@ public sealed class ServerUpdateArgs : global::Pulumi.ResourceArgs [Input("bootId")] public Input? BootId { get; set; } + /// + /// boot script of the server + /// + [Input("bootScript")] + public Input? BootScript { get; set; } + /// /// Icmp monitoring state /// @@ -150,6 +162,12 @@ public sealed class ServerUpdateState : global::Pulumi.ResourceArgs [Input("bootId")] public Input? BootId { get; set; } + /// + /// boot script of the server + /// + [Input("bootScript")] + public Input? BootScript { get; set; } + /// /// Icmp monitoring state /// diff --git a/sdk/dotnet/Domain/Zone.cs b/sdk/dotnet/Domain/Zone.cs index cbcb04bf..7b5dfc05 100644 --- a/sdk/dotnet/Domain/Zone.cs +++ b/sdk/dotnet/Domain/Zone.cs @@ -66,10 +66,10 @@ namespace Pulumi.Ovh.Domain /// /// Zone can be imported using the `order_id` that can be retrieved in the [order page](https://www.ovh.com/manager/#/dedicated/billing/orders/orders) at the creation time of the zone. /// - /// bash + /// bash /// /// ```sh - /// $ pulumi import ovh:Domain/zone:Zone zone order_id + /// $ pulumi import ovh:Domain/zone:Zone zone order_id /// ``` /// [OvhResourceType("ovh:Domain/zone:Zone")] diff --git a/sdk/dotnet/Domain/ZoneRecord.cs b/sdk/dotnet/Domain/ZoneRecord.cs index 6374a067..ca44ced3 100644 --- a/sdk/dotnet/Domain/ZoneRecord.cs +++ b/sdk/dotnet/Domain/ZoneRecord.cs @@ -35,10 +35,12 @@ namespace Pulumi.Ovh.Domain /// /// ## Import /// - /// OVHcloud 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., bash + /// OVHcloud 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., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:Domain/zoneRecord:ZoneRecord test id.zone + /// $ pulumi import ovh:Domain/zoneRecord:ZoneRecord test id.zone /// ``` /// [OvhResourceType("ovh:Domain/zoneRecord:ZoneRecord")] diff --git a/sdk/dotnet/GetServer.cs b/sdk/dotnet/GetServer.cs index a6566b02..69529d15 100644 --- a/sdk/dotnet/GetServer.cs +++ b/sdk/dotnet/GetServer.cs @@ -110,6 +110,10 @@ public sealed class GetServerResult /// public readonly int BootId; /// + /// boot script of the server + /// + public readonly string BootScript; + /// /// dedicated server commercial range /// public readonly string CommercialRange; @@ -201,6 +205,8 @@ private GetServerResult( int bootId, + string bootScript, + string commercialRange, string datacenter, @@ -247,6 +253,7 @@ private GetServerResult( { this.ServerURN = ServerURN; BootId = bootId; + BootScript = bootScript; CommercialRange = commercialRange; Datacenter = datacenter; EnabledPublicVnis = enabledPublicVnis; diff --git a/sdk/dotnet/Iam/GetPermissionsGroup.cs b/sdk/dotnet/Iam/GetPermissionsGroup.cs new file mode 100644 index 00000000..7cc1e03f --- /dev/null +++ b/sdk/dotnet/Iam/GetPermissionsGroup.cs @@ -0,0 +1,153 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Iam +{ + public static class GetPermissionsGroup + { + public static Task InvokeAsync(GetPermissionsGroupArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("ovh:Iam/getPermissionsGroup:getPermissionsGroup", args ?? new GetPermissionsGroupArgs(), options.WithDefaults()); + + public static Output Invoke(GetPermissionsGroupInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("ovh:Iam/getPermissionsGroup:getPermissionsGroup", args ?? new GetPermissionsGroupInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetPermissionsGroupArgs : global::Pulumi.InvokeArgs + { + [Input("allows")] + private List? _allows; + public List Allows + { + get => _allows ?? (_allows = new List()); + set => _allows = value; + } + + [Input("denies")] + private List? _denies; + public List Denies + { + get => _denies ?? (_denies = new List()); + set => _denies = value; + } + + [Input("description")] + public string? Description { get; set; } + + [Input("excepts")] + private List? _excepts; + public List Excepts + { + get => _excepts ?? (_excepts = new List()); + set => _excepts = value; + } + + [Input("updatedAt")] + public string? UpdatedAt { get; set; } + + [Input("urn", required: true)] + public string Urn { get; set; } = null!; + + public GetPermissionsGroupArgs() + { + } + public static new GetPermissionsGroupArgs Empty => new GetPermissionsGroupArgs(); + } + + public sealed class GetPermissionsGroupInvokeArgs : global::Pulumi.InvokeArgs + { + [Input("allows")] + private InputList? _allows; + public InputList Allows + { + get => _allows ?? (_allows = new InputList()); + set => _allows = value; + } + + [Input("denies")] + private InputList? _denies; + public InputList Denies + { + get => _denies ?? (_denies = new InputList()); + set => _denies = value; + } + + [Input("description")] + public Input? Description { get; set; } + + [Input("excepts")] + private InputList? _excepts; + public InputList Excepts + { + get => _excepts ?? (_excepts = new InputList()); + set => _excepts = value; + } + + [Input("updatedAt")] + public Input? UpdatedAt { get; set; } + + [Input("urn", required: true)] + public Input Urn { get; set; } = null!; + + public GetPermissionsGroupInvokeArgs() + { + } + public static new GetPermissionsGroupInvokeArgs Empty => new GetPermissionsGroupInvokeArgs(); + } + + + [OutputType] + public sealed class GetPermissionsGroupResult + { + public readonly ImmutableArray Allows; + public readonly string CreatedAt; + public readonly ImmutableArray Denies; + public readonly string? Description; + public readonly ImmutableArray Excepts; + public readonly string Id; + public readonly string Name; + public readonly string Owner; + public readonly string UpdatedAt; + public readonly string Urn; + + [OutputConstructor] + private GetPermissionsGroupResult( + ImmutableArray allows, + + string createdAt, + + ImmutableArray denies, + + string? description, + + ImmutableArray excepts, + + string id, + + string name, + + string owner, + + string updatedAt, + + string urn) + { + Allows = allows; + CreatedAt = createdAt; + Denies = denies; + Description = description; + Excepts = excepts; + Id = id; + Name = name; + Owner = owner; + UpdatedAt = updatedAt; + Urn = urn; + } + } +} diff --git a/sdk/dotnet/Iam/GetPermissionsGroups.cs b/sdk/dotnet/Iam/GetPermissionsGroups.cs new file mode 100644 index 00000000..24fec016 --- /dev/null +++ b/sdk/dotnet/Iam/GetPermissionsGroups.cs @@ -0,0 +1,91 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Iam +{ + public static class GetPermissionsGroups + { + /// + /// Use this data source to retrieve an IAM permissions group. + /// + /// {{% examples %}} + /// ## Example Usage + /// {{% example %}} + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Ovh = Pulumi.Ovh; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var website = Ovh.Iam.GetPermissionsGroup.Invoke(new() + /// { + /// Urn = "urn:v1:eu:permissionsGroup:ovh:controlPanelAccess", + /// }); + /// + /// }); + /// ``` + /// {{% /example %}} + /// {{% /examples %}} + /// + public static Task InvokeAsync(InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("ovh:Iam/getPermissionsGroups:getPermissionsGroups", InvokeArgs.Empty, options.WithDefaults()); + + /// + /// Use this data source to retrieve an IAM permissions group. + /// + /// {{% examples %}} + /// ## Example Usage + /// {{% example %}} + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Ovh = Pulumi.Ovh; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var website = Ovh.Iam.GetPermissionsGroup.Invoke(new() + /// { + /// Urn = "urn:v1:eu:permissionsGroup:ovh:controlPanelAccess", + /// }); + /// + /// }); + /// ``` + /// {{% /example %}} + /// {{% /examples %}} + /// + public static Output Invoke(InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("ovh:Iam/getPermissionsGroups:getPermissionsGroups", InvokeArgs.Empty, options.WithDefaults()); + } + + + [OutputType] + public sealed class GetPermissionsGroupsResult + { + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + public readonly ImmutableArray Urns; + + [OutputConstructor] + private GetPermissionsGroupsResult( + string id, + + ImmutableArray urns) + { + Id = id; + Urns = urns; + } + } +} diff --git a/sdk/dotnet/Iam/GetPolicy.cs b/sdk/dotnet/Iam/GetPolicy.cs index 7b867b3d..ee7ee8c3 100644 --- a/sdk/dotnet/Iam/GetPolicy.cs +++ b/sdk/dotnet/Iam/GetPolicy.cs @@ -75,7 +75,7 @@ public sealed class GetPolicyArgs : global::Pulumi.InvokeArgs private List? _allows; /// - /// List of actions allowed by the policy. + /// Set of actions allowed by the policy. /// public List Allows { @@ -87,7 +87,7 @@ public List Allows private List? _denies; /// - /// List of actions that will be denied no matter what policy exists. + /// Set of actions that will be denied no matter what policy exists. /// public List Denies { @@ -105,7 +105,7 @@ public List Denies private List? _excepts; /// - /// List of actions that will be subtracted from the `allow` list. + /// Set of actions that will be subtracted from the `allow` list. /// public List Excepts { @@ -119,6 +119,18 @@ public List Excepts [Input("id", required: true)] public string Id { get; set; } = null!; + [Input("permissionsGroups")] + private List? _permissionsGroups; + + /// + /// Set of permissions groups that apply to the policy. + /// + public List PermissionsGroups + { + get => _permissionsGroups ?? (_permissionsGroups = new List()); + set => _permissionsGroups = value; + } + public GetPolicyArgs() { } @@ -131,7 +143,7 @@ public sealed class GetPolicyInvokeArgs : global::Pulumi.InvokeArgs private InputList? _allows; /// - /// List of actions allowed by the policy. + /// Set of actions allowed by the policy. /// public InputList Allows { @@ -143,7 +155,7 @@ public InputList Allows private InputList? _denies; /// - /// List of actions that will be denied no matter what policy exists. + /// Set of actions that will be denied no matter what policy exists. /// public InputList Denies { @@ -161,7 +173,7 @@ public InputList Denies private InputList? _excepts; /// - /// List of actions that will be subtracted from the `allow` list. + /// Set of actions that will be subtracted from the `allow` list. /// public InputList Excepts { @@ -175,6 +187,18 @@ public InputList Excepts [Input("id", required: true)] public Input Id { get; set; } = null!; + [Input("permissionsGroups")] + private InputList? _permissionsGroups; + + /// + /// Set of permissions groups that apply to the policy. + /// + public InputList PermissionsGroups + { + get => _permissionsGroups ?? (_permissionsGroups = new InputList()); + set => _permissionsGroups = value; + } + public GetPolicyInvokeArgs() { } @@ -186,7 +210,7 @@ public GetPolicyInvokeArgs() public sealed class GetPolicyResult { /// - /// List of actions allowed by the policy. + /// Set of actions allowed by the policy. /// public readonly ImmutableArray Allows; /// @@ -194,7 +218,7 @@ public sealed class GetPolicyResult /// public readonly string CreatedAt; /// - /// List of actions that will be denied no matter what policy exists. + /// Set of actions that will be denied no matter what policy exists. /// public readonly ImmutableArray Denies; /// @@ -202,12 +226,12 @@ public sealed class GetPolicyResult /// public readonly string? Description; /// - /// List of actions that will be subtracted from the `allow` list. + /// Set of actions that will be subtracted from the `allow` list. /// public readonly ImmutableArray Excepts; public readonly string Id; /// - /// List of identities affected by the policy. + /// Set of identities affected by the policy. /// public readonly ImmutableArray Identities; /// @@ -219,11 +243,15 @@ public sealed class GetPolicyResult /// public readonly string Owner; /// + /// Set of permissions groups that apply to the policy. + /// + public readonly ImmutableArray PermissionsGroups; + /// /// Indicates that the policy is a default one. /// public readonly bool ReadOnly; /// - /// List of resources affected by the policy. + /// Set of resources affected by the policy. /// public readonly ImmutableArray Resources; /// @@ -251,6 +279,8 @@ private GetPolicyResult( string owner, + ImmutableArray permissionsGroups, + bool readOnly, ImmutableArray resources, @@ -266,6 +296,7 @@ private GetPolicyResult( Identities = identities; Name = name; Owner = owner; + PermissionsGroups = permissionsGroups; ReadOnly = readOnly; Resources = resources; UpdatedAt = updatedAt; diff --git a/sdk/dotnet/Iam/PermissionsGroup.cs b/sdk/dotnet/Iam/PermissionsGroup.cs new file mode 100644 index 00000000..05f7d997 --- /dev/null +++ b/sdk/dotnet/Iam/PermissionsGroup.cs @@ -0,0 +1,258 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Iam +{ + /// + /// Create am IAM permissions group. + /// + [OvhResourceType("ovh:Iam/permissionsGroup:PermissionsGroup")] + public partial class PermissionsGroup : global::Pulumi.CustomResource + { + /// + /// Set of actions allowed by the permissions group. + /// + [Output("allows")] + public Output> Allows { get; private set; } = null!; + + /// + /// Creation date of this group. + /// + [Output("createdAt")] + public Output CreatedAt { get; private set; } = null!; + + /// + /// Set of actions that will be denied no matter what permissions group exists. + /// + [Output("denies")] + public Output> Denies { get; private set; } = null!; + + /// + /// Group description. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// Set of actions that will be subtracted from the `allow` list. + /// + [Output("excepts")] + public Output> Excepts { get; private set; } = null!; + + /// + /// Name of the permissions group. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// Owner of the permissions group. + /// + [Output("owner")] + public Output Owner { get; private set; } = null!; + + /// + /// Date of the last update of this group. + /// + [Output("updatedAt")] + public Output UpdatedAt { get; private set; } = null!; + + /// + /// URN of the permissions group. + /// + [Output("urn")] + public Output Urn { get; private set; } = null!; + + + /// + /// Create a PermissionsGroup resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public PermissionsGroup(string name, PermissionsGroupArgs args, CustomResourceOptions? options = null) + : base("ovh:Iam/permissionsGroup:PermissionsGroup", name, args ?? new PermissionsGroupArgs(), MakeResourceOptions(options, "")) + { + } + + private PermissionsGroup(string name, Input id, PermissionsGroupState? state = null, CustomResourceOptions? options = null) + : base("ovh:Iam/permissionsGroup:PermissionsGroup", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/ovh/pulumi-ovh", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing PermissionsGroup resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static PermissionsGroup Get(string name, Input id, PermissionsGroupState? state = null, CustomResourceOptions? options = null) + { + return new PermissionsGroup(name, id, state, options); + } + } + + public sealed class PermissionsGroupArgs : global::Pulumi.ResourceArgs + { + [Input("allows")] + private InputList? _allows; + + /// + /// Set of actions allowed by the permissions group. + /// + public InputList Allows + { + get => _allows ?? (_allows = new InputList()); + set => _allows = value; + } + + [Input("denies")] + private InputList? _denies; + + /// + /// Set of actions that will be denied no matter what permissions group exists. + /// + public InputList Denies + { + get => _denies ?? (_denies = new InputList()); + set => _denies = value; + } + + /// + /// Group description. + /// + [Input("description", required: true)] + public Input Description { get; set; } = null!; + + [Input("excepts")] + private InputList? _excepts; + + /// + /// Set of actions that will be subtracted from the `allow` list. + /// + public InputList Excepts + { + get => _excepts ?? (_excepts = new InputList()); + set => _excepts = value; + } + + /// + /// Name of the permissions group. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Date of the last update of this group. + /// + [Input("updatedAt")] + public Input? UpdatedAt { get; set; } + + public PermissionsGroupArgs() + { + } + public static new PermissionsGroupArgs Empty => new PermissionsGroupArgs(); + } + + public sealed class PermissionsGroupState : global::Pulumi.ResourceArgs + { + [Input("allows")] + private InputList? _allows; + + /// + /// Set of actions allowed by the permissions group. + /// + public InputList Allows + { + get => _allows ?? (_allows = new InputList()); + set => _allows = value; + } + + /// + /// Creation date of this group. + /// + [Input("createdAt")] + public Input? CreatedAt { get; set; } + + [Input("denies")] + private InputList? _denies; + + /// + /// Set of actions that will be denied no matter what permissions group exists. + /// + public InputList Denies + { + get => _denies ?? (_denies = new InputList()); + set => _denies = value; + } + + /// + /// Group description. + /// + [Input("description")] + public Input? Description { get; set; } + + [Input("excepts")] + private InputList? _excepts; + + /// + /// Set of actions that will be subtracted from the `allow` list. + /// + public InputList Excepts + { + get => _excepts ?? (_excepts = new InputList()); + set => _excepts = value; + } + + /// + /// Name of the permissions group. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Owner of the permissions group. + /// + [Input("owner")] + public Input? Owner { get; set; } + + /// + /// Date of the last update of this group. + /// + [Input("updatedAt")] + public Input? UpdatedAt { get; set; } + + /// + /// URN of the permissions group. + /// + [Input("urn")] + public Input? Urn { get; set; } + + public PermissionsGroupState() + { + } + public static new PermissionsGroupState Empty => new PermissionsGroupState(); + } +} diff --git a/sdk/dotnet/Iam/Policy.cs b/sdk/dotnet/Iam/Policy.cs index d8a34389..40372999 100644 --- a/sdk/dotnet/Iam/Policy.cs +++ b/sdk/dotnet/Iam/Policy.cs @@ -70,7 +70,7 @@ public partial class Policy : global::Pulumi.CustomResource public Output CreatedAt { get; private set; } = null!; /// - /// List of actions that will be denied no matter what policy exists. + /// List of actions that will always be denied even if also allowed by this policy or another one. /// [Output("denies")] public Output> Denies { get; private set; } = null!; @@ -105,6 +105,12 @@ public partial class Policy : global::Pulumi.CustomResource [Output("owner")] public Output Owner { get; private set; } = null!; + /// + /// 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). + /// + [Output("permissionsGroups")] + public Output> PermissionsGroups { get; private set; } = null!; + /// /// Indicates that the policy is a default one. /// @@ -186,7 +192,7 @@ public InputList Allows private InputList? _denies; /// - /// List of actions that will be denied no matter what policy exists. + /// List of actions that will always be denied even if also allowed by this policy or another one. /// public InputList Denies { @@ -230,6 +236,18 @@ public InputList Identities [Input("name")] public Input? Name { get; set; } + [Input("permissionsGroups")] + private InputList? _permissionsGroups; + + /// + /// 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). + /// + public InputList PermissionsGroups + { + get => _permissionsGroups ?? (_permissionsGroups = new InputList()); + set => _permissionsGroups = value; + } + [Input("resources", required: true)] private InputList? _resources; @@ -272,7 +290,7 @@ public InputList Allows private InputList? _denies; /// - /// List of actions that will be denied no matter what policy exists. + /// List of actions that will always be denied even if also allowed by this policy or another one. /// public InputList Denies { @@ -322,6 +340,18 @@ public InputList Identities [Input("owner")] public Input? Owner { get; set; } + [Input("permissionsGroups")] + private InputList? _permissionsGroups; + + /// + /// 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). + /// + public InputList PermissionsGroups + { + get => _permissionsGroups ?? (_permissionsGroups = new InputList()); + set => _permissionsGroups = value; + } + /// /// Indicates that the policy is a default one. /// diff --git a/sdk/dotnet/Ip/Reverse.cs b/sdk/dotnet/Ip/Reverse.cs index 72739ace..9ef42630 100644 --- a/sdk/dotnet/Ip/Reverse.cs +++ b/sdk/dotnet/Ip/Reverse.cs @@ -35,10 +35,12 @@ namespace Pulumi.Ovh.Ip /// /// ## Import /// - /// The resource can be imported using the `ip`, `ip_reverse` of the address, separated by "|" E.g., bash + /// The resource can be imported using the `ip`, `ip_reverse` of the address, separated by "|" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:Ip/reverse:Reverse my_reverse '2001:0db8:c0ff:ee::/64|2001:0db8:c0ff:ee::42' + /// $ pulumi import ovh:Ip/reverse:Reverse my_reverse '2001:0db8:c0ff:ee::/64|2001:0db8:c0ff:ee::42' /// ``` /// [OvhResourceType("ovh:Ip/reverse:Reverse")] diff --git a/sdk/dotnet/Me/APIOAuth2Client.cs b/sdk/dotnet/Me/APIOAuth2Client.cs index 26ff111e..9673b944 100644 --- a/sdk/dotnet/Me/APIOAuth2Client.cs +++ b/sdk/dotnet/Me/APIOAuth2Client.cs @@ -58,16 +58,20 @@ namespace Pulumi.Ovh.Me /// /// ## Import /// - /// OAuth2 clients can be imported using their `client_id`bash + /// OAuth2 clients can be imported using their `client_id`: + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:Me/aPIOAuth2Client:APIOAuth2Client my_oauth2_client client_id + /// $ pulumi import ovh:Me/aPIOAuth2Client:APIOAuth2Client my_oauth2_client client_id /// ``` /// - /// Because 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 separatorbash + /// Because 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: + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:Me/aPIOAuth2Client:APIOAuth2Client my_oauth2_client 'client_id|client_secret' + /// $ pulumi import ovh:Me/aPIOAuth2Client:APIOAuth2Client my_oauth2_client 'client_id|client_secret' /// ``` /// [OvhResourceType("ovh:Me/aPIOAuth2Client:APIOAuth2Client")] diff --git a/sdk/dotnet/Me/InstallationTemplate.cs b/sdk/dotnet/Me/InstallationTemplate.cs index 14ff1a0d..1ad5bdd4 100644 --- a/sdk/dotnet/Me/InstallationTemplate.cs +++ b/sdk/dotnet/Me/InstallationTemplate.cs @@ -34,10 +34,12 @@ namespace Pulumi.Ovh.Me /// /// ## Import /// - /// Custom installation template available for dedicated servers can be imported using the `base_template_name`, `template_name` of the cluster, separated by "/" E.g., bash + /// Custom installation template available for dedicated servers can be imported using the `base_template_name`, `template_name` of the cluster, separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:Me/installationTemplate:InstallationTemplate mytemplate base_template_name/template_name + /// $ pulumi import ovh:Me/installationTemplate:InstallationTemplate mytemplate base_template_name/template_name /// ``` /// [OvhResourceType("ovh:Me/installationTemplate:InstallationTemplate")] diff --git a/sdk/dotnet/Me/InstallationTemplatePartitionScheme.cs b/sdk/dotnet/Me/InstallationTemplatePartitionScheme.cs index d331cd53..72a01726 100644 --- a/sdk/dotnet/Me/InstallationTemplatePartitionScheme.cs +++ b/sdk/dotnet/Me/InstallationTemplatePartitionScheme.cs @@ -40,10 +40,12 @@ namespace Pulumi.Ovh.Me /// /// ## Import /// - /// The resource can be imported using the `template_name`, `name` of the cluster, separated by "/" E.g., bash + /// The resource can be imported using the `template_name`, `name` of the cluster, separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:Me/installationTemplatePartitionScheme:InstallationTemplatePartitionScheme scheme template_name/name + /// $ pulumi import ovh:Me/installationTemplatePartitionScheme:InstallationTemplatePartitionScheme scheme template_name/name /// ``` /// [OvhResourceType("ovh:Me/installationTemplatePartitionScheme:InstallationTemplatePartitionScheme")] diff --git a/sdk/dotnet/Me/InstallationTemplatePartitionSchemeHardwareRaid.cs b/sdk/dotnet/Me/InstallationTemplatePartitionSchemeHardwareRaid.cs index 15edef1f..a1778b81 100644 --- a/sdk/dotnet/Me/InstallationTemplatePartitionSchemeHardwareRaid.cs +++ b/sdk/dotnet/Me/InstallationTemplatePartitionSchemeHardwareRaid.cs @@ -53,10 +53,12 @@ namespace Pulumi.Ovh.Me /// /// ## Import /// - /// The resource can be imported using the `template_name`, `scheme_name`, `name` of the cluster, separated by "/" E.g., bash + /// The resource can be imported using the `template_name`, `scheme_name`, `name` of the cluster, separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:Me/installationTemplatePartitionSchemeHardwareRaid:InstallationTemplatePartitionSchemeHardwareRaid group1 template_name/scheme_name/name + /// $ pulumi import ovh:Me/installationTemplatePartitionSchemeHardwareRaid:InstallationTemplatePartitionSchemeHardwareRaid group1 template_name/scheme_name/name /// ``` /// [OvhResourceType("ovh:Me/installationTemplatePartitionSchemeHardwareRaid:InstallationTemplatePartitionSchemeHardwareRaid")] diff --git a/sdk/dotnet/Me/InstallationTemplatePartitionSchemePartition.cs b/sdk/dotnet/Me/InstallationTemplatePartitionSchemePartition.cs index d41c858e..7dcf1080 100644 --- a/sdk/dotnet/Me/InstallationTemplatePartitionSchemePartition.cs +++ b/sdk/dotnet/Me/InstallationTemplatePartitionSchemePartition.cs @@ -51,10 +51,12 @@ namespace Pulumi.Ovh.Me /// /// ## Import /// - /// The resource can be imported using the `template_name`, `scheme_name`, `mountpoint` of the cluster, separated by "/" E.g., bash + /// The resource can be imported using the `template_name`, `scheme_name`, `mountpoint` of the cluster, separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:Me/installationTemplatePartitionSchemePartition:InstallationTemplatePartitionSchemePartition root template_name/scheme_name/mountpoint + /// $ pulumi import ovh:Me/installationTemplatePartitionSchemePartition:InstallationTemplatePartitionSchemePartition root template_name/scheme_name/mountpoint /// ``` /// [OvhResourceType("ovh:Me/installationTemplatePartitionSchemePartition:InstallationTemplatePartitionSchemePartition")] diff --git a/sdk/dotnet/Vrack/CloudProject.cs b/sdk/dotnet/Vrack/CloudProject.cs index 59e42f95..88f3ddea 100644 --- a/sdk/dotnet/Vrack/CloudProject.cs +++ b/sdk/dotnet/Vrack/CloudProject.cs @@ -33,10 +33,12 @@ namespace Pulumi.Ovh.Vrack /// /// ## Import /// - /// Attachment of a public cloud project and a VRack can be imported using the `project_id`, the `service_name` (vRackID) and the `attach_id`, separated by "/" E.g., bash + /// Attachment of a public cloud project and a VRack can be imported using the `project_id`, the `service_name` (vRackID) and the `attach_id`, separated by "/" E.g., + /// + /// bash /// /// ```sh - /// $ pulumi import ovh:Vrack/cloudProject:CloudProject myattach ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678/vrack_pn-12345678-cloudproject_ookie9mee8Shaeghaeleeju7Xeghohv6e-attach + /// $ pulumi import ovh:Vrack/cloudProject:CloudProject myattach ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678/vrack_pn-12345678-cloudproject_ookie9mee8Shaeghaeleeju7Xeghohv6e-attach /// ``` /// [OvhResourceType("ovh:Vrack/cloudProject:CloudProject")] diff --git a/sdk/dotnet/Vrack/Vrack.cs b/sdk/dotnet/Vrack/Vrack.cs index e6e998e4..aa75518d 100644 --- a/sdk/dotnet/Vrack/Vrack.cs +++ b/sdk/dotnet/Vrack/Vrack.cs @@ -54,10 +54,10 @@ namespace Pulumi.Ovh.Vrack /// /// vRack can be imported using the `order_id` that can be retrieved in the [order page](https://www.ovh.com/manager/#/dedicated/billing/orders/orders). /// - /// bash + /// bash /// /// ```sh - /// $ pulumi import ovh:Vrack/vrack:Vrack vrack order_id + /// $ pulumi import ovh:Vrack/vrack:Vrack vrack order_id /// ``` /// [OvhResourceType("ovh:Vrack/vrack:Vrack")] diff --git a/sdk/go.mod b/sdk/go.mod index 5f4bc62e..7435231c 100644 --- a/sdk/go.mod +++ b/sdk/go.mod @@ -4,15 +4,15 @@ go 1.20 require ( github.com/blang/semver v3.5.1+incompatible - github.com/pulumi/pulumi/sdk/v3 v3.86.0 + github.com/pulumi/pulumi/sdk/v3 v3.105.0 ) require ( - github.com/Microsoft/go-winio v0.5.2 // indirect - github.com/ProtonMail/go-crypto v0.0.0-20221026131551-cf6655e29de4 // indirect - github.com/acomagu/bufpipe v1.0.3 // indirect + dario.cat/mergo v1.0.0 // indirect + github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 // indirect github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect - github.com/agext/levenshtein v1.2.1 // indirect + github.com/agext/levenshtein v1.2.3 // indirect github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect github.com/atotto/clipboard v0.1.4 // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect @@ -20,66 +20,72 @@ require ( github.com/charmbracelet/bubbletea v0.24.2 // indirect github.com/charmbracelet/lipgloss v0.7.1 // indirect github.com/cheggaaa/pb v1.0.29 // indirect - github.com/cloudflare/circl v1.3.3 // indirect + github.com/cloudflare/circl v1.3.7 // indirect github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 // indirect + github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/djherbis/times v1.5.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect - github.com/go-git/gcfg v1.5.0 // indirect - github.com/go-git/go-billy/v5 v5.4.0 // indirect - github.com/go-git/go-git/v5 v5.6.0 // indirect + github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect + github.com/go-git/go-billy/v5 v5.5.0 // indirect + github.com/go-git/go-git/v5 v5.11.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/glog v1.1.0 // indirect + github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect - github.com/hashicorp/hcl/v2 v2.16.1 // indirect - github.com/imdario/mergo v0.3.13 // indirect - github.com/inconshreveable/mousetrap v1.0.1 // indirect + github.com/hashicorp/hcl/v2 v2.17.0 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect - github.com/mattn/go-isatty v0.0.18 // indirect + github.com/mattn/go-isatty v0.0.19 // indirect github.com/mattn/go-localereader v0.0.1 // indirect - github.com/mattn/go-runewidth v0.0.14 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mitchellh/go-ps v1.0.0 // indirect - github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7 // indirect - github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b // indirect + github.com/mitchellh/go-wordwrap v1.0.1 // indirect + github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect github.com/muesli/cancelreader v0.2.2 // indirect github.com/muesli/reflow v0.3.0 // indirect - github.com/muesli/termenv v0.15.1 // indirect + github.com/muesli/termenv v0.15.2 // indirect github.com/opentracing/basictracer-go v1.1.0 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect + github.com/pgavlin/fx v0.1.6 // indirect github.com/pjbgf/sha1cd v0.3.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pkg/term v1.1.0 // indirect + github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect + github.com/pulumi/esc v0.6.2 // indirect github.com/rivo/uniseg v0.4.4 // indirect - github.com/rogpeppe/go-internal v1.9.0 // indirect + github.com/rogpeppe/go-internal v1.11.0 // indirect github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect github.com/santhosh-tekuri/jsonschema/v5 v5.0.0 // indirect - github.com/sergi/go-diff v1.2.0 // indirect - github.com/skeema/knownhosts v1.1.0 // indirect + github.com/sergi/go-diff v1.3.1 // indirect + github.com/skeema/knownhosts v1.2.1 // indirect github.com/spf13/cast v1.4.1 // indirect - github.com/spf13/cobra v1.6.1 // indirect + github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/texttheater/golang-levenshtein v1.0.1 // indirect github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 // indirect github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect github.com/uber/jaeger-lib v2.4.1+incompatible // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect - github.com/zclconf/go-cty v1.12.1 // indirect + github.com/zclconf/go-cty v1.13.2 // indirect go.uber.org/atomic v1.9.0 // indirect - golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a // indirect - golang.org/x/net v0.10.0 // indirect - golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.8.0 // indirect - golang.org/x/term v0.8.0 // indirect - golang.org/x/text v0.9.0 // indirect + golang.org/x/crypto v0.17.0 // indirect + golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa // indirect + golang.org/x/mod v0.14.0 // indirect + golang.org/x/net v0.19.0 // indirect + golang.org/x/sync v0.5.0 // indirect + golang.org/x/sys v0.15.0 // indirect + golang.org/x/term v0.15.0 // indirect + golang.org/x/text v0.14.0 // indirect + golang.org/x/tools v0.15.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230706204954-ccb25ca9f130 // indirect - google.golang.org/grpc v1.57.0 // indirect + google.golang.org/grpc v1.57.1 // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect lukechampine.com/frand v1.4.2 // indirect - sourcegraph.com/sourcegraph/appdash v0.0.0-20211028080628-e2786a622600 // indirect ) diff --git a/sdk/go.sum b/sdk/go.sum index 4e105f2b..4cc4a2d9 100644 --- a/sdk/go.sum +++ b/sdk/go.sum @@ -1,27 +1,26 @@ +dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= +dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= -github.com/Microsoft/go-winio v0.5.2 h1:a9IhgEQBCUEk6QCdml9CiJGhAws+YwffDHEMp1VMrpA= github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= -github.com/ProtonMail/go-crypto v0.0.0-20221026131551-cf6655e29de4 h1:ra2OtmuW0AE5csawV4YXMNGNQQXvLRps3z2Z59OPO+I= -github.com/ProtonMail/go-crypto v0.0.0-20221026131551-cf6655e29de4/go.mod h1:UBYPn8k0D56RtnR8RFQMjmh4KrZzWJ5o7Z9SYjossQ8= -github.com/acomagu/bufpipe v1.0.3 h1:fxAGrHZTgQ9w5QqVItgzwj235/uYZYgbXitB+dLupOk= -github.com/acomagu/bufpipe v1.0.3/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= +github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 h1:kkhsdkhsCvIsutKu5zLMgWtgh9YxGCNAw8Ad8hjwfYg= +github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da h1:KjTM2ks9d14ZYCvmHS9iAKVt9AyzRSqNU1qabPih5BY= github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da/go.mod h1:eHEWzANqSiWQsof+nXEI9bUVUyV6F53Fp89EuCh2EAA= -github.com/agext/levenshtein v1.2.1 h1:QmvMAjj2aEICytGiWzmxoE0x2KZvE0fvmqMOfy2tjT8= -github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= +github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= +github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= -github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= github.com/apparentlymart/go-textseg/v13 v13.0.0 h1:Y+KvPE1NYz0xl601PVImeQfFyEy6iT90AvPUL1NNfNw= github.com/apparentlymart/go-textseg/v13 v13.0.0/go.mod h1:ZK2fH7c4NqDTLtiYLvIkEghdlcqw7yxLeM89kiTRPUo= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= -github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/bwesterb/go-ristretto v1.2.0/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= +github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= github.com/charmbracelet/bubbles v0.16.1 h1:6uzpAAaT9ZqKssntbvZMlksWHruQLNxg49H5WdeuYSY= github.com/charmbracelet/bubbles v0.16.1/go.mod h1:2QCp9LFlEsBQMvIYERr7Ww2H2bA7xen1idUDIzm/+Xc= github.com/charmbracelet/bubbletea v0.24.2 h1:uaQIKx9Ai6Gdh5zpTbGiWpytMU+CfsPp06RaW2cx/SY= @@ -30,44 +29,44 @@ github.com/charmbracelet/lipgloss v0.7.1 h1:17WMwi7N1b1rVWOjMT+rCh7sQkvDU75B2hbZ github.com/charmbracelet/lipgloss v0.7.1/go.mod h1:yG0k3giv8Qj8edTCbbg6AlQ5e8KNWpFujkNawKNhE2c= github.com/cheggaaa/pb v1.0.29 h1:FckUN5ngEk2LpvuG0fw1GEFx6LtyY2pWI/Z2QgCnEYo= github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuPxX30= -github.com/cloudflare/circl v1.1.0/go.mod h1:prBCrKB9DV4poKZY1l9zBXg2QJY7mvgRvtMxxK7fi4I= -github.com/cloudflare/circl v1.3.3 h1:fE/Qz0QdIGqeWfnwq0RE0R7MI51s0M2E4Ga9kq5AEMs= github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= +github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= +github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 h1:q2hJAaP1k2wIvVRd/hEHD7lacgqrCPS+k8g1MndzfWY= github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= +github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/djherbis/times v1.5.0 h1:79myA211VwPhFTqUk8xehWrsEO+zcIZj0zT8mXPVARU= github.com/djherbis/times v1.5.0/go.mod h1:5q7FDLvbNg1L/KaBmPcWlVR9NmoKo3+ucqUA3ijQhA0= +github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY= -github.com/gliderlabs/ssh v0.3.5/go.mod h1:8XB4KraRrX39qHhT6yxPsHedjA08I/uBVwj4xC+/+z4= -github.com/go-git/gcfg v1.5.0 h1:Q5ViNfGF8zFgyJWPqYwA7qGFoMTEiBmdlkcfRmpIMa4= -github.com/go-git/gcfg v1.5.0/go.mod h1:5m20vg6GwYabIxaOonVkTdrILxQMpEShl1xiMF4ua+E= -github.com/go-git/go-billy/v5 v5.3.1/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0= -github.com/go-git/go-billy/v5 v5.4.0 h1:Vaw7LaSTRJOUric7pe4vnzBSgyuf2KrLsu2Y4ZpQBDE= -github.com/go-git/go-billy/v5 v5.4.0/go.mod h1:vjbugF6Fz7JIflbVpl1hJsGjSHNltrSw45YK/ukIvQg= -github.com/go-git/go-git-fixtures/v4 v4.3.1 h1:y5z6dd3qi8Hl+stezc8p3JxDkoTRqMAlKnXHuzrfjTQ= -github.com/go-git/go-git-fixtures/v4 v4.3.1/go.mod h1:8LHG1a3SRW71ettAD/jW13h8c6AqjVSeL11RAdgaqpo= -github.com/go-git/go-git/v5 v5.6.0 h1:JvBdYfcttd+0kdpuWO7KTu0FYgCf5W0t5VwkWGobaa4= -github.com/go-git/go-git/v5 v5.6.0/go.mod h1:6nmJ0tJ3N4noMV1Omv7rC5FG3/o8Cm51TB4CJp7mRmE= +github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= +github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= +github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU= +github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow= +github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4= +github.com/go-git/go-git/v5 v5.11.0 h1:XIZc1p+8YzypNr34itUfSvYJcv+eYdTnTvOZ2vD3cA4= +github.com/go-git/go-git/v5 v5.11.0/go.mod h1:6GFcX2P3NM7FPBfpePbpLd21XxsgdAt+lKqXmCUiUCY= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU= github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -75,62 +74,56 @@ github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= -github.com/hashicorp/hcl/v2 v2.16.1 h1:BwuxEMD/tsYgbhIW7UuI3crjovf3MzuFWiVgiv57iHg= -github.com/hashicorp/hcl/v2 v2.16.1/go.mod h1:JRmR89jycNkrrqnMmvPDMd56n1rQJ2Q6KocSLCMCXng= -github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= -github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= -github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= -github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/hashicorp/hcl/v2 v2.17.0 h1:z1XvSUyXd1HP10U4lrLg5e0JMVz6CPaJvAgxM0KNZVY= +github.com/hashicorp/hcl/v2 v2.17.0/go.mod h1:gJyW2PTShkJqQBKpAmPO3yxMxIuoXkOF2TpqXzrQyx4= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= -github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= -github.com/matryer/is v1.2.0 h1:92UTHpy8CDwaJ08GqLDzhhuixiBUUD1p3AU6PHddz4A= -github.com/matryer/is v1.2.0/go.mod h1:2fLPjFQM9rhQ15aVEtbuwhJinnOqrmgXPNdZsdwlWXA= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= -github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98= -github.com/mattn/go-isatty v0.0.18/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4= github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= -github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= -github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc= github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= -github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7 h1:DpOJ2HYzCv8LZP15IdmG+YdwD2luVPHITV96TkirNBM= -github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= -github.com/mmcloughlin/avo v0.5.0/go.mod h1:ChHFdoV7ql95Wi7vuq2YT1bwCJqiWdZrQ1im3VujLYM= -github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b h1:1XF24mVaiu7u+CFywTdcDo2ie1pzzhwjt6RHqzpMU34= -github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b/go.mod h1:fQuZ0gauxyBcmsdE3ZT4NasjaRdxmbCS0jRHsrWu3Ho= +github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= +github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= +github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI= +github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo= github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA= github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo= github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s= github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8= -github.com/muesli/termenv v0.15.1 h1:UzuTb/+hhlBugQz28rpzey4ZuKcZ03MeKsoG7IJZIxs= -github.com/muesli/termenv v0.15.1/go.mod h1:HeAQPTzpfs016yGtA4g00CsdYnVLJvxsS4ANqrZs2sQ= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= +github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo= +github.com/muesli/termenv v0.15.2/go.mod h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8= +github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI= github.com/opentracing/basictracer-go v1.1.0 h1:Oa1fTSBvAl8pa3U+IJYqrKm0NALwH9OsgwOqDv4xJW0= github.com/opentracing/basictracer-go v1.1.0/go.mod h1:V2HZueSJEp879yv285Aap1BS69fQMD+MNP1mRs6mBQc= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= +github.com/pgavlin/fx v0.1.6 h1:r9jEg69DhNoCd3Xh0+5mIbdbS3PqWrVWujkY76MFRTU= +github.com/pgavlin/fx v0.1.6/go.mod h1:KWZJ6fqBBSh8GxHYqwYCf3rYE7Gp2p0N8tJp8xv9u9M= github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -139,29 +132,32 @@ github.com/pkg/term v1.1.0 h1:xIAAdCMh3QIAy+5FrE8Ad8XoDhEU4ufwbaSozViP9kk= github.com/pkg/term v1.1.0/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pulumi/pulumi/sdk/v3 v3.86.0 h1:Cxg0rGdvMt9GqGvesFTj8+WaO/ihmALYlQf4zm1GzFw= -github.com/pulumi/pulumi/sdk/v3 v3.86.0/go.mod h1:vexSGJ5L834l3T7Fo/KpdywjGAgZ2CvChuqGFl+ebS0= +github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435cARxCW6q9gc0S/Yxz7Mkd38pOb0= +github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE= +github.com/pulumi/esc v0.6.2 h1:+z+l8cuwIauLSwXQS0uoI3rqB+YG4SzsZYtHfNoXBvw= +github.com/pulumi/esc v0.6.2/go.mod h1:jNnYNjzsOgVTjCp0LL24NsCk8ZJxq4IoLQdCT0X7l8k= +github.com/pulumi/pulumi/sdk/v3 v3.105.0 h1:OKEeubZigWyQVnZS6udnFnZHZ/8OWXuUYv9ir3OY+vs= +github.com/pulumi/pulumi/sdk/v3 v3.105.0/go.mod h1:Ml3rpGfyZlI4zQCG7LN2XDSmH4XUNYdyBwJ3yEr/OpI= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= +github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 h1:OkMGxebDjyw0ULyrTYWeN0UNCCkmCWfjPnIA2W6oviI= github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06/go.mod h1:+ePHsJ1keEjQtpvf9HHw0f4ZeJ0TLRsxhunSI2hYJSs= github.com/santhosh-tekuri/jsonschema/v5 v5.0.0 h1:TToq11gyfNlrMFZiYujSekIsPd9AmsA2Bj/iv+s4JHE= github.com/santhosh-tekuri/jsonschema/v5 v5.0.0/go.mod h1:FKdcjfQW6rpZSnxxUvEA5H/cDPdvJ/SZJQLWWXWGrZ0= -github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= -github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= -github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= +github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= +github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/skeema/knownhosts v1.1.0 h1:Wvr9V0MxhjRbl3f9nMnKnFfiWTJmtECJ9Njkea3ysW0= -github.com/skeema/knownhosts v1.1.0/go.mod h1:sKFq3RD6/TKZkSWn8boUbDC7Qkgcv+8XXijpFO6roag= +github.com/skeema/knownhosts v1.2.1 h1:SHWdIUa82uGZz+F+47k8SY4QhhI291cXCpopT1lK2AQ= +github.com/skeema/knownhosts v1.2.1/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo= github.com/spf13/cast v1.4.1 h1:s0hze+J0196ZfEMTs80N7UlFt0BDuQ7Q+JDnHiMWKdA= github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v1.6.1 h1:o94oiPyS4KD1mPy2fmcYYHHfCxLqYjJOhGsCHFZtEzA= -github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= +github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= +github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4= @@ -171,8 +167,7 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/texttheater/golang-levenshtein v1.0.1 h1:+cRNoVrfiwufQPhoMzB6N0Yf/Mqajr6t1lOv8GyGE2U= github.com/texttheater/golang-levenshtein v1.0.1/go.mod h1:PYAKrbF5sAiq9wd+H82hs7gNaen0CplQ9uvm6+enD/8= github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 h1:X9dsIWPuuEJlPX//UmRKophhOKCGXc46RVIGuttks68= @@ -186,28 +181,29 @@ github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/zclconf/go-cty v1.12.1 h1:PcupnljUm9EIvbgSHQnHhUr3fO6oFmkOrvs2BAFNXXY= -github.com/zclconf/go-cty v1.12.1/go.mod h1:s9IfD1LK5ccNMSWCVFCE2rJfHiZgi7JijgeWIMfhLvA= +github.com/zclconf/go-cty v1.13.2 h1:4GvrUxe/QUDYuJKAav4EYqdM47/kZa672LwmXFmEKT0= +github.com/zclconf/go-cty v1.13.2/go.mod h1:YKQzy/7pZ7iq2jNFzy5go57xdxdWoLLpaEp4u238AE0= go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -golang.org/x/arch v0.1.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220826181053-bd7e27e6170d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= -golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= -golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a h1:diz9pEYuTIuLMJLs3rGDkeaTsNyRs6duYdFyPAxzE/U= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= +golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa h1:FRnLl4eNAQl8hwxVVC17teOw8kdjVDVAiFMtgUdTSRQ= +golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa/go.mod h1:zk2irFbV9DP96SEBUUAy67IdHUaZuSnrz1n472HUCLE= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= +golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -216,57 +212,56 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= -golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= +golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= +golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= -golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols= -golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= +golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= +golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -274,36 +269,32 @@ golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapK golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.15.0 h1:zdAyfUGbYmuVokhzVmghFl2ZJh5QhcfebBgmVPFYA+8= +golang.org/x/tools v0.15.0/go.mod h1:hpksKq4dtpQWS1uQ61JkdqWM3LscIS6Slf+VVkm+wQk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto/googleapis/rpc v0.0.0-20230706204954-ccb25ca9f130 h1:2FZP5XuJY9zQyGM5N0rtovnoXjiMUEIUMvw0m9wlpLc= google.golang.org/genproto/googleapis/rpc v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:8mL13HKkDa+IuJ8yruA3ci0q+0vsUz4m//+ottjwS5o= -google.golang.org/grpc v1.57.0 h1:kfzNeI/klCGD2YPMUlaGNT3pxvYfga7smW3Vth8Zsiw= -google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo= +google.golang.org/grpc v1.57.1 h1:upNTNqv0ES+2ZOOqACwVtS3Il8M12/+Hz41RCPzAjQg= +google.golang.org/grpc v1.57.1/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= lukechampine.com/frand v1.4.2 h1:RzFIpOvkMXuPMBb9maa4ND4wjBn71E1Jpf8BzJHMaVw= lukechampine.com/frand v1.4.2/go.mod h1:4S/TM2ZgrKejMcKMbeLjISpJMO+/eZ1zu3vYX9dtj3s= pgregory.net/rapid v0.5.5 h1:jkgx1TjbQPD/feRoK+S/mXw9e1uj6WilpHrXJowi6oA= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -sourcegraph.com/sourcegraph/appdash v0.0.0-20211028080628-e2786a622600 h1:hfyJ5ku9yFtLVOiSxa3IN+dx5eBQT9mPmKFypAmg8XM= -sourcegraph.com/sourcegraph/appdash v0.0.0-20211028080628-e2786a622600/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= diff --git a/sdk/go/ovh/cloudproject/containerRegistryIPRestrictionsManagement.go b/sdk/go/ovh/cloudproject/containerRegistryIPRestrictionsManagement.go new file mode 100644 index 00000000..038963ac --- /dev/null +++ b/sdk/go/ovh/cloudproject/containerRegistryIPRestrictionsManagement.go @@ -0,0 +1,295 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudproject + +import ( + "context" + "reflect" + + "errors" + "github.com/ovh/pulumi-ovh/sdk/go/ovh/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Apply IP restrictions container registry associated with a public cloud project on Harbor UI and API. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := CloudProject.GetContainerRegistry(ctx, &cloudproject.GetContainerRegistryArgs{ +// ServiceName: "XXXXXX", +// RegistryId: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx", +// }, nil) +// if err != nil { +// return err +// } +// _, err = CloudProject.NewContainerRegistryIPRestrictionsManagement(ctx, "my-mgt-iprestrictions", &CloudProject.ContainerRegistryIPRestrictionsManagementArgs{ +// ServiceName: pulumi.Any(ovh_cloud_project_containerregistry.Registry.Service_name), +// RegistryId: pulumi.Any(ovh_cloud_project_containerregistry.Registry.Id), +// IpRestrictions: pulumi.MapArray{ +// pulumi.Map{ +// "ip_block": pulumi.Any("xxx.xxx.xxx.xxx/xx"), +// "description": pulumi.Any("xxxxxxx"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +type ContainerRegistryIPRestrictionsManagement struct { + pulumi.CustomResourceState + + // IP restrictions applied on Harbor UI and API. + IpRestrictions pulumi.MapArrayOutput `pulumi:"ipRestrictions"` + // The id of the Managed Private Registry. + RegistryId pulumi.StringOutput `pulumi:"registryId"` + // The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + ServiceName pulumi.StringOutput `pulumi:"serviceName"` +} + +// NewContainerRegistryIPRestrictionsManagement registers a new resource with the given unique name, arguments, and options. +func NewContainerRegistryIPRestrictionsManagement(ctx *pulumi.Context, + name string, args *ContainerRegistryIPRestrictionsManagementArgs, opts ...pulumi.ResourceOption) (*ContainerRegistryIPRestrictionsManagement, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.IpRestrictions == nil { + return nil, errors.New("invalid value for required argument 'IpRestrictions'") + } + if args.RegistryId == nil { + return nil, errors.New("invalid value for required argument 'RegistryId'") + } + if args.ServiceName == nil { + return nil, errors.New("invalid value for required argument 'ServiceName'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource ContainerRegistryIPRestrictionsManagement + err := ctx.RegisterResource("ovh:CloudProject/containerRegistryIPRestrictionsManagement:ContainerRegistryIPRestrictionsManagement", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetContainerRegistryIPRestrictionsManagement gets an existing ContainerRegistryIPRestrictionsManagement resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetContainerRegistryIPRestrictionsManagement(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ContainerRegistryIPRestrictionsManagementState, opts ...pulumi.ResourceOption) (*ContainerRegistryIPRestrictionsManagement, error) { + var resource ContainerRegistryIPRestrictionsManagement + err := ctx.ReadResource("ovh:CloudProject/containerRegistryIPRestrictionsManagement:ContainerRegistryIPRestrictionsManagement", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ContainerRegistryIPRestrictionsManagement resources. +type containerRegistryIPRestrictionsManagementState struct { + // IP restrictions applied on Harbor UI and API. + IpRestrictions []map[string]interface{} `pulumi:"ipRestrictions"` + // The id of the Managed Private Registry. + RegistryId *string `pulumi:"registryId"` + // The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + ServiceName *string `pulumi:"serviceName"` +} + +type ContainerRegistryIPRestrictionsManagementState struct { + // IP restrictions applied on Harbor UI and API. + IpRestrictions pulumi.MapArrayInput + // The id of the Managed Private Registry. + RegistryId pulumi.StringPtrInput + // The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + ServiceName pulumi.StringPtrInput +} + +func (ContainerRegistryIPRestrictionsManagementState) ElementType() reflect.Type { + return reflect.TypeOf((*containerRegistryIPRestrictionsManagementState)(nil)).Elem() +} + +type containerRegistryIPRestrictionsManagementArgs struct { + // IP restrictions applied on Harbor UI and API. + IpRestrictions []map[string]interface{} `pulumi:"ipRestrictions"` + // The id of the Managed Private Registry. + RegistryId string `pulumi:"registryId"` + // The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + ServiceName string `pulumi:"serviceName"` +} + +// The set of arguments for constructing a ContainerRegistryIPRestrictionsManagement resource. +type ContainerRegistryIPRestrictionsManagementArgs struct { + // IP restrictions applied on Harbor UI and API. + IpRestrictions pulumi.MapArrayInput + // The id of the Managed Private Registry. + RegistryId pulumi.StringInput + // The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + ServiceName pulumi.StringInput +} + +func (ContainerRegistryIPRestrictionsManagementArgs) ElementType() reflect.Type { + return reflect.TypeOf((*containerRegistryIPRestrictionsManagementArgs)(nil)).Elem() +} + +type ContainerRegistryIPRestrictionsManagementInput interface { + pulumi.Input + + ToContainerRegistryIPRestrictionsManagementOutput() ContainerRegistryIPRestrictionsManagementOutput + ToContainerRegistryIPRestrictionsManagementOutputWithContext(ctx context.Context) ContainerRegistryIPRestrictionsManagementOutput +} + +func (*ContainerRegistryIPRestrictionsManagement) ElementType() reflect.Type { + return reflect.TypeOf((**ContainerRegistryIPRestrictionsManagement)(nil)).Elem() +} + +func (i *ContainerRegistryIPRestrictionsManagement) ToContainerRegistryIPRestrictionsManagementOutput() ContainerRegistryIPRestrictionsManagementOutput { + return i.ToContainerRegistryIPRestrictionsManagementOutputWithContext(context.Background()) +} + +func (i *ContainerRegistryIPRestrictionsManagement) ToContainerRegistryIPRestrictionsManagementOutputWithContext(ctx context.Context) ContainerRegistryIPRestrictionsManagementOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerRegistryIPRestrictionsManagementOutput) +} + +// ContainerRegistryIPRestrictionsManagementArrayInput is an input type that accepts ContainerRegistryIPRestrictionsManagementArray and ContainerRegistryIPRestrictionsManagementArrayOutput values. +// You can construct a concrete instance of `ContainerRegistryIPRestrictionsManagementArrayInput` via: +// +// ContainerRegistryIPRestrictionsManagementArray{ ContainerRegistryIPRestrictionsManagementArgs{...} } +type ContainerRegistryIPRestrictionsManagementArrayInput interface { + pulumi.Input + + ToContainerRegistryIPRestrictionsManagementArrayOutput() ContainerRegistryIPRestrictionsManagementArrayOutput + ToContainerRegistryIPRestrictionsManagementArrayOutputWithContext(context.Context) ContainerRegistryIPRestrictionsManagementArrayOutput +} + +type ContainerRegistryIPRestrictionsManagementArray []ContainerRegistryIPRestrictionsManagementInput + +func (ContainerRegistryIPRestrictionsManagementArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ContainerRegistryIPRestrictionsManagement)(nil)).Elem() +} + +func (i ContainerRegistryIPRestrictionsManagementArray) ToContainerRegistryIPRestrictionsManagementArrayOutput() ContainerRegistryIPRestrictionsManagementArrayOutput { + return i.ToContainerRegistryIPRestrictionsManagementArrayOutputWithContext(context.Background()) +} + +func (i ContainerRegistryIPRestrictionsManagementArray) ToContainerRegistryIPRestrictionsManagementArrayOutputWithContext(ctx context.Context) ContainerRegistryIPRestrictionsManagementArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerRegistryIPRestrictionsManagementArrayOutput) +} + +// ContainerRegistryIPRestrictionsManagementMapInput is an input type that accepts ContainerRegistryIPRestrictionsManagementMap and ContainerRegistryIPRestrictionsManagementMapOutput values. +// You can construct a concrete instance of `ContainerRegistryIPRestrictionsManagementMapInput` via: +// +// ContainerRegistryIPRestrictionsManagementMap{ "key": ContainerRegistryIPRestrictionsManagementArgs{...} } +type ContainerRegistryIPRestrictionsManagementMapInput interface { + pulumi.Input + + ToContainerRegistryIPRestrictionsManagementMapOutput() ContainerRegistryIPRestrictionsManagementMapOutput + ToContainerRegistryIPRestrictionsManagementMapOutputWithContext(context.Context) ContainerRegistryIPRestrictionsManagementMapOutput +} + +type ContainerRegistryIPRestrictionsManagementMap map[string]ContainerRegistryIPRestrictionsManagementInput + +func (ContainerRegistryIPRestrictionsManagementMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ContainerRegistryIPRestrictionsManagement)(nil)).Elem() +} + +func (i ContainerRegistryIPRestrictionsManagementMap) ToContainerRegistryIPRestrictionsManagementMapOutput() ContainerRegistryIPRestrictionsManagementMapOutput { + return i.ToContainerRegistryIPRestrictionsManagementMapOutputWithContext(context.Background()) +} + +func (i ContainerRegistryIPRestrictionsManagementMap) ToContainerRegistryIPRestrictionsManagementMapOutputWithContext(ctx context.Context) ContainerRegistryIPRestrictionsManagementMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerRegistryIPRestrictionsManagementMapOutput) +} + +type ContainerRegistryIPRestrictionsManagementOutput struct{ *pulumi.OutputState } + +func (ContainerRegistryIPRestrictionsManagementOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ContainerRegistryIPRestrictionsManagement)(nil)).Elem() +} + +func (o ContainerRegistryIPRestrictionsManagementOutput) ToContainerRegistryIPRestrictionsManagementOutput() ContainerRegistryIPRestrictionsManagementOutput { + return o +} + +func (o ContainerRegistryIPRestrictionsManagementOutput) ToContainerRegistryIPRestrictionsManagementOutputWithContext(ctx context.Context) ContainerRegistryIPRestrictionsManagementOutput { + return o +} + +// IP restrictions applied on Harbor UI and API. +func (o ContainerRegistryIPRestrictionsManagementOutput) IpRestrictions() pulumi.MapArrayOutput { + return o.ApplyT(func(v *ContainerRegistryIPRestrictionsManagement) pulumi.MapArrayOutput { return v.IpRestrictions }).(pulumi.MapArrayOutput) +} + +// The id of the Managed Private Registry. +func (o ContainerRegistryIPRestrictionsManagementOutput) RegistryId() pulumi.StringOutput { + return o.ApplyT(func(v *ContainerRegistryIPRestrictionsManagement) pulumi.StringOutput { return v.RegistryId }).(pulumi.StringOutput) +} + +// The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. +func (o ContainerRegistryIPRestrictionsManagementOutput) ServiceName() pulumi.StringOutput { + return o.ApplyT(func(v *ContainerRegistryIPRestrictionsManagement) pulumi.StringOutput { return v.ServiceName }).(pulumi.StringOutput) +} + +type ContainerRegistryIPRestrictionsManagementArrayOutput struct{ *pulumi.OutputState } + +func (ContainerRegistryIPRestrictionsManagementArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ContainerRegistryIPRestrictionsManagement)(nil)).Elem() +} + +func (o ContainerRegistryIPRestrictionsManagementArrayOutput) ToContainerRegistryIPRestrictionsManagementArrayOutput() ContainerRegistryIPRestrictionsManagementArrayOutput { + return o +} + +func (o ContainerRegistryIPRestrictionsManagementArrayOutput) ToContainerRegistryIPRestrictionsManagementArrayOutputWithContext(ctx context.Context) ContainerRegistryIPRestrictionsManagementArrayOutput { + return o +} + +func (o ContainerRegistryIPRestrictionsManagementArrayOutput) Index(i pulumi.IntInput) ContainerRegistryIPRestrictionsManagementOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ContainerRegistryIPRestrictionsManagement { + return vs[0].([]*ContainerRegistryIPRestrictionsManagement)[vs[1].(int)] + }).(ContainerRegistryIPRestrictionsManagementOutput) +} + +type ContainerRegistryIPRestrictionsManagementMapOutput struct{ *pulumi.OutputState } + +func (ContainerRegistryIPRestrictionsManagementMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ContainerRegistryIPRestrictionsManagement)(nil)).Elem() +} + +func (o ContainerRegistryIPRestrictionsManagementMapOutput) ToContainerRegistryIPRestrictionsManagementMapOutput() ContainerRegistryIPRestrictionsManagementMapOutput { + return o +} + +func (o ContainerRegistryIPRestrictionsManagementMapOutput) ToContainerRegistryIPRestrictionsManagementMapOutputWithContext(ctx context.Context) ContainerRegistryIPRestrictionsManagementMapOutput { + return o +} + +func (o ContainerRegistryIPRestrictionsManagementMapOutput) MapIndex(k pulumi.StringInput) ContainerRegistryIPRestrictionsManagementOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ContainerRegistryIPRestrictionsManagement { + return vs[0].(map[string]*ContainerRegistryIPRestrictionsManagement)[vs[1].(string)] + }).(ContainerRegistryIPRestrictionsManagementOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ContainerRegistryIPRestrictionsManagementInput)(nil)).Elem(), &ContainerRegistryIPRestrictionsManagement{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerRegistryIPRestrictionsManagementArrayInput)(nil)).Elem(), ContainerRegistryIPRestrictionsManagementArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerRegistryIPRestrictionsManagementMapInput)(nil)).Elem(), ContainerRegistryIPRestrictionsManagementMap{}) + pulumi.RegisterOutputType(ContainerRegistryIPRestrictionsManagementOutput{}) + pulumi.RegisterOutputType(ContainerRegistryIPRestrictionsManagementArrayOutput{}) + pulumi.RegisterOutputType(ContainerRegistryIPRestrictionsManagementMapOutput{}) +} diff --git a/sdk/go/ovh/cloudproject/containerRegistryIPRestrictionsRegistry.go b/sdk/go/ovh/cloudproject/containerRegistryIPRestrictionsRegistry.go new file mode 100644 index 00000000..f2f87591 --- /dev/null +++ b/sdk/go/ovh/cloudproject/containerRegistryIPRestrictionsRegistry.go @@ -0,0 +1,295 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudproject + +import ( + "context" + "reflect" + + "errors" + "github.com/ovh/pulumi-ovh/sdk/go/ovh/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Apply IP restrictions container registry associated with a public cloud project on artifact manager component. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := CloudProject.GetContainerRegistry(ctx, &cloudproject.GetContainerRegistryArgs{ +// ServiceName: "XXXXXX", +// RegistryId: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx", +// }, nil) +// if err != nil { +// return err +// } +// _, err = CloudProject.NewContainerRegistryIPRestrictionsRegistry(ctx, "my-registry-iprestrictions", &CloudProject.ContainerRegistryIPRestrictionsRegistryArgs{ +// ServiceName: pulumi.Any(ovh_cloud_project_containerregistry.Registry.Service_name), +// RegistryId: pulumi.Any(ovh_cloud_project_containerregistry.Registry.Id), +// IpRestrictions: pulumi.MapArray{ +// pulumi.Map{ +// "ip_block": pulumi.Any("xxx.xxx.xxx.xxx/xx"), +// "description": pulumi.Any("xxxxxxx"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +type ContainerRegistryIPRestrictionsRegistry struct { + pulumi.CustomResourceState + + // IP restrictions applied on artifact manager component. + IpRestrictions pulumi.MapArrayOutput `pulumi:"ipRestrictions"` + // The id of the Managed Private Registry. + RegistryId pulumi.StringOutput `pulumi:"registryId"` + // The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + ServiceName pulumi.StringOutput `pulumi:"serviceName"` +} + +// NewContainerRegistryIPRestrictionsRegistry registers a new resource with the given unique name, arguments, and options. +func NewContainerRegistryIPRestrictionsRegistry(ctx *pulumi.Context, + name string, args *ContainerRegistryIPRestrictionsRegistryArgs, opts ...pulumi.ResourceOption) (*ContainerRegistryIPRestrictionsRegistry, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.IpRestrictions == nil { + return nil, errors.New("invalid value for required argument 'IpRestrictions'") + } + if args.RegistryId == nil { + return nil, errors.New("invalid value for required argument 'RegistryId'") + } + if args.ServiceName == nil { + return nil, errors.New("invalid value for required argument 'ServiceName'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource ContainerRegistryIPRestrictionsRegistry + err := ctx.RegisterResource("ovh:CloudProject/containerRegistryIPRestrictionsRegistry:ContainerRegistryIPRestrictionsRegistry", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetContainerRegistryIPRestrictionsRegistry gets an existing ContainerRegistryIPRestrictionsRegistry resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetContainerRegistryIPRestrictionsRegistry(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ContainerRegistryIPRestrictionsRegistryState, opts ...pulumi.ResourceOption) (*ContainerRegistryIPRestrictionsRegistry, error) { + var resource ContainerRegistryIPRestrictionsRegistry + err := ctx.ReadResource("ovh:CloudProject/containerRegistryIPRestrictionsRegistry:ContainerRegistryIPRestrictionsRegistry", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ContainerRegistryIPRestrictionsRegistry resources. +type containerRegistryIPRestrictionsRegistryState struct { + // IP restrictions applied on artifact manager component. + IpRestrictions []map[string]interface{} `pulumi:"ipRestrictions"` + // The id of the Managed Private Registry. + RegistryId *string `pulumi:"registryId"` + // The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + ServiceName *string `pulumi:"serviceName"` +} + +type ContainerRegistryIPRestrictionsRegistryState struct { + // IP restrictions applied on artifact manager component. + IpRestrictions pulumi.MapArrayInput + // The id of the Managed Private Registry. + RegistryId pulumi.StringPtrInput + // The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + ServiceName pulumi.StringPtrInput +} + +func (ContainerRegistryIPRestrictionsRegistryState) ElementType() reflect.Type { + return reflect.TypeOf((*containerRegistryIPRestrictionsRegistryState)(nil)).Elem() +} + +type containerRegistryIPRestrictionsRegistryArgs struct { + // IP restrictions applied on artifact manager component. + IpRestrictions []map[string]interface{} `pulumi:"ipRestrictions"` + // The id of the Managed Private Registry. + RegistryId string `pulumi:"registryId"` + // The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + ServiceName string `pulumi:"serviceName"` +} + +// The set of arguments for constructing a ContainerRegistryIPRestrictionsRegistry resource. +type ContainerRegistryIPRestrictionsRegistryArgs struct { + // IP restrictions applied on artifact manager component. + IpRestrictions pulumi.MapArrayInput + // The id of the Managed Private Registry. + RegistryId pulumi.StringInput + // The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + ServiceName pulumi.StringInput +} + +func (ContainerRegistryIPRestrictionsRegistryArgs) ElementType() reflect.Type { + return reflect.TypeOf((*containerRegistryIPRestrictionsRegistryArgs)(nil)).Elem() +} + +type ContainerRegistryIPRestrictionsRegistryInput interface { + pulumi.Input + + ToContainerRegistryIPRestrictionsRegistryOutput() ContainerRegistryIPRestrictionsRegistryOutput + ToContainerRegistryIPRestrictionsRegistryOutputWithContext(ctx context.Context) ContainerRegistryIPRestrictionsRegistryOutput +} + +func (*ContainerRegistryIPRestrictionsRegistry) ElementType() reflect.Type { + return reflect.TypeOf((**ContainerRegistryIPRestrictionsRegistry)(nil)).Elem() +} + +func (i *ContainerRegistryIPRestrictionsRegistry) ToContainerRegistryIPRestrictionsRegistryOutput() ContainerRegistryIPRestrictionsRegistryOutput { + return i.ToContainerRegistryIPRestrictionsRegistryOutputWithContext(context.Background()) +} + +func (i *ContainerRegistryIPRestrictionsRegistry) ToContainerRegistryIPRestrictionsRegistryOutputWithContext(ctx context.Context) ContainerRegistryIPRestrictionsRegistryOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerRegistryIPRestrictionsRegistryOutput) +} + +// ContainerRegistryIPRestrictionsRegistryArrayInput is an input type that accepts ContainerRegistryIPRestrictionsRegistryArray and ContainerRegistryIPRestrictionsRegistryArrayOutput values. +// You can construct a concrete instance of `ContainerRegistryIPRestrictionsRegistryArrayInput` via: +// +// ContainerRegistryIPRestrictionsRegistryArray{ ContainerRegistryIPRestrictionsRegistryArgs{...} } +type ContainerRegistryIPRestrictionsRegistryArrayInput interface { + pulumi.Input + + ToContainerRegistryIPRestrictionsRegistryArrayOutput() ContainerRegistryIPRestrictionsRegistryArrayOutput + ToContainerRegistryIPRestrictionsRegistryArrayOutputWithContext(context.Context) ContainerRegistryIPRestrictionsRegistryArrayOutput +} + +type ContainerRegistryIPRestrictionsRegistryArray []ContainerRegistryIPRestrictionsRegistryInput + +func (ContainerRegistryIPRestrictionsRegistryArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ContainerRegistryIPRestrictionsRegistry)(nil)).Elem() +} + +func (i ContainerRegistryIPRestrictionsRegistryArray) ToContainerRegistryIPRestrictionsRegistryArrayOutput() ContainerRegistryIPRestrictionsRegistryArrayOutput { + return i.ToContainerRegistryIPRestrictionsRegistryArrayOutputWithContext(context.Background()) +} + +func (i ContainerRegistryIPRestrictionsRegistryArray) ToContainerRegistryIPRestrictionsRegistryArrayOutputWithContext(ctx context.Context) ContainerRegistryIPRestrictionsRegistryArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerRegistryIPRestrictionsRegistryArrayOutput) +} + +// ContainerRegistryIPRestrictionsRegistryMapInput is an input type that accepts ContainerRegistryIPRestrictionsRegistryMap and ContainerRegistryIPRestrictionsRegistryMapOutput values. +// You can construct a concrete instance of `ContainerRegistryIPRestrictionsRegistryMapInput` via: +// +// ContainerRegistryIPRestrictionsRegistryMap{ "key": ContainerRegistryIPRestrictionsRegistryArgs{...} } +type ContainerRegistryIPRestrictionsRegistryMapInput interface { + pulumi.Input + + ToContainerRegistryIPRestrictionsRegistryMapOutput() ContainerRegistryIPRestrictionsRegistryMapOutput + ToContainerRegistryIPRestrictionsRegistryMapOutputWithContext(context.Context) ContainerRegistryIPRestrictionsRegistryMapOutput +} + +type ContainerRegistryIPRestrictionsRegistryMap map[string]ContainerRegistryIPRestrictionsRegistryInput + +func (ContainerRegistryIPRestrictionsRegistryMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ContainerRegistryIPRestrictionsRegistry)(nil)).Elem() +} + +func (i ContainerRegistryIPRestrictionsRegistryMap) ToContainerRegistryIPRestrictionsRegistryMapOutput() ContainerRegistryIPRestrictionsRegistryMapOutput { + return i.ToContainerRegistryIPRestrictionsRegistryMapOutputWithContext(context.Background()) +} + +func (i ContainerRegistryIPRestrictionsRegistryMap) ToContainerRegistryIPRestrictionsRegistryMapOutputWithContext(ctx context.Context) ContainerRegistryIPRestrictionsRegistryMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerRegistryIPRestrictionsRegistryMapOutput) +} + +type ContainerRegistryIPRestrictionsRegistryOutput struct{ *pulumi.OutputState } + +func (ContainerRegistryIPRestrictionsRegistryOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ContainerRegistryIPRestrictionsRegistry)(nil)).Elem() +} + +func (o ContainerRegistryIPRestrictionsRegistryOutput) ToContainerRegistryIPRestrictionsRegistryOutput() ContainerRegistryIPRestrictionsRegistryOutput { + return o +} + +func (o ContainerRegistryIPRestrictionsRegistryOutput) ToContainerRegistryIPRestrictionsRegistryOutputWithContext(ctx context.Context) ContainerRegistryIPRestrictionsRegistryOutput { + return o +} + +// IP restrictions applied on artifact manager component. +func (o ContainerRegistryIPRestrictionsRegistryOutput) IpRestrictions() pulumi.MapArrayOutput { + return o.ApplyT(func(v *ContainerRegistryIPRestrictionsRegistry) pulumi.MapArrayOutput { return v.IpRestrictions }).(pulumi.MapArrayOutput) +} + +// The id of the Managed Private Registry. +func (o ContainerRegistryIPRestrictionsRegistryOutput) RegistryId() pulumi.StringOutput { + return o.ApplyT(func(v *ContainerRegistryIPRestrictionsRegistry) pulumi.StringOutput { return v.RegistryId }).(pulumi.StringOutput) +} + +// The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. +func (o ContainerRegistryIPRestrictionsRegistryOutput) ServiceName() pulumi.StringOutput { + return o.ApplyT(func(v *ContainerRegistryIPRestrictionsRegistry) pulumi.StringOutput { return v.ServiceName }).(pulumi.StringOutput) +} + +type ContainerRegistryIPRestrictionsRegistryArrayOutput struct{ *pulumi.OutputState } + +func (ContainerRegistryIPRestrictionsRegistryArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ContainerRegistryIPRestrictionsRegistry)(nil)).Elem() +} + +func (o ContainerRegistryIPRestrictionsRegistryArrayOutput) ToContainerRegistryIPRestrictionsRegistryArrayOutput() ContainerRegistryIPRestrictionsRegistryArrayOutput { + return o +} + +func (o ContainerRegistryIPRestrictionsRegistryArrayOutput) ToContainerRegistryIPRestrictionsRegistryArrayOutputWithContext(ctx context.Context) ContainerRegistryIPRestrictionsRegistryArrayOutput { + return o +} + +func (o ContainerRegistryIPRestrictionsRegistryArrayOutput) Index(i pulumi.IntInput) ContainerRegistryIPRestrictionsRegistryOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ContainerRegistryIPRestrictionsRegistry { + return vs[0].([]*ContainerRegistryIPRestrictionsRegistry)[vs[1].(int)] + }).(ContainerRegistryIPRestrictionsRegistryOutput) +} + +type ContainerRegistryIPRestrictionsRegistryMapOutput struct{ *pulumi.OutputState } + +func (ContainerRegistryIPRestrictionsRegistryMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ContainerRegistryIPRestrictionsRegistry)(nil)).Elem() +} + +func (o ContainerRegistryIPRestrictionsRegistryMapOutput) ToContainerRegistryIPRestrictionsRegistryMapOutput() ContainerRegistryIPRestrictionsRegistryMapOutput { + return o +} + +func (o ContainerRegistryIPRestrictionsRegistryMapOutput) ToContainerRegistryIPRestrictionsRegistryMapOutputWithContext(ctx context.Context) ContainerRegistryIPRestrictionsRegistryMapOutput { + return o +} + +func (o ContainerRegistryIPRestrictionsRegistryMapOutput) MapIndex(k pulumi.StringInput) ContainerRegistryIPRestrictionsRegistryOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ContainerRegistryIPRestrictionsRegistry { + return vs[0].(map[string]*ContainerRegistryIPRestrictionsRegistry)[vs[1].(string)] + }).(ContainerRegistryIPRestrictionsRegistryOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ContainerRegistryIPRestrictionsRegistryInput)(nil)).Elem(), &ContainerRegistryIPRestrictionsRegistry{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerRegistryIPRestrictionsRegistryArrayInput)(nil)).Elem(), ContainerRegistryIPRestrictionsRegistryArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerRegistryIPRestrictionsRegistryMapInput)(nil)).Elem(), ContainerRegistryIPRestrictionsRegistryMap{}) + pulumi.RegisterOutputType(ContainerRegistryIPRestrictionsRegistryOutput{}) + pulumi.RegisterOutputType(ContainerRegistryIPRestrictionsRegistryArrayOutput{}) + pulumi.RegisterOutputType(ContainerRegistryIPRestrictionsRegistryMapOutput{}) +} diff --git a/sdk/go/ovh/cloudproject/containerRegistryOIDC.go b/sdk/go/ovh/cloudproject/containerRegistryOIDC.go index 8f7ddc68..1a666f56 100644 --- a/sdk/go/ovh/cloudproject/containerRegistryOIDC.go +++ b/sdk/go/ovh/cloudproject/containerRegistryOIDC.go @@ -55,12 +55,12 @@ import ( // // ## Import // -// OVHcloud Managed Private Registry OIDC can be imported using the tenant `service_name` and registry id `registry_id` separated by "/" E.g., bash +// OVHcloud Managed Private Registry OIDC can be imported using the tenant `service_name` and registry id `registry_id` separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:CloudProject/containerRegistryOIDC:ContainerRegistryOIDC my-oidc service_name/registry_id +// bash // +// ```sh +// $ pulumi import ovh:CloudProject/containerRegistryOIDC:ContainerRegistryOIDC my-oidc service_name/registry_id // ``` type ContainerRegistryOIDC struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/cloudproject/database.go b/sdk/go/ovh/cloudproject/database.go index 02043660..bcc137e0 100644 --- a/sdk/go/ovh/cloudproject/database.go +++ b/sdk/go/ovh/cloudproject/database.go @@ -285,18 +285,20 @@ import ( // // ## Import // -// OVHcloud Managed database clusters can be imported using the `service_name`, `engine`, `id` of the cluster, separated by "/" E.g., bash +// OVHcloud Managed database clusters can be imported using the `service_name`, `engine`, `id` of the cluster, separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:CloudProject/database:Database my_database_cluster service_name/engine/id +// bash // +// ```sh +// $ pulumi import ovh:CloudProject/database:Database my_database_cluster service_name/engine/id // ``` type Database struct { pulumi.CustomResourceState // Advanced configuration key / value. AdvancedConfiguration pulumi.StringMapOutput `pulumi:"advancedConfiguration"` + // 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 + BackupRegions pulumi.StringArrayOutput `pulumi:"backupRegions"` // Time on which backups start every day. BackupTime pulumi.StringOutput `pulumi:"backupTime"` // Date of the creation of the cluster. @@ -389,6 +391,8 @@ func GetDatabase(ctx *pulumi.Context, type databaseState struct { // Advanced configuration key / value. AdvancedConfiguration map[string]string `pulumi:"advancedConfiguration"` + // 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 + BackupRegions []string `pulumi:"backupRegions"` // Time on which backups start every day. BackupTime *string `pulumi:"backupTime"` // Date of the creation of the cluster. @@ -434,6 +438,8 @@ type databaseState struct { type DatabaseState struct { // Advanced configuration key / value. AdvancedConfiguration pulumi.StringMapInput + // 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 + BackupRegions pulumi.StringArrayInput // Time on which backups start every day. BackupTime pulumi.StringPtrInput // Date of the creation of the cluster. @@ -483,6 +489,10 @@ func (DatabaseState) ElementType() reflect.Type { type databaseArgs struct { // Advanced configuration key / value. AdvancedConfiguration map[string]string `pulumi:"advancedConfiguration"` + // 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 + BackupRegions []string `pulumi:"backupRegions"` + // Time on which backups start every day. + BackupTime *string `pulumi:"backupTime"` // Small description of the database service. Description *string `pulumi:"description"` // The disk size (in GB) of the database service. @@ -515,6 +525,10 @@ type databaseArgs struct { type DatabaseArgs struct { // Advanced configuration key / value. AdvancedConfiguration pulumi.StringMapInput + // 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 + BackupRegions pulumi.StringArrayInput + // Time on which backups start every day. + BackupTime pulumi.StringPtrInput // Small description of the database service. Description pulumi.StringPtrInput // The disk size (in GB) of the database service. @@ -635,6 +649,11 @@ func (o DatabaseOutput) AdvancedConfiguration() pulumi.StringMapOutput { return o.ApplyT(func(v *Database) pulumi.StringMapOutput { return v.AdvancedConfiguration }).(pulumi.StringMapOutput) } +// 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 +func (o DatabaseOutput) BackupRegions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *Database) pulumi.StringArrayOutput { return v.BackupRegions }).(pulumi.StringArrayOutput) +} + // Time on which backups start every day. func (o DatabaseOutput) BackupTime() pulumi.StringOutput { return o.ApplyT(func(v *Database) pulumi.StringOutput { return v.BackupTime }).(pulumi.StringOutput) diff --git a/sdk/go/ovh/cloudproject/getContainerRegistryIPRestrictionsManagement.go b/sdk/go/ovh/cloudproject/getContainerRegistryIPRestrictionsManagement.go new file mode 100644 index 00000000..4c8890c6 --- /dev/null +++ b/sdk/go/ovh/cloudproject/getContainerRegistryIPRestrictionsManagement.go @@ -0,0 +1,109 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudproject + +import ( + "context" + "reflect" + + "github.com/ovh/pulumi-ovh/sdk/go/ovh/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Use this data source to get the list of Management IP Restrictions of a container registry associated with a public cloud project. +func LookupContainerRegistryIPRestrictionsManagement(ctx *pulumi.Context, args *LookupContainerRegistryIPRestrictionsManagementArgs, opts ...pulumi.InvokeOption) (*LookupContainerRegistryIPRestrictionsManagementResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupContainerRegistryIPRestrictionsManagementResult + err := ctx.Invoke("ovh:CloudProject/getContainerRegistryIPRestrictionsManagement:getContainerRegistryIPRestrictionsManagement", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getContainerRegistryIPRestrictionsManagement. +type LookupContainerRegistryIPRestrictionsManagementArgs struct { + // The id of the Managed Private Registry. + RegistryId string `pulumi:"registryId"` + // The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + ServiceName string `pulumi:"serviceName"` +} + +// A collection of values returned by getContainerRegistryIPRestrictionsManagement. +type LookupContainerRegistryIPRestrictionsManagementResult struct { + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // IP restrictions applied on Harbor UI and API. + IpRestrictions []map[string]interface{} `pulumi:"ipRestrictions"` + // The ID of the Managed Private Registry. + RegistryId string `pulumi:"registryId"` + // The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + ServiceName string `pulumi:"serviceName"` +} + +func LookupContainerRegistryIPRestrictionsManagementOutput(ctx *pulumi.Context, args LookupContainerRegistryIPRestrictionsManagementOutputArgs, opts ...pulumi.InvokeOption) LookupContainerRegistryIPRestrictionsManagementResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupContainerRegistryIPRestrictionsManagementResult, error) { + args := v.(LookupContainerRegistryIPRestrictionsManagementArgs) + r, err := LookupContainerRegistryIPRestrictionsManagement(ctx, &args, opts...) + var s LookupContainerRegistryIPRestrictionsManagementResult + if r != nil { + s = *r + } + return s, err + }).(LookupContainerRegistryIPRestrictionsManagementResultOutput) +} + +// A collection of arguments for invoking getContainerRegistryIPRestrictionsManagement. +type LookupContainerRegistryIPRestrictionsManagementOutputArgs struct { + // The id of the Managed Private Registry. + RegistryId pulumi.StringInput `pulumi:"registryId"` + // The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + ServiceName pulumi.StringInput `pulumi:"serviceName"` +} + +func (LookupContainerRegistryIPRestrictionsManagementOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupContainerRegistryIPRestrictionsManagementArgs)(nil)).Elem() +} + +// A collection of values returned by getContainerRegistryIPRestrictionsManagement. +type LookupContainerRegistryIPRestrictionsManagementResultOutput struct{ *pulumi.OutputState } + +func (LookupContainerRegistryIPRestrictionsManagementResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupContainerRegistryIPRestrictionsManagementResult)(nil)).Elem() +} + +func (o LookupContainerRegistryIPRestrictionsManagementResultOutput) ToLookupContainerRegistryIPRestrictionsManagementResultOutput() LookupContainerRegistryIPRestrictionsManagementResultOutput { + return o +} + +func (o LookupContainerRegistryIPRestrictionsManagementResultOutput) ToLookupContainerRegistryIPRestrictionsManagementResultOutputWithContext(ctx context.Context) LookupContainerRegistryIPRestrictionsManagementResultOutput { + return o +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupContainerRegistryIPRestrictionsManagementResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupContainerRegistryIPRestrictionsManagementResult) string { return v.Id }).(pulumi.StringOutput) +} + +// IP restrictions applied on Harbor UI and API. +func (o LookupContainerRegistryIPRestrictionsManagementResultOutput) IpRestrictions() pulumi.MapArrayOutput { + return o.ApplyT(func(v LookupContainerRegistryIPRestrictionsManagementResult) []map[string]interface{} { + return v.IpRestrictions + }).(pulumi.MapArrayOutput) +} + +// The ID of the Managed Private Registry. +func (o LookupContainerRegistryIPRestrictionsManagementResultOutput) RegistryId() pulumi.StringOutput { + return o.ApplyT(func(v LookupContainerRegistryIPRestrictionsManagementResult) string { return v.RegistryId }).(pulumi.StringOutput) +} + +// The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. +func (o LookupContainerRegistryIPRestrictionsManagementResultOutput) ServiceName() pulumi.StringOutput { + return o.ApplyT(func(v LookupContainerRegistryIPRestrictionsManagementResult) string { return v.ServiceName }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupContainerRegistryIPRestrictionsManagementResultOutput{}) +} diff --git a/sdk/go/ovh/cloudproject/getContainerRegistryIPRestrictionsRegistry.go b/sdk/go/ovh/cloudproject/getContainerRegistryIPRestrictionsRegistry.go new file mode 100644 index 00000000..51a01aaf --- /dev/null +++ b/sdk/go/ovh/cloudproject/getContainerRegistryIPRestrictionsRegistry.go @@ -0,0 +1,109 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudproject + +import ( + "context" + "reflect" + + "github.com/ovh/pulumi-ovh/sdk/go/ovh/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Use this data source to get the list of Registry IP Restrictions of a container registry associated with a public cloud project. +func LookupContainerRegistryIPRestrictionsRegistry(ctx *pulumi.Context, args *LookupContainerRegistryIPRestrictionsRegistryArgs, opts ...pulumi.InvokeOption) (*LookupContainerRegistryIPRestrictionsRegistryResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupContainerRegistryIPRestrictionsRegistryResult + err := ctx.Invoke("ovh:CloudProject/getContainerRegistryIPRestrictionsRegistry:getContainerRegistryIPRestrictionsRegistry", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getContainerRegistryIPRestrictionsRegistry. +type LookupContainerRegistryIPRestrictionsRegistryArgs struct { + // The id of the Managed Private Registry. + RegistryId string `pulumi:"registryId"` + // The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + ServiceName string `pulumi:"serviceName"` +} + +// A collection of values returned by getContainerRegistryIPRestrictionsRegistry. +type LookupContainerRegistryIPRestrictionsRegistryResult struct { + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // IP restrictions applied on artifact manager component. + IpRestrictions []map[string]interface{} `pulumi:"ipRestrictions"` + // The ID of the Managed Private Registry. + RegistryId string `pulumi:"registryId"` + // The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + ServiceName string `pulumi:"serviceName"` +} + +func LookupContainerRegistryIPRestrictionsRegistryOutput(ctx *pulumi.Context, args LookupContainerRegistryIPRestrictionsRegistryOutputArgs, opts ...pulumi.InvokeOption) LookupContainerRegistryIPRestrictionsRegistryResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupContainerRegistryIPRestrictionsRegistryResult, error) { + args := v.(LookupContainerRegistryIPRestrictionsRegistryArgs) + r, err := LookupContainerRegistryIPRestrictionsRegistry(ctx, &args, opts...) + var s LookupContainerRegistryIPRestrictionsRegistryResult + if r != nil { + s = *r + } + return s, err + }).(LookupContainerRegistryIPRestrictionsRegistryResultOutput) +} + +// A collection of arguments for invoking getContainerRegistryIPRestrictionsRegistry. +type LookupContainerRegistryIPRestrictionsRegistryOutputArgs struct { + // The id of the Managed Private Registry. + RegistryId pulumi.StringInput `pulumi:"registryId"` + // The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + ServiceName pulumi.StringInput `pulumi:"serviceName"` +} + +func (LookupContainerRegistryIPRestrictionsRegistryOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupContainerRegistryIPRestrictionsRegistryArgs)(nil)).Elem() +} + +// A collection of values returned by getContainerRegistryIPRestrictionsRegistry. +type LookupContainerRegistryIPRestrictionsRegistryResultOutput struct{ *pulumi.OutputState } + +func (LookupContainerRegistryIPRestrictionsRegistryResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupContainerRegistryIPRestrictionsRegistryResult)(nil)).Elem() +} + +func (o LookupContainerRegistryIPRestrictionsRegistryResultOutput) ToLookupContainerRegistryIPRestrictionsRegistryResultOutput() LookupContainerRegistryIPRestrictionsRegistryResultOutput { + return o +} + +func (o LookupContainerRegistryIPRestrictionsRegistryResultOutput) ToLookupContainerRegistryIPRestrictionsRegistryResultOutputWithContext(ctx context.Context) LookupContainerRegistryIPRestrictionsRegistryResultOutput { + return o +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupContainerRegistryIPRestrictionsRegistryResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupContainerRegistryIPRestrictionsRegistryResult) string { return v.Id }).(pulumi.StringOutput) +} + +// IP restrictions applied on artifact manager component. +func (o LookupContainerRegistryIPRestrictionsRegistryResultOutput) IpRestrictions() pulumi.MapArrayOutput { + return o.ApplyT(func(v LookupContainerRegistryIPRestrictionsRegistryResult) []map[string]interface{} { + return v.IpRestrictions + }).(pulumi.MapArrayOutput) +} + +// The ID of the Managed Private Registry. +func (o LookupContainerRegistryIPRestrictionsRegistryResultOutput) RegistryId() pulumi.StringOutput { + return o.ApplyT(func(v LookupContainerRegistryIPRestrictionsRegistryResult) string { return v.RegistryId }).(pulumi.StringOutput) +} + +// The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. +func (o LookupContainerRegistryIPRestrictionsRegistryResultOutput) ServiceName() pulumi.StringOutput { + return o.ApplyT(func(v LookupContainerRegistryIPRestrictionsRegistryResult) string { return v.ServiceName }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupContainerRegistryIPRestrictionsRegistryResultOutput{}) +} diff --git a/sdk/go/ovh/cloudproject/getKubeNodePool.go b/sdk/go/ovh/cloudproject/getKubeNodePool.go index 6033359a..7580d678 100644 --- a/sdk/go/ovh/cloudproject/getKubeNodePool.go +++ b/sdk/go/ovh/cloudproject/getKubeNodePool.go @@ -69,6 +69,15 @@ type LookupKubeNodePoolResult struct { AntiAffinity bool `pulumi:"antiAffinity"` // (Optional) Enable auto-scaling for the pool. Default to `false`. Autoscale bool `pulumi:"autoscale"` + // (Optional) scaleDownUnneededTimeSeconds autoscaling parameter + // How long a node should be unneeded before it is eligible for scale down + AutoscalingScaleDownUnneededTimeSeconds int `pulumi:"autoscalingScaleDownUnneededTimeSeconds"` + // (Optional) scaleDownUnreadyTimeSeconds autoscaling parameter + // How long an unready node should be unneeded before it is eligible for scale down + AutoscalingScaleDownUnreadyTimeSeconds int `pulumi:"autoscalingScaleDownUnreadyTimeSeconds"` + // (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 + AutoscalingScaleDownUtilizationThreshold float64 `pulumi:"autoscalingScaleDownUtilizationThreshold"` // Number of nodes which are actually ready in the pool AvailableNodes int `pulumi:"availableNodes"` // Creation date @@ -168,6 +177,24 @@ func (o LookupKubeNodePoolResultOutput) Autoscale() pulumi.BoolOutput { return o.ApplyT(func(v LookupKubeNodePoolResult) bool { return v.Autoscale }).(pulumi.BoolOutput) } +// (Optional) scaleDownUnneededTimeSeconds autoscaling parameter +// How long a node should be unneeded before it is eligible for scale down +func (o LookupKubeNodePoolResultOutput) AutoscalingScaleDownUnneededTimeSeconds() pulumi.IntOutput { + return o.ApplyT(func(v LookupKubeNodePoolResult) int { return v.AutoscalingScaleDownUnneededTimeSeconds }).(pulumi.IntOutput) +} + +// (Optional) scaleDownUnreadyTimeSeconds autoscaling parameter +// How long an unready node should be unneeded before it is eligible for scale down +func (o LookupKubeNodePoolResultOutput) AutoscalingScaleDownUnreadyTimeSeconds() pulumi.IntOutput { + return o.ApplyT(func(v LookupKubeNodePoolResult) int { return v.AutoscalingScaleDownUnreadyTimeSeconds }).(pulumi.IntOutput) +} + +// (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 +func (o LookupKubeNodePoolResultOutput) AutoscalingScaleDownUtilizationThreshold() pulumi.Float64Output { + return o.ApplyT(func(v LookupKubeNodePoolResult) float64 { return v.AutoscalingScaleDownUtilizationThreshold }).(pulumi.Float64Output) +} + // Number of nodes which are actually ready in the pool func (o LookupKubeNodePoolResultOutput) AvailableNodes() pulumi.IntOutput { return o.ApplyT(func(v LookupKubeNodePoolResult) int { return v.AvailableNodes }).(pulumi.IntOutput) diff --git a/sdk/go/ovh/cloudproject/init.go b/sdk/go/ovh/cloudproject/init.go index dcee5730..3c4fdd16 100644 --- a/sdk/go/ovh/cloudproject/init.go +++ b/sdk/go/ovh/cloudproject/init.go @@ -23,6 +23,10 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi switch typ { case "ovh:CloudProject/containerRegistry:ContainerRegistry": r = &ContainerRegistry{} + case "ovh:CloudProject/containerRegistryIPRestrictionsManagement:ContainerRegistryIPRestrictionsManagement": + r = &ContainerRegistryIPRestrictionsManagement{} + case "ovh:CloudProject/containerRegistryIPRestrictionsRegistry:ContainerRegistryIPRestrictionsRegistry": + r = &ContainerRegistryIPRestrictionsRegistry{} case "ovh:CloudProject/containerRegistryOIDC:ContainerRegistryOIDC": r = &ContainerRegistryOIDC{} case "ovh:CloudProject/containerRegistryUser:ContainerRegistryUser": @@ -73,6 +77,16 @@ func init() { "CloudProject/containerRegistry", &module{version}, ) + pulumi.RegisterResourceModule( + "ovh", + "CloudProject/containerRegistryIPRestrictionsManagement", + &module{version}, + ) + pulumi.RegisterResourceModule( + "ovh", + "CloudProject/containerRegistryIPRestrictionsRegistry", + &module{version}, + ) pulumi.RegisterResourceModule( "ovh", "CloudProject/containerRegistryOIDC", diff --git a/sdk/go/ovh/cloudproject/kube.go b/sdk/go/ovh/cloudproject/kube.go index 8e24a0c7..0cc4ba8a 100644 --- a/sdk/go/ovh/cloudproject/kube.go +++ b/sdk/go/ovh/cloudproject/kube.go @@ -14,12 +14,12 @@ import ( // ## Import // -// OVHcloud Managed Kubernetes Service clusters can be imported using the `service_name` and the `id` of the cluster, separated by "/" E.g., bash +// OVHcloud Managed Kubernetes Service clusters can be imported using the `service_name` and the `id` of the cluster, separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:CloudProject/kube:Kube my_kube_cluster service_name/kube_id +// bash // +// ```sh +// $ pulumi import ovh:CloudProject/kube:Kube my_kube_cluster service_name/kube_id // ``` type Kube struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/cloudproject/kubeIpRestrictions.go b/sdk/go/ovh/cloudproject/kubeIpRestrictions.go index 9e2a0644..1d744f59 100644 --- a/sdk/go/ovh/cloudproject/kubeIpRestrictions.go +++ b/sdk/go/ovh/cloudproject/kubeIpRestrictions.go @@ -46,12 +46,12 @@ import ( // // ## Import // -// OVHcloud Managed Kubernetes Service cluster IP restrictions can be imported using the `service_name` and the `id` of the cluster, separated by "/" E.g., bash +// OVHcloud Managed Kubernetes Service cluster IP restrictions can be imported using the `service_name` and the `id` of the cluster, separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:CloudProject/kubeIpRestrictions:KubeIpRestrictions iprestrictions service_name/kube_id +// bash // +// ```sh +// $ pulumi import ovh:CloudProject/kubeIpRestrictions:KubeIpRestrictions iprestrictions service_name/kube_id // ``` type KubeIpRestrictions struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/cloudproject/kubeNodePool.go b/sdk/go/ovh/cloudproject/kubeNodePool.go index 038b574b..02df16bf 100644 --- a/sdk/go/ovh/cloudproject/kubeNodePool.go +++ b/sdk/go/ovh/cloudproject/kubeNodePool.go @@ -106,12 +106,12 @@ import ( // // ## Import // -// OVHcloud 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., bash +// OVHcloud 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., // -// ```sh -// -// $ pulumi import ovh:CloudProject/kubeNodePool:KubeNodePool pool service_name/kube_id/poolid +// bash // +// ```sh +// $ pulumi import ovh:CloudProject/kubeNodePool:KubeNodePool pool service_name/kube_id/poolid // ``` type KubeNodePool struct { pulumi.CustomResourceState @@ -119,8 +119,17 @@ type KubeNodePool struct { // should the pool use the anti-affinity feature. Default to `false`. **Changing this value recreates the resource.** AntiAffinity pulumi.BoolOutput `pulumi:"antiAffinity"` // Enable auto-scaling for the pool. Default to `false`. - // * ` template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: Autoscale pulumi.BoolOutput `pulumi:"autoscale"` + // scaleDownUnneededTimeSeconds autoscaling parameter + // How long a node should be unneeded before it is eligible for scale down + AutoscalingScaleDownUnneededTimeSeconds pulumi.IntOutput `pulumi:"autoscalingScaleDownUnneededTimeSeconds"` + // scaleDownUnreadyTimeSeconds autoscaling parameter + // How long an unready node should be unneeded before it is eligible for scale down + AutoscalingScaleDownUnreadyTimeSeconds pulumi.IntOutput `pulumi:"autoscalingScaleDownUnreadyTimeSeconds"` + // 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 + // * ` template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: + AutoscalingScaleDownUtilizationThreshold pulumi.Float64Output `pulumi:"autoscalingScaleDownUtilizationThreshold"` // Number of nodes which are actually ready in the pool AvailableNodes pulumi.IntOutput `pulumi:"availableNodes"` // Creation date @@ -202,8 +211,17 @@ type kubeNodePoolState struct { // should the pool use the anti-affinity feature. Default to `false`. **Changing this value recreates the resource.** AntiAffinity *bool `pulumi:"antiAffinity"` // Enable auto-scaling for the pool. Default to `false`. - // * ` template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: Autoscale *bool `pulumi:"autoscale"` + // scaleDownUnneededTimeSeconds autoscaling parameter + // How long a node should be unneeded before it is eligible for scale down + AutoscalingScaleDownUnneededTimeSeconds *int `pulumi:"autoscalingScaleDownUnneededTimeSeconds"` + // scaleDownUnreadyTimeSeconds autoscaling parameter + // How long an unready node should be unneeded before it is eligible for scale down + AutoscalingScaleDownUnreadyTimeSeconds *int `pulumi:"autoscalingScaleDownUnreadyTimeSeconds"` + // 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 + // * ` template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: + AutoscalingScaleDownUtilizationThreshold *float64 `pulumi:"autoscalingScaleDownUtilizationThreshold"` // Number of nodes which are actually ready in the pool AvailableNodes *int `pulumi:"availableNodes"` // Creation date @@ -247,8 +265,17 @@ type KubeNodePoolState struct { // should the pool use the anti-affinity feature. Default to `false`. **Changing this value recreates the resource.** AntiAffinity pulumi.BoolPtrInput // Enable auto-scaling for the pool. Default to `false`. - // * ` template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: Autoscale pulumi.BoolPtrInput + // scaleDownUnneededTimeSeconds autoscaling parameter + // How long a node should be unneeded before it is eligible for scale down + AutoscalingScaleDownUnneededTimeSeconds pulumi.IntPtrInput + // scaleDownUnreadyTimeSeconds autoscaling parameter + // How long an unready node should be unneeded before it is eligible for scale down + AutoscalingScaleDownUnreadyTimeSeconds pulumi.IntPtrInput + // 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 + // * ` template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: + AutoscalingScaleDownUtilizationThreshold pulumi.Float64PtrInput // Number of nodes which are actually ready in the pool AvailableNodes pulumi.IntPtrInput // Creation date @@ -296,8 +323,17 @@ type kubeNodePoolArgs struct { // should the pool use the anti-affinity feature. Default to `false`. **Changing this value recreates the resource.** AntiAffinity *bool `pulumi:"antiAffinity"` // Enable auto-scaling for the pool. Default to `false`. - // * ` template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: Autoscale *bool `pulumi:"autoscale"` + // scaleDownUnneededTimeSeconds autoscaling parameter + // How long a node should be unneeded before it is eligible for scale down + AutoscalingScaleDownUnneededTimeSeconds *int `pulumi:"autoscalingScaleDownUnneededTimeSeconds"` + // scaleDownUnreadyTimeSeconds autoscaling parameter + // How long an unready node should be unneeded before it is eligible for scale down + AutoscalingScaleDownUnreadyTimeSeconds *int `pulumi:"autoscalingScaleDownUnreadyTimeSeconds"` + // 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 + // * ` template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: + AutoscalingScaleDownUtilizationThreshold *float64 `pulumi:"autoscalingScaleDownUtilizationThreshold"` // number of nodes to start. DesiredNodes *int `pulumi:"desiredNodes"` // 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/. @@ -324,8 +360,17 @@ type KubeNodePoolArgs struct { // should the pool use the anti-affinity feature. Default to `false`. **Changing this value recreates the resource.** AntiAffinity pulumi.BoolPtrInput // Enable auto-scaling for the pool. Default to `false`. - // * ` template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: Autoscale pulumi.BoolPtrInput + // scaleDownUnneededTimeSeconds autoscaling parameter + // How long a node should be unneeded before it is eligible for scale down + AutoscalingScaleDownUnneededTimeSeconds pulumi.IntPtrInput + // scaleDownUnreadyTimeSeconds autoscaling parameter + // How long an unready node should be unneeded before it is eligible for scale down + AutoscalingScaleDownUnreadyTimeSeconds pulumi.IntPtrInput + // 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 + // * ` template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: + AutoscalingScaleDownUtilizationThreshold pulumi.Float64PtrInput // number of nodes to start. DesiredNodes pulumi.IntPtrInput // 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/. @@ -440,11 +485,29 @@ func (o KubeNodePoolOutput) AntiAffinity() pulumi.BoolOutput { } // Enable auto-scaling for the pool. Default to `false`. -// * ` template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: func (o KubeNodePoolOutput) Autoscale() pulumi.BoolOutput { return o.ApplyT(func(v *KubeNodePool) pulumi.BoolOutput { return v.Autoscale }).(pulumi.BoolOutput) } +// scaleDownUnneededTimeSeconds autoscaling parameter +// How long a node should be unneeded before it is eligible for scale down +func (o KubeNodePoolOutput) AutoscalingScaleDownUnneededTimeSeconds() pulumi.IntOutput { + return o.ApplyT(func(v *KubeNodePool) pulumi.IntOutput { return v.AutoscalingScaleDownUnneededTimeSeconds }).(pulumi.IntOutput) +} + +// scaleDownUnreadyTimeSeconds autoscaling parameter +// How long an unready node should be unneeded before it is eligible for scale down +func (o KubeNodePoolOutput) AutoscalingScaleDownUnreadyTimeSeconds() pulumi.IntOutput { + return o.ApplyT(func(v *KubeNodePool) pulumi.IntOutput { return v.AutoscalingScaleDownUnreadyTimeSeconds }).(pulumi.IntOutput) +} + +// 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 +// * ` template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: +func (o KubeNodePoolOutput) AutoscalingScaleDownUtilizationThreshold() pulumi.Float64Output { + return o.ApplyT(func(v *KubeNodePool) pulumi.Float64Output { return v.AutoscalingScaleDownUtilizationThreshold }).(pulumi.Float64Output) +} + // Number of nodes which are actually ready in the pool func (o KubeNodePoolOutput) AvailableNodes() pulumi.IntOutput { return o.ApplyT(func(v *KubeNodePool) pulumi.IntOutput { return v.AvailableNodes }).(pulumi.IntOutput) diff --git a/sdk/go/ovh/cloudproject/kubeOidc.go b/sdk/go/ovh/cloudproject/kubeOidc.go index 64e47c19..6e5bfc38 100644 --- a/sdk/go/ovh/cloudproject/kubeOidc.go +++ b/sdk/go/ovh/cloudproject/kubeOidc.go @@ -58,12 +58,12 @@ import ( // // ## Import // -// OVHcloud Managed Kubernetes Service cluster OIDC can be imported using the tenant `service_name` and cluster id `kube_id` separated by "/" E.g., bash +// OVHcloud Managed Kubernetes Service cluster OIDC can be imported using the tenant `service_name` and cluster id `kube_id` separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:CloudProject/kubeOidc:KubeOidc my-oidc service_name/kube_id +// bash // +// ```sh +// $ pulumi import ovh:CloudProject/kubeOidc:KubeOidc my-oidc service_name/kube_id // ``` type KubeOidc struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/cloudproject/networkPrivate.go b/sdk/go/ovh/cloudproject/networkPrivate.go index 788166cc..e873b6e3 100644 --- a/sdk/go/ovh/cloudproject/networkPrivate.go +++ b/sdk/go/ovh/cloudproject/networkPrivate.go @@ -46,12 +46,12 @@ import ( // // ## Import // -// Private network in a public cloud project can be imported using the `service_name` and the `network_id`, separated by "/" E.g., bash +// Private network in a public cloud project can be imported using the `service_name` and the `network_id`, separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:CloudProject/networkPrivate:NetworkPrivate mynet ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678 +// bash // +// ```sh +// $ pulumi import ovh:CloudProject/networkPrivate:NetworkPrivate mynet ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678 // ``` type NetworkPrivate struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/cloudproject/networkPrivateSubnet.go b/sdk/go/ovh/cloudproject/networkPrivateSubnet.go index f258cc2f..0fe993f2 100644 --- a/sdk/go/ovh/cloudproject/networkPrivateSubnet.go +++ b/sdk/go/ovh/cloudproject/networkPrivateSubnet.go @@ -49,12 +49,12 @@ import ( // // ## Import // -// Subnet in a private network of a public cloud project can be imported using the `service_name` , the `network_id` and the `subnet_id`, separated by "/" E.g., bash +// Subnet in a private network of a public cloud project can be imported using the `service_name` , the `network_id` and the `subnet_id`, separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:CloudProject/networkPrivateSubnet:NetworkPrivateSubnet mysubnet ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678/0f0b73a4-403b-45e4-86d0-b438f1291909 +// bash // +// ```sh +// $ pulumi import ovh:CloudProject/networkPrivateSubnet:NetworkPrivateSubnet mysubnet ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678/0f0b73a4-403b-45e4-86d0-b438f1291909 // ``` type NetworkPrivateSubnet struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/cloudproject/project.go b/sdk/go/ovh/cloudproject/project.go index f093263d..5420dc7f 100644 --- a/sdk/go/ovh/cloudproject/project.go +++ b/sdk/go/ovh/cloudproject/project.go @@ -16,12 +16,10 @@ import ( // // Cloud project can be imported using the `order_id` that can be retrieved in the [order page](https://www.ovh.com/manager/#/dedicated/billing/orders/orders) at the creation time of the Public Cloud project. // -// bash +// bash // // ```sh -// -// $ pulumi import ovh:CloudProject/project:Project my_cloud_project order_id -// +// $ pulumi import ovh:CloudProject/project:Project my_cloud_project order_id // ``` type Project struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/cloudproject/pulumiTypes.go b/sdk/go/ovh/cloudproject/pulumiTypes.go index 336775ba..6c969148 100644 --- a/sdk/go/ovh/cloudproject/pulumiTypes.go +++ b/sdk/go/ovh/cloudproject/pulumiTypes.go @@ -1953,7 +1953,7 @@ func (o KubeNodePoolTemplateMetadataPtrOutput) Labels() pulumi.StringMapOutput { } type KubeNodePoolTemplateSpec struct { - // Taints to apply to each node + // Taints to apply to each node [NodeSpec kubernetes documentation](https://kubernetes.io/docs/reference/kubernetes-api/cluster-resources/node-v1/#NodeSpec) Taints []map[string]interface{} `pulumi:"taints"` // If true, set nodes as un-schedulable Unschedulable bool `pulumi:"unschedulable"` @@ -1971,7 +1971,7 @@ type KubeNodePoolTemplateSpecInput interface { } type KubeNodePoolTemplateSpecArgs struct { - // Taints to apply to each node + // Taints to apply to each node [NodeSpec kubernetes documentation](https://kubernetes.io/docs/reference/kubernetes-api/cluster-resources/node-v1/#NodeSpec) Taints pulumi.MapArrayInput `pulumi:"taints"` // If true, set nodes as un-schedulable Unschedulable pulumi.BoolInput `pulumi:"unschedulable"` @@ -2054,7 +2054,7 @@ func (o KubeNodePoolTemplateSpecOutput) ToKubeNodePoolTemplateSpecPtrOutputWithC }).(KubeNodePoolTemplateSpecPtrOutput) } -// Taints to apply to each node +// Taints to apply to each node [NodeSpec kubernetes documentation](https://kubernetes.io/docs/reference/kubernetes-api/cluster-resources/node-v1/#NodeSpec) func (o KubeNodePoolTemplateSpecOutput) Taints() pulumi.MapArrayOutput { return o.ApplyT(func(v KubeNodePoolTemplateSpec) []map[string]interface{} { return v.Taints }).(pulumi.MapArrayOutput) } @@ -2088,7 +2088,7 @@ func (o KubeNodePoolTemplateSpecPtrOutput) Elem() KubeNodePoolTemplateSpecOutput }).(KubeNodePoolTemplateSpecOutput) } -// Taints to apply to each node +// Taints to apply to each node [NodeSpec kubernetes documentation](https://kubernetes.io/docs/reference/kubernetes-api/cluster-resources/node-v1/#NodeSpec) func (o KubeNodePoolTemplateSpecPtrOutput) Taints() pulumi.MapArrayOutput { return o.ApplyT(func(v *KubeNodePoolTemplateSpec) []map[string]interface{} { if v == nil { @@ -5568,8 +5568,10 @@ func (o GetKubeNodePoolNodesNodeArrayOutput) Index(i pulumi.IntInput) GetKubeNod } type GetKubeNodePoolTemplate struct { + // metadata Metadata *GetKubeNodePoolTemplateMetadata `pulumi:"metadata"` - Spec *GetKubeNodePoolTemplateSpec `pulumi:"spec"` + // spec + Spec *GetKubeNodePoolTemplateSpec `pulumi:"spec"` } // GetKubeNodePoolTemplateInput is an input type that accepts GetKubeNodePoolTemplateArgs and GetKubeNodePoolTemplateOutput values. @@ -5584,8 +5586,10 @@ type GetKubeNodePoolTemplateInput interface { } type GetKubeNodePoolTemplateArgs struct { + // metadata Metadata GetKubeNodePoolTemplateMetadataPtrInput `pulumi:"metadata"` - Spec GetKubeNodePoolTemplateSpecPtrInput `pulumi:"spec"` + // spec + Spec GetKubeNodePoolTemplateSpecPtrInput `pulumi:"spec"` } func (GetKubeNodePoolTemplateArgs) ElementType() reflect.Type { @@ -5665,10 +5669,12 @@ func (o GetKubeNodePoolTemplateOutput) ToGetKubeNodePoolTemplatePtrOutputWithCon }).(GetKubeNodePoolTemplatePtrOutput) } +// metadata func (o GetKubeNodePoolTemplateOutput) Metadata() GetKubeNodePoolTemplateMetadataPtrOutput { return o.ApplyT(func(v GetKubeNodePoolTemplate) *GetKubeNodePoolTemplateMetadata { return v.Metadata }).(GetKubeNodePoolTemplateMetadataPtrOutput) } +// spec func (o GetKubeNodePoolTemplateOutput) Spec() GetKubeNodePoolTemplateSpecPtrOutput { return o.ApplyT(func(v GetKubeNodePoolTemplate) *GetKubeNodePoolTemplateSpec { return v.Spec }).(GetKubeNodePoolTemplateSpecPtrOutput) } @@ -5697,6 +5703,7 @@ func (o GetKubeNodePoolTemplatePtrOutput) Elem() GetKubeNodePoolTemplateOutput { }).(GetKubeNodePoolTemplateOutput) } +// metadata func (o GetKubeNodePoolTemplatePtrOutput) Metadata() GetKubeNodePoolTemplateMetadataPtrOutput { return o.ApplyT(func(v *GetKubeNodePoolTemplate) *GetKubeNodePoolTemplateMetadata { if v == nil { @@ -5706,6 +5713,7 @@ func (o GetKubeNodePoolTemplatePtrOutput) Metadata() GetKubeNodePoolTemplateMeta }).(GetKubeNodePoolTemplateMetadataPtrOutput) } +// spec func (o GetKubeNodePoolTemplatePtrOutput) Spec() GetKubeNodePoolTemplateSpecPtrOutput { return o.ApplyT(func(v *GetKubeNodePoolTemplate) *GetKubeNodePoolTemplateSpec { if v == nil { @@ -5716,9 +5724,12 @@ func (o GetKubeNodePoolTemplatePtrOutput) Spec() GetKubeNodePoolTemplateSpecPtrO } type GetKubeNodePoolTemplateMetadata struct { + // annotations Annotations map[string]string `pulumi:"annotations"` - Finalizers []string `pulumi:"finalizers"` - Labels map[string]string `pulumi:"labels"` + // finalizers + Finalizers []string `pulumi:"finalizers"` + // labels + Labels map[string]string `pulumi:"labels"` } // GetKubeNodePoolTemplateMetadataInput is an input type that accepts GetKubeNodePoolTemplateMetadataArgs and GetKubeNodePoolTemplateMetadataOutput values. @@ -5733,9 +5744,12 @@ type GetKubeNodePoolTemplateMetadataInput interface { } type GetKubeNodePoolTemplateMetadataArgs struct { - Annotations pulumi.StringMapInput `pulumi:"annotations"` - Finalizers pulumi.StringArrayInput `pulumi:"finalizers"` - Labels pulumi.StringMapInput `pulumi:"labels"` + // annotations + Annotations pulumi.StringMapInput `pulumi:"annotations"` + // finalizers + Finalizers pulumi.StringArrayInput `pulumi:"finalizers"` + // labels + Labels pulumi.StringMapInput `pulumi:"labels"` } func (GetKubeNodePoolTemplateMetadataArgs) ElementType() reflect.Type { @@ -5815,14 +5829,17 @@ func (o GetKubeNodePoolTemplateMetadataOutput) ToGetKubeNodePoolTemplateMetadata }).(GetKubeNodePoolTemplateMetadataPtrOutput) } +// annotations func (o GetKubeNodePoolTemplateMetadataOutput) Annotations() pulumi.StringMapOutput { return o.ApplyT(func(v GetKubeNodePoolTemplateMetadata) map[string]string { return v.Annotations }).(pulumi.StringMapOutput) } +// finalizers func (o GetKubeNodePoolTemplateMetadataOutput) Finalizers() pulumi.StringArrayOutput { return o.ApplyT(func(v GetKubeNodePoolTemplateMetadata) []string { return v.Finalizers }).(pulumi.StringArrayOutput) } +// labels func (o GetKubeNodePoolTemplateMetadataOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v GetKubeNodePoolTemplateMetadata) map[string]string { return v.Labels }).(pulumi.StringMapOutput) } @@ -5851,6 +5868,7 @@ func (o GetKubeNodePoolTemplateMetadataPtrOutput) Elem() GetKubeNodePoolTemplate }).(GetKubeNodePoolTemplateMetadataOutput) } +// annotations func (o GetKubeNodePoolTemplateMetadataPtrOutput) Annotations() pulumi.StringMapOutput { return o.ApplyT(func(v *GetKubeNodePoolTemplateMetadata) map[string]string { if v == nil { @@ -5860,6 +5878,7 @@ func (o GetKubeNodePoolTemplateMetadataPtrOutput) Annotations() pulumi.StringMap }).(pulumi.StringMapOutput) } +// finalizers func (o GetKubeNodePoolTemplateMetadataPtrOutput) Finalizers() pulumi.StringArrayOutput { return o.ApplyT(func(v *GetKubeNodePoolTemplateMetadata) []string { if v == nil { @@ -5869,6 +5888,7 @@ func (o GetKubeNodePoolTemplateMetadataPtrOutput) Finalizers() pulumi.StringArra }).(pulumi.StringArrayOutput) } +// labels func (o GetKubeNodePoolTemplateMetadataPtrOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v *GetKubeNodePoolTemplateMetadata) map[string]string { if v == nil { @@ -5879,8 +5899,10 @@ func (o GetKubeNodePoolTemplateMetadataPtrOutput) Labels() pulumi.StringMapOutpu } type GetKubeNodePoolTemplateSpec struct { - Taints []map[string]interface{} `pulumi:"taints"` - Unschedulable *bool `pulumi:"unschedulable"` + // taints + Taints []map[string]interface{} `pulumi:"taints"` + // unschedulable + Unschedulable *bool `pulumi:"unschedulable"` } // GetKubeNodePoolTemplateSpecInput is an input type that accepts GetKubeNodePoolTemplateSpecArgs and GetKubeNodePoolTemplateSpecOutput values. @@ -5895,8 +5917,10 @@ type GetKubeNodePoolTemplateSpecInput interface { } type GetKubeNodePoolTemplateSpecArgs struct { - Taints pulumi.MapArrayInput `pulumi:"taints"` - Unschedulable pulumi.BoolPtrInput `pulumi:"unschedulable"` + // taints + Taints pulumi.MapArrayInput `pulumi:"taints"` + // unschedulable + Unschedulable pulumi.BoolPtrInput `pulumi:"unschedulable"` } func (GetKubeNodePoolTemplateSpecArgs) ElementType() reflect.Type { @@ -5976,10 +6000,12 @@ func (o GetKubeNodePoolTemplateSpecOutput) ToGetKubeNodePoolTemplateSpecPtrOutpu }).(GetKubeNodePoolTemplateSpecPtrOutput) } +// taints func (o GetKubeNodePoolTemplateSpecOutput) Taints() pulumi.MapArrayOutput { return o.ApplyT(func(v GetKubeNodePoolTemplateSpec) []map[string]interface{} { return v.Taints }).(pulumi.MapArrayOutput) } +// unschedulable func (o GetKubeNodePoolTemplateSpecOutput) Unschedulable() pulumi.BoolPtrOutput { return o.ApplyT(func(v GetKubeNodePoolTemplateSpec) *bool { return v.Unschedulable }).(pulumi.BoolPtrOutput) } @@ -6008,6 +6034,7 @@ func (o GetKubeNodePoolTemplateSpecPtrOutput) Elem() GetKubeNodePoolTemplateSpec }).(GetKubeNodePoolTemplateSpecOutput) } +// taints func (o GetKubeNodePoolTemplateSpecPtrOutput) Taints() pulumi.MapArrayOutput { return o.ApplyT(func(v *GetKubeNodePoolTemplateSpec) []map[string]interface{} { if v == nil { @@ -6017,6 +6044,7 @@ func (o GetKubeNodePoolTemplateSpecPtrOutput) Taints() pulumi.MapArrayOutput { }).(pulumi.MapArrayOutput) } +// unschedulable func (o GetKubeNodePoolTemplateSpecPtrOutput) Unschedulable() pulumi.BoolPtrOutput { return o.ApplyT(func(v *GetKubeNodePoolTemplateSpec) *bool { if v == nil { diff --git a/sdk/go/ovh/cloudproject/s3credential.go b/sdk/go/ovh/cloudproject/s3credential.go index 7657ff9d..eee58ab7 100644 --- a/sdk/go/ovh/cloudproject/s3credential.go +++ b/sdk/go/ovh/cloudproject/s3credential.go @@ -16,12 +16,12 @@ import ( // // ## Import // -// OVHcloud User S3 Credentials can be imported using the `service_name`, `user_id` and `access_key_id` of the credential, separated by "/" E.g., bash +// OVHcloud User S3 Credentials can be imported using the `service_name`, `user_id` and `access_key_id` of the credential, separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:CloudProject/s3Credential:S3Credential s3_credential service_name/user_id/access_key_id +// bash // +// ```sh +// $ pulumi import ovh:CloudProject/s3Credential:S3Credential s3_credential service_name/user_id/access_key_id // ``` type S3Credential struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/cloudproject/s3policy.go b/sdk/go/ovh/cloudproject/s3policy.go index 581c0902..4e1a4613 100644 --- a/sdk/go/ovh/cloudproject/s3policy.go +++ b/sdk/go/ovh/cloudproject/s3policy.go @@ -89,12 +89,12 @@ import ( // // ## Import // -// OVHcloud User S3 Policy can be imported using the `service_name`, `user_id` of the policy, separated by "/" E.g., bash +// OVHcloud User S3 Policy can be imported using the `service_name`, `user_id` of the policy, separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:CloudProject/s3Policy:S3Policy policy service_name/user_id +// bash // +// ```sh +// $ pulumi import ovh:CloudProject/s3Policy:S3Policy policy service_name/user_id // ``` type S3Policy struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/cloudprojectdatabase/databaseInstance.go b/sdk/go/ovh/cloudprojectdatabase/databaseInstance.go index 3615068b..356f00d6 100644 --- a/sdk/go/ovh/cloudprojectdatabase/databaseInstance.go +++ b/sdk/go/ovh/cloudprojectdatabase/databaseInstance.go @@ -57,12 +57,12 @@ import ( // // ## Import // -// OVHcloud Managed database clusters databases can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the database, separated by "/" E.g., bash +// OVHcloud Managed database clusters databases can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the database, separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:CloudProjectDatabase/databaseInstance:DatabaseInstance my_database service_name/engine/cluster_id/id +// bash // +// ```sh +// $ pulumi import ovh:CloudProjectDatabase/databaseInstance:DatabaseInstance my_database service_name/engine/cluster_id/id // ``` type DatabaseInstance struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/cloudprojectdatabase/getDatabase.go b/sdk/go/ovh/cloudprojectdatabase/getDatabase.go index 39785678..bc23ca93 100644 --- a/sdk/go/ovh/cloudprojectdatabase/getDatabase.go +++ b/sdk/go/ovh/cloudprojectdatabase/getDatabase.go @@ -69,6 +69,8 @@ type GetDatabaseArgs struct { type GetDatabaseResult struct { // Advanced configuration key / value. AdvancedConfiguration map[string]string `pulumi:"advancedConfiguration"` + // List of region where backups are pushed. + BackupRegions []string `pulumi:"backupRegions"` // Time on which backups start every day. BackupTime string `pulumi:"backupTime"` // Date of the creation of the cluster. @@ -155,6 +157,11 @@ func (o GetDatabaseResultOutput) AdvancedConfiguration() pulumi.StringMapOutput return o.ApplyT(func(v GetDatabaseResult) map[string]string { return v.AdvancedConfiguration }).(pulumi.StringMapOutput) } +// List of region where backups are pushed. +func (o GetDatabaseResultOutput) BackupRegions() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetDatabaseResult) []string { return v.BackupRegions }).(pulumi.StringArrayOutput) +} + // Time on which backups start every day. func (o GetDatabaseResultOutput) BackupTime() pulumi.StringOutput { return o.ApplyT(func(v GetDatabaseResult) string { return v.BackupTime }).(pulumi.StringOutput) diff --git a/sdk/go/ovh/cloudprojectdatabase/getPostgresSqlConnectionPool.go b/sdk/go/ovh/cloudprojectdatabase/getPostgresSqlConnectionPool.go new file mode 100644 index 00000000..31b1aabe --- /dev/null +++ b/sdk/go/ovh/cloudprojectdatabase/getPostgresSqlConnectionPool.go @@ -0,0 +1,204 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudprojectdatabase + +import ( + "context" + "reflect" + + "github.com/ovh/pulumi-ovh/sdk/go/ovh/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Use this data source to get information about a connection pool of a postgresql cluster associated with a public cloud project. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProjectDatabase" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// testPoolPostgresSqlConnectionPool, err := CloudProjectDatabase.GetPostgresSqlConnectionPool(ctx, &cloudprojectdatabase.GetPostgresSqlConnectionPoolArgs{ +// ServiceName: "XXX", +// ClusterId: "YYY", +// Name: "ZZZ", +// }, nil) +// if err != nil { +// return err +// } +// ctx.Export("testPool", map[string]interface{}{ +// "service_name": testPoolPostgresSqlConnectionPool.ServiceName, +// "cluster_id": testPoolPostgresSqlConnectionPool.ClusterId, +// "name": testPoolPostgresSqlConnectionPool.Name, +// "database_id": testPoolPostgresSqlConnectionPool.DatabaseId, +// "mode": testPoolPostgresSqlConnectionPool.Mode, +// "size": testPoolPostgresSqlConnectionPool.Size, +// "port": testPoolPostgresSqlConnectionPool.Port, +// "ssl_mode": testPoolPostgresSqlConnectionPool.SslMode, +// "uri": testPoolPostgresSqlConnectionPool.Uri, +// "user_id": testPoolPostgresSqlConnectionPool.UserId, +// }) +// return nil +// }) +// } +// +// ``` +func LookupPostgresSqlConnectionPool(ctx *pulumi.Context, args *LookupPostgresSqlConnectionPoolArgs, opts ...pulumi.InvokeOption) (*LookupPostgresSqlConnectionPoolResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupPostgresSqlConnectionPoolResult + err := ctx.Invoke("ovh:CloudProjectDatabase/getPostgresSqlConnectionPool:getPostgresSqlConnectionPool", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getPostgresSqlConnectionPool. +type LookupPostgresSqlConnectionPoolArgs struct { + // Cluster ID. + ClusterId string `pulumi:"clusterId"` + // Name of the Connection pool. + Name string `pulumi:"name"` + // The id of the public cloud project. If omitted, + // the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + ServiceName string `pulumi:"serviceName"` +} + +// A collection of values returned by getPostgresSqlConnectionPool. +type LookupPostgresSqlConnectionPoolResult struct { + // See Argument Reference above + ClusterId string `pulumi:"clusterId"` + // Database ID for a database that belongs to the Database cluster given above. + DatabaseId string `pulumi:"databaseId"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // Connection mode to the connection pool + // Available modes: + Mode string `pulumi:"mode"` + // See Argument Reference above + Name string `pulumi:"name"` + // Port of the connection pool. + Port int `pulumi:"port"` + // See Argument Reference above + ServiceName string `pulumi:"serviceName"` + // Size of the connection pool. + Size int `pulumi:"size"` + // Ssl connection mode for the pool. + SslMode string `pulumi:"sslMode"` + // Connection URI to the pool. + Uri string `pulumi:"uri"` + // Database user authorized to connect to the pool, if none all the users are allowed. + UserId string `pulumi:"userId"` +} + +func LookupPostgresSqlConnectionPoolOutput(ctx *pulumi.Context, args LookupPostgresSqlConnectionPoolOutputArgs, opts ...pulumi.InvokeOption) LookupPostgresSqlConnectionPoolResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupPostgresSqlConnectionPoolResult, error) { + args := v.(LookupPostgresSqlConnectionPoolArgs) + r, err := LookupPostgresSqlConnectionPool(ctx, &args, opts...) + var s LookupPostgresSqlConnectionPoolResult + if r != nil { + s = *r + } + return s, err + }).(LookupPostgresSqlConnectionPoolResultOutput) +} + +// A collection of arguments for invoking getPostgresSqlConnectionPool. +type LookupPostgresSqlConnectionPoolOutputArgs struct { + // Cluster ID. + ClusterId pulumi.StringInput `pulumi:"clusterId"` + // Name of the Connection pool. + Name pulumi.StringInput `pulumi:"name"` + // The id of the public cloud project. If omitted, + // the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + ServiceName pulumi.StringInput `pulumi:"serviceName"` +} + +func (LookupPostgresSqlConnectionPoolOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupPostgresSqlConnectionPoolArgs)(nil)).Elem() +} + +// A collection of values returned by getPostgresSqlConnectionPool. +type LookupPostgresSqlConnectionPoolResultOutput struct{ *pulumi.OutputState } + +func (LookupPostgresSqlConnectionPoolResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupPostgresSqlConnectionPoolResult)(nil)).Elem() +} + +func (o LookupPostgresSqlConnectionPoolResultOutput) ToLookupPostgresSqlConnectionPoolResultOutput() LookupPostgresSqlConnectionPoolResultOutput { + return o +} + +func (o LookupPostgresSqlConnectionPoolResultOutput) ToLookupPostgresSqlConnectionPoolResultOutputWithContext(ctx context.Context) LookupPostgresSqlConnectionPoolResultOutput { + return o +} + +// See Argument Reference above +func (o LookupPostgresSqlConnectionPoolResultOutput) ClusterId() pulumi.StringOutput { + return o.ApplyT(func(v LookupPostgresSqlConnectionPoolResult) string { return v.ClusterId }).(pulumi.StringOutput) +} + +// Database ID for a database that belongs to the Database cluster given above. +func (o LookupPostgresSqlConnectionPoolResultOutput) DatabaseId() pulumi.StringOutput { + return o.ApplyT(func(v LookupPostgresSqlConnectionPoolResult) string { return v.DatabaseId }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupPostgresSqlConnectionPoolResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupPostgresSqlConnectionPoolResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Connection mode to the connection pool +// Available modes: +func (o LookupPostgresSqlConnectionPoolResultOutput) Mode() pulumi.StringOutput { + return o.ApplyT(func(v LookupPostgresSqlConnectionPoolResult) string { return v.Mode }).(pulumi.StringOutput) +} + +// See Argument Reference above +func (o LookupPostgresSqlConnectionPoolResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupPostgresSqlConnectionPoolResult) string { return v.Name }).(pulumi.StringOutput) +} + +// Port of the connection pool. +func (o LookupPostgresSqlConnectionPoolResultOutput) Port() pulumi.IntOutput { + return o.ApplyT(func(v LookupPostgresSqlConnectionPoolResult) int { return v.Port }).(pulumi.IntOutput) +} + +// See Argument Reference above +func (o LookupPostgresSqlConnectionPoolResultOutput) ServiceName() pulumi.StringOutput { + return o.ApplyT(func(v LookupPostgresSqlConnectionPoolResult) string { return v.ServiceName }).(pulumi.StringOutput) +} + +// Size of the connection pool. +func (o LookupPostgresSqlConnectionPoolResultOutput) Size() pulumi.IntOutput { + return o.ApplyT(func(v LookupPostgresSqlConnectionPoolResult) int { return v.Size }).(pulumi.IntOutput) +} + +// Ssl connection mode for the pool. +func (o LookupPostgresSqlConnectionPoolResultOutput) SslMode() pulumi.StringOutput { + return o.ApplyT(func(v LookupPostgresSqlConnectionPoolResult) string { return v.SslMode }).(pulumi.StringOutput) +} + +// Connection URI to the pool. +func (o LookupPostgresSqlConnectionPoolResultOutput) Uri() pulumi.StringOutput { + return o.ApplyT(func(v LookupPostgresSqlConnectionPoolResult) string { return v.Uri }).(pulumi.StringOutput) +} + +// Database user authorized to connect to the pool, if none all the users are allowed. +func (o LookupPostgresSqlConnectionPoolResultOutput) UserId() pulumi.StringOutput { + return o.ApplyT(func(v LookupPostgresSqlConnectionPoolResult) string { return v.UserId }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupPostgresSqlConnectionPoolResultOutput{}) +} diff --git a/sdk/go/ovh/cloudprojectdatabase/init.go b/sdk/go/ovh/cloudprojectdatabase/init.go index e328ed5a..ccd1624a 100644 --- a/sdk/go/ovh/cloudprojectdatabase/init.go +++ b/sdk/go/ovh/cloudprojectdatabase/init.go @@ -43,6 +43,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &OpensearchPattern{} case "ovh:CloudProjectDatabase/opensearchUser:OpensearchUser": r = &OpensearchUser{} + case "ovh:CloudProjectDatabase/postgresSqlConnectionPool:PostgresSqlConnectionPool": + r = &PostgresSqlConnectionPool{} case "ovh:CloudProjectDatabase/postgresSqlUser:PostgresSqlUser": r = &PostgresSqlUser{} case "ovh:CloudProjectDatabase/redisUser:RedisUser": @@ -117,6 +119,11 @@ func init() { "CloudProjectDatabase/opensearchUser", &module{version}, ) + pulumi.RegisterResourceModule( + "ovh", + "CloudProjectDatabase/postgresSqlConnectionPool", + &module{version}, + ) pulumi.RegisterResourceModule( "ovh", "CloudProjectDatabase/postgresSqlUser", diff --git a/sdk/go/ovh/cloudprojectdatabase/integration.go b/sdk/go/ovh/cloudprojectdatabase/integration.go index 2b8f00d7..a584c025 100644 --- a/sdk/go/ovh/cloudprojectdatabase/integration.go +++ b/sdk/go/ovh/cloudprojectdatabase/integration.go @@ -69,12 +69,12 @@ import ( // // ## Import // -// OVHcloud Managed database clusters users can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the user, separated by "/" E.g., bash +// OVHcloud Managed database clusters users can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the user, separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:CloudProjectDatabase/integration:Integration my_user service_name/engine/cluster_id/id +// bash // +// ```sh +// $ pulumi import ovh:CloudProjectDatabase/integration:Integration my_user service_name/engine/cluster_id/id // ``` type Integration struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/cloudprojectdatabase/ipRestriction.go b/sdk/go/ovh/cloudprojectdatabase/ipRestriction.go index 2b3cd713..613b4830 100644 --- a/sdk/go/ovh/cloudprojectdatabase/ipRestriction.go +++ b/sdk/go/ovh/cloudprojectdatabase/ipRestriction.go @@ -53,12 +53,12 @@ import ( // // ## Import // -// OVHcloud Managed database cluster IP restrictions can be imported using the `service_name`, `engine`, `cluster_id` and the `ip`, separated by "/" E.g., bash +// OVHcloud Managed database cluster IP restrictions can be imported using the `service_name`, `engine`, `cluster_id` and the `ip`, separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:CloudProjectDatabase/ipRestriction:IpRestriction my_ip_restriction service_name/engine/cluster_id/178.97.6.0/24 +// bash // +// ```sh +// $ pulumi import ovh:CloudProjectDatabase/ipRestriction:IpRestriction my_ip_restriction service_name/engine/cluster_id/178.97.6.0/24 // ``` type IpRestriction struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/cloudprojectdatabase/kafkaAcl.go b/sdk/go/ovh/cloudprojectdatabase/kafkaAcl.go index 9d26e3ec..95bbdb19 100644 --- a/sdk/go/ovh/cloudprojectdatabase/kafkaAcl.go +++ b/sdk/go/ovh/cloudprojectdatabase/kafkaAcl.go @@ -54,12 +54,12 @@ import ( // // ## Import // -// OVHcloud Managed kafka clusters ACLs can be imported using the `service_name`, `cluster_id` and `id` of the acl, separated by "/" E.g., bash +// OVHcloud Managed kafka clusters ACLs can be imported using the `service_name`, `cluster_id` and `id` of the acl, separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:CloudProjectDatabase/kafkaAcl:KafkaAcl my_acl service_name/cluster_id/id +// bash // +// ```sh +// $ pulumi import ovh:CloudProjectDatabase/kafkaAcl:KafkaAcl my_acl service_name/cluster_id/id // ``` type KafkaAcl struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/cloudprojectdatabase/kafkaSchemaRegistryAcl.go b/sdk/go/ovh/cloudprojectdatabase/kafkaSchemaRegistryAcl.go index a9194091..d9bc37ba 100644 --- a/sdk/go/ovh/cloudprojectdatabase/kafkaSchemaRegistryAcl.go +++ b/sdk/go/ovh/cloudprojectdatabase/kafkaSchemaRegistryAcl.go @@ -54,12 +54,12 @@ import ( // // ## Import // -// OVHcloud 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., bash +// OVHcloud 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., // -// ```sh -// -// $ pulumi import ovh:CloudProjectDatabase/kafkaSchemaRegistryAcl:KafkaSchemaRegistryAcl my_schemaRegistryAcl service_name/cluster_id/id +// bash // +// ```sh +// $ pulumi import ovh:CloudProjectDatabase/kafkaSchemaRegistryAcl:KafkaSchemaRegistryAcl my_schemaRegistryAcl service_name/cluster_id/id // ``` type KafkaSchemaRegistryAcl struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/cloudprojectdatabase/kafkaTopic.go b/sdk/go/ovh/cloudprojectdatabase/kafkaTopic.go index 51cd0f25..a29336e1 100644 --- a/sdk/go/ovh/cloudprojectdatabase/kafkaTopic.go +++ b/sdk/go/ovh/cloudprojectdatabase/kafkaTopic.go @@ -56,12 +56,12 @@ import ( // // ## Import // -// OVHcloud Managed kafka clusters topics can be imported using the `service_name`, `cluster_id` and `id` of the topic, separated by "/" E.g., bash +// OVHcloud Managed kafka clusters topics can be imported using the `service_name`, `cluster_id` and `id` of the topic, separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:CloudProjectDatabase/kafkaTopic:KafkaTopic my_topic service_name/cluster_id/id +// bash // +// ```sh +// $ pulumi import ovh:CloudProjectDatabase/kafkaTopic:KafkaTopic my_topic service_name/cluster_id/id // ``` type KafkaTopic struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/cloudprojectdatabase/m3dbNamespace.go b/sdk/go/ovh/cloudprojectdatabase/m3dbNamespace.go index 4a8c713d..e14e1da8 100644 --- a/sdk/go/ovh/cloudprojectdatabase/m3dbNamespace.go +++ b/sdk/go/ovh/cloudprojectdatabase/m3dbNamespace.go @@ -53,12 +53,12 @@ import ( // // ## Import // -// OVHcloud Managed M3DB clusters namespaces can be imported using the `service_name`, `cluster_id` and `id` of the namespace, separated by "/" E.g., bash +// OVHcloud Managed M3DB clusters namespaces can be imported using the `service_name`, `cluster_id` and `id` of the namespace, separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:CloudProjectDatabase/m3DbNamespace:M3DbNamespace my_namespace service_name/cluster_id/id +// bash // +// ```sh +// $ pulumi import ovh:CloudProjectDatabase/m3DbNamespace:M3DbNamespace my_namespace service_name/cluster_id/id // ``` type M3DbNamespace struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/cloudprojectdatabase/m3dbUser.go b/sdk/go/ovh/cloudprojectdatabase/m3dbUser.go index 9f0df05c..f54f6953 100644 --- a/sdk/go/ovh/cloudprojectdatabase/m3dbUser.go +++ b/sdk/go/ovh/cloudprojectdatabase/m3dbUser.go @@ -14,12 +14,12 @@ import ( // ## Import // -// OVHcloud Managed M3DB clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., bash +// OVHcloud Managed M3DB clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:CloudProjectDatabase/m3DbUser:M3DbUser my_user service_name/cluster_id/id +// bash // +// ```sh +// $ pulumi import ovh:CloudProjectDatabase/m3DbUser:M3DbUser my_user service_name/cluster_id/id // ``` type M3DbUser struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/cloudprojectdatabase/mongoDbUser.go b/sdk/go/ovh/cloudprojectdatabase/mongoDbUser.go index c8a6dde0..7ca96149 100644 --- a/sdk/go/ovh/cloudprojectdatabase/mongoDbUser.go +++ b/sdk/go/ovh/cloudprojectdatabase/mongoDbUser.go @@ -14,12 +14,12 @@ import ( // ## Import // -// OVHcloud Managed MongoDB clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., bash +// OVHcloud Managed MongoDB clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:CloudProjectDatabase/mongoDbUser:MongoDbUser my_user service_name/cluster_id/id +// bash // +// ```sh +// $ pulumi import ovh:CloudProjectDatabase/mongoDbUser:MongoDbUser my_user service_name/cluster_id/id // ``` type MongoDbUser struct { pulumi.CustomResourceState @@ -34,8 +34,25 @@ type MongoDbUser struct { Password pulumi.StringOutput `pulumi:"password"` // Arbitrary string to change to trigger a password update PasswordReset pulumi.StringPtrOutput `pulumi:"passwordReset"` - // Roles the user belongs to. + // Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles // Available roles: + // * `backup@admin` + // * `clusterAdmin@admin` + // * `clusterManager@admin` + // * `clusterMonitor@admin` + // * `dbAdmin@(defined db)` + // * `dbAdminAnyDatabase@admin` + // * `dbOwner@(defined db)` + // * `enableSharding@(defined db)` + // * `hostManager@admin` + // * `read@(defined db)` + // * `readAnyDatabase@admin` + // * `readWrite@(defined db)` + // * `readWriteAnyDatabase@admin` + // * `restore@admin` + // * `root@admin` + // * `userAdmin@(defined db)` + // * `userAdminAnyDatabase@admin` Roles pulumi.StringArrayOutput `pulumi:"roles"` // The id of the public cloud project. If omitted, // the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. @@ -94,8 +111,25 @@ type mongoDbUserState struct { Password *string `pulumi:"password"` // Arbitrary string to change to trigger a password update PasswordReset *string `pulumi:"passwordReset"` - // Roles the user belongs to. + // Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles // Available roles: + // * `backup@admin` + // * `clusterAdmin@admin` + // * `clusterManager@admin` + // * `clusterMonitor@admin` + // * `dbAdmin@(defined db)` + // * `dbAdminAnyDatabase@admin` + // * `dbOwner@(defined db)` + // * `enableSharding@(defined db)` + // * `hostManager@admin` + // * `read@(defined db)` + // * `readAnyDatabase@admin` + // * `readWrite@(defined db)` + // * `readWriteAnyDatabase@admin` + // * `restore@admin` + // * `root@admin` + // * `userAdmin@(defined db)` + // * `userAdminAnyDatabase@admin` Roles []string `pulumi:"roles"` // The id of the public cloud project. If omitted, // the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. @@ -115,8 +149,25 @@ type MongoDbUserState struct { Password pulumi.StringPtrInput // Arbitrary string to change to trigger a password update PasswordReset pulumi.StringPtrInput - // Roles the user belongs to. + // Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles // Available roles: + // * `backup@admin` + // * `clusterAdmin@admin` + // * `clusterManager@admin` + // * `clusterMonitor@admin` + // * `dbAdmin@(defined db)` + // * `dbAdminAnyDatabase@admin` + // * `dbOwner@(defined db)` + // * `enableSharding@(defined db)` + // * `hostManager@admin` + // * `read@(defined db)` + // * `readAnyDatabase@admin` + // * `readWrite@(defined db)` + // * `readWriteAnyDatabase@admin` + // * `restore@admin` + // * `root@admin` + // * `userAdmin@(defined db)` + // * `userAdminAnyDatabase@admin` Roles pulumi.StringArrayInput // The id of the public cloud project. If omitted, // the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. @@ -136,8 +187,25 @@ type mongoDbUserArgs struct { Name *string `pulumi:"name"` // Arbitrary string to change to trigger a password update PasswordReset *string `pulumi:"passwordReset"` - // Roles the user belongs to. + // Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles // Available roles: + // * `backup@admin` + // * `clusterAdmin@admin` + // * `clusterManager@admin` + // * `clusterMonitor@admin` + // * `dbAdmin@(defined db)` + // * `dbAdminAnyDatabase@admin` + // * `dbOwner@(defined db)` + // * `enableSharding@(defined db)` + // * `hostManager@admin` + // * `read@(defined db)` + // * `readAnyDatabase@admin` + // * `readWrite@(defined db)` + // * `readWriteAnyDatabase@admin` + // * `restore@admin` + // * `root@admin` + // * `userAdmin@(defined db)` + // * `userAdminAnyDatabase@admin` Roles []string `pulumi:"roles"` // The id of the public cloud project. If omitted, // the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. @@ -152,8 +220,25 @@ type MongoDbUserArgs struct { Name pulumi.StringPtrInput // Arbitrary string to change to trigger a password update PasswordReset pulumi.StringPtrInput - // Roles the user belongs to. + // Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles // Available roles: + // * `backup@admin` + // * `clusterAdmin@admin` + // * `clusterManager@admin` + // * `clusterMonitor@admin` + // * `dbAdmin@(defined db)` + // * `dbAdminAnyDatabase@admin` + // * `dbOwner@(defined db)` + // * `enableSharding@(defined db)` + // * `hostManager@admin` + // * `read@(defined db)` + // * `readAnyDatabase@admin` + // * `readWrite@(defined db)` + // * `readWriteAnyDatabase@admin` + // * `restore@admin` + // * `root@admin` + // * `userAdmin@(defined db)` + // * `userAdminAnyDatabase@admin` Roles pulumi.StringArrayInput // The id of the public cloud project. If omitted, // the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. @@ -272,8 +357,25 @@ func (o MongoDbUserOutput) PasswordReset() pulumi.StringPtrOutput { return o.ApplyT(func(v *MongoDbUser) pulumi.StringPtrOutput { return v.PasswordReset }).(pulumi.StringPtrOutput) } -// Roles the user belongs to. +// Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles // Available roles: +// * `backup@admin` +// * `clusterAdmin@admin` +// * `clusterManager@admin` +// * `clusterMonitor@admin` +// * `dbAdmin@(defined db)` +// * `dbAdminAnyDatabase@admin` +// * `dbOwner@(defined db)` +// * `enableSharding@(defined db)` +// * `hostManager@admin` +// * `read@(defined db)` +// * `readAnyDatabase@admin` +// * `readWrite@(defined db)` +// * `readWriteAnyDatabase@admin` +// * `restore@admin` +// * `root@admin` +// * `userAdmin@(defined db)` +// * `userAdminAnyDatabase@admin` func (o MongoDbUserOutput) Roles() pulumi.StringArrayOutput { return o.ApplyT(func(v *MongoDbUser) pulumi.StringArrayOutput { return v.Roles }).(pulumi.StringArrayOutput) } diff --git a/sdk/go/ovh/cloudprojectdatabase/opensearchPattern.go b/sdk/go/ovh/cloudprojectdatabase/opensearchPattern.go index 440bc051..9df704bb 100644 --- a/sdk/go/ovh/cloudprojectdatabase/opensearchPattern.go +++ b/sdk/go/ovh/cloudprojectdatabase/opensearchPattern.go @@ -53,12 +53,12 @@ import ( // // ## Import // -// OVHcloud Managed opensearch clusters patterns can be imported using the `service_name`, `cluster_id` and `id` of the pattern, separated by "/" E.g., bash +// OVHcloud Managed opensearch clusters patterns can be imported using the `service_name`, `cluster_id` and `id` of the pattern, separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:CloudProjectDatabase/opensearchPattern:OpensearchPattern my_pattern service_name/cluster_id/id +// bash // +// ```sh +// $ pulumi import ovh:CloudProjectDatabase/opensearchPattern:OpensearchPattern my_pattern service_name/cluster_id/id // ``` type OpensearchPattern struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/cloudprojectdatabase/opensearchUser.go b/sdk/go/ovh/cloudprojectdatabase/opensearchUser.go index b9e9acf2..66a98349 100644 --- a/sdk/go/ovh/cloudprojectdatabase/opensearchUser.go +++ b/sdk/go/ovh/cloudprojectdatabase/opensearchUser.go @@ -14,12 +14,12 @@ import ( // ## Import // -// OVHcloud Managed OpenSearch clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., bash +// OVHcloud Managed OpenSearch clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:CloudProjectDatabase/opensearchUser:OpensearchUser my_user service_name/cluster_id/id +// bash // +// ```sh +// $ pulumi import ovh:CloudProjectDatabase/opensearchUser:OpensearchUser my_user service_name/cluster_id/id // ``` type OpensearchUser struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/cloudprojectdatabase/postgresSqlConnectionPool.go b/sdk/go/ovh/cloudprojectdatabase/postgresSqlConnectionPool.go new file mode 100644 index 00000000..619f2a7d --- /dev/null +++ b/sdk/go/ovh/cloudprojectdatabase/postgresSqlConnectionPool.go @@ -0,0 +1,374 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudprojectdatabase + +import ( + "context" + "reflect" + + "errors" + "github.com/ovh/pulumi-ovh/sdk/go/ovh/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ## Import +// +// OVHcloud Managed PostgreSQL clusters connection pools can be imported using the `service_name`, `cluster_id` and `id` of the connection pool, separated by "/" E.g., +// +// bash +// +// ```sh +// $ pulumi import ovh:CloudProjectDatabase/postgresSqlConnectionPool:PostgresSqlConnectionPool my_connection_pool service_name/cluster_id/id +// ``` +type PostgresSqlConnectionPool struct { + pulumi.CustomResourceState + + // Cluster ID. + ClusterId pulumi.StringOutput `pulumi:"clusterId"` + // Database ID for a database that belongs to the Database cluster given above. + DatabaseId pulumi.StringOutput `pulumi:"databaseId"` + // Connection mode to the connection pool + // Available modes: + Mode pulumi.StringOutput `pulumi:"mode"` + // Name of the connection pool. + Name pulumi.StringOutput `pulumi:"name"` + // Port of the connection pool. + Port pulumi.IntOutput `pulumi:"port"` + // The id of the public cloud project. If omitted, + // the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + ServiceName pulumi.StringOutput `pulumi:"serviceName"` + // Size of the connection pool. + Size pulumi.IntOutput `pulumi:"size"` + // Ssl connection mode for the pool. + SslMode pulumi.StringOutput `pulumi:"sslMode"` + // Connection URI to the pool. + Uri pulumi.StringOutput `pulumi:"uri"` + // Database user authorized to connect to the pool, if none all the users are allowed. + UserId pulumi.StringPtrOutput `pulumi:"userId"` +} + +// NewPostgresSqlConnectionPool registers a new resource with the given unique name, arguments, and options. +func NewPostgresSqlConnectionPool(ctx *pulumi.Context, + name string, args *PostgresSqlConnectionPoolArgs, opts ...pulumi.ResourceOption) (*PostgresSqlConnectionPool, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ClusterId == nil { + return nil, errors.New("invalid value for required argument 'ClusterId'") + } + if args.DatabaseId == nil { + return nil, errors.New("invalid value for required argument 'DatabaseId'") + } + if args.Mode == nil { + return nil, errors.New("invalid value for required argument 'Mode'") + } + if args.ServiceName == nil { + return nil, errors.New("invalid value for required argument 'ServiceName'") + } + if args.Size == nil { + return nil, errors.New("invalid value for required argument 'Size'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource PostgresSqlConnectionPool + err := ctx.RegisterResource("ovh:CloudProjectDatabase/postgresSqlConnectionPool:PostgresSqlConnectionPool", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetPostgresSqlConnectionPool gets an existing PostgresSqlConnectionPool resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetPostgresSqlConnectionPool(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *PostgresSqlConnectionPoolState, opts ...pulumi.ResourceOption) (*PostgresSqlConnectionPool, error) { + var resource PostgresSqlConnectionPool + err := ctx.ReadResource("ovh:CloudProjectDatabase/postgresSqlConnectionPool:PostgresSqlConnectionPool", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering PostgresSqlConnectionPool resources. +type postgresSqlConnectionPoolState struct { + // Cluster ID. + ClusterId *string `pulumi:"clusterId"` + // Database ID for a database that belongs to the Database cluster given above. + DatabaseId *string `pulumi:"databaseId"` + // Connection mode to the connection pool + // Available modes: + Mode *string `pulumi:"mode"` + // Name of the connection pool. + Name *string `pulumi:"name"` + // Port of the connection pool. + Port *int `pulumi:"port"` + // The id of the public cloud project. If omitted, + // the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + ServiceName *string `pulumi:"serviceName"` + // Size of the connection pool. + Size *int `pulumi:"size"` + // Ssl connection mode for the pool. + SslMode *string `pulumi:"sslMode"` + // Connection URI to the pool. + Uri *string `pulumi:"uri"` + // Database user authorized to connect to the pool, if none all the users are allowed. + UserId *string `pulumi:"userId"` +} + +type PostgresSqlConnectionPoolState struct { + // Cluster ID. + ClusterId pulumi.StringPtrInput + // Database ID for a database that belongs to the Database cluster given above. + DatabaseId pulumi.StringPtrInput + // Connection mode to the connection pool + // Available modes: + Mode pulumi.StringPtrInput + // Name of the connection pool. + Name pulumi.StringPtrInput + // Port of the connection pool. + Port pulumi.IntPtrInput + // The id of the public cloud project. If omitted, + // the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + ServiceName pulumi.StringPtrInput + // Size of the connection pool. + Size pulumi.IntPtrInput + // Ssl connection mode for the pool. + SslMode pulumi.StringPtrInput + // Connection URI to the pool. + Uri pulumi.StringPtrInput + // Database user authorized to connect to the pool, if none all the users are allowed. + UserId pulumi.StringPtrInput +} + +func (PostgresSqlConnectionPoolState) ElementType() reflect.Type { + return reflect.TypeOf((*postgresSqlConnectionPoolState)(nil)).Elem() +} + +type postgresSqlConnectionPoolArgs struct { + // Cluster ID. + ClusterId string `pulumi:"clusterId"` + // Database ID for a database that belongs to the Database cluster given above. + DatabaseId string `pulumi:"databaseId"` + // Connection mode to the connection pool + // Available modes: + Mode string `pulumi:"mode"` + // Name of the connection pool. + Name *string `pulumi:"name"` + // The id of the public cloud project. If omitted, + // the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + ServiceName string `pulumi:"serviceName"` + // Size of the connection pool. + Size int `pulumi:"size"` + // Database user authorized to connect to the pool, if none all the users are allowed. + UserId *string `pulumi:"userId"` +} + +// The set of arguments for constructing a PostgresSqlConnectionPool resource. +type PostgresSqlConnectionPoolArgs struct { + // Cluster ID. + ClusterId pulumi.StringInput + // Database ID for a database that belongs to the Database cluster given above. + DatabaseId pulumi.StringInput + // Connection mode to the connection pool + // Available modes: + Mode pulumi.StringInput + // Name of the connection pool. + Name pulumi.StringPtrInput + // The id of the public cloud project. If omitted, + // the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + ServiceName pulumi.StringInput + // Size of the connection pool. + Size pulumi.IntInput + // Database user authorized to connect to the pool, if none all the users are allowed. + UserId pulumi.StringPtrInput +} + +func (PostgresSqlConnectionPoolArgs) ElementType() reflect.Type { + return reflect.TypeOf((*postgresSqlConnectionPoolArgs)(nil)).Elem() +} + +type PostgresSqlConnectionPoolInput interface { + pulumi.Input + + ToPostgresSqlConnectionPoolOutput() PostgresSqlConnectionPoolOutput + ToPostgresSqlConnectionPoolOutputWithContext(ctx context.Context) PostgresSqlConnectionPoolOutput +} + +func (*PostgresSqlConnectionPool) ElementType() reflect.Type { + return reflect.TypeOf((**PostgresSqlConnectionPool)(nil)).Elem() +} + +func (i *PostgresSqlConnectionPool) ToPostgresSqlConnectionPoolOutput() PostgresSqlConnectionPoolOutput { + return i.ToPostgresSqlConnectionPoolOutputWithContext(context.Background()) +} + +func (i *PostgresSqlConnectionPool) ToPostgresSqlConnectionPoolOutputWithContext(ctx context.Context) PostgresSqlConnectionPoolOutput { + return pulumi.ToOutputWithContext(ctx, i).(PostgresSqlConnectionPoolOutput) +} + +// PostgresSqlConnectionPoolArrayInput is an input type that accepts PostgresSqlConnectionPoolArray and PostgresSqlConnectionPoolArrayOutput values. +// You can construct a concrete instance of `PostgresSqlConnectionPoolArrayInput` via: +// +// PostgresSqlConnectionPoolArray{ PostgresSqlConnectionPoolArgs{...} } +type PostgresSqlConnectionPoolArrayInput interface { + pulumi.Input + + ToPostgresSqlConnectionPoolArrayOutput() PostgresSqlConnectionPoolArrayOutput + ToPostgresSqlConnectionPoolArrayOutputWithContext(context.Context) PostgresSqlConnectionPoolArrayOutput +} + +type PostgresSqlConnectionPoolArray []PostgresSqlConnectionPoolInput + +func (PostgresSqlConnectionPoolArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*PostgresSqlConnectionPool)(nil)).Elem() +} + +func (i PostgresSqlConnectionPoolArray) ToPostgresSqlConnectionPoolArrayOutput() PostgresSqlConnectionPoolArrayOutput { + return i.ToPostgresSqlConnectionPoolArrayOutputWithContext(context.Background()) +} + +func (i PostgresSqlConnectionPoolArray) ToPostgresSqlConnectionPoolArrayOutputWithContext(ctx context.Context) PostgresSqlConnectionPoolArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(PostgresSqlConnectionPoolArrayOutput) +} + +// PostgresSqlConnectionPoolMapInput is an input type that accepts PostgresSqlConnectionPoolMap and PostgresSqlConnectionPoolMapOutput values. +// You can construct a concrete instance of `PostgresSqlConnectionPoolMapInput` via: +// +// PostgresSqlConnectionPoolMap{ "key": PostgresSqlConnectionPoolArgs{...} } +type PostgresSqlConnectionPoolMapInput interface { + pulumi.Input + + ToPostgresSqlConnectionPoolMapOutput() PostgresSqlConnectionPoolMapOutput + ToPostgresSqlConnectionPoolMapOutputWithContext(context.Context) PostgresSqlConnectionPoolMapOutput +} + +type PostgresSqlConnectionPoolMap map[string]PostgresSqlConnectionPoolInput + +func (PostgresSqlConnectionPoolMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*PostgresSqlConnectionPool)(nil)).Elem() +} + +func (i PostgresSqlConnectionPoolMap) ToPostgresSqlConnectionPoolMapOutput() PostgresSqlConnectionPoolMapOutput { + return i.ToPostgresSqlConnectionPoolMapOutputWithContext(context.Background()) +} + +func (i PostgresSqlConnectionPoolMap) ToPostgresSqlConnectionPoolMapOutputWithContext(ctx context.Context) PostgresSqlConnectionPoolMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(PostgresSqlConnectionPoolMapOutput) +} + +type PostgresSqlConnectionPoolOutput struct{ *pulumi.OutputState } + +func (PostgresSqlConnectionPoolOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PostgresSqlConnectionPool)(nil)).Elem() +} + +func (o PostgresSqlConnectionPoolOutput) ToPostgresSqlConnectionPoolOutput() PostgresSqlConnectionPoolOutput { + return o +} + +func (o PostgresSqlConnectionPoolOutput) ToPostgresSqlConnectionPoolOutputWithContext(ctx context.Context) PostgresSqlConnectionPoolOutput { + return o +} + +// Cluster ID. +func (o PostgresSqlConnectionPoolOutput) ClusterId() pulumi.StringOutput { + return o.ApplyT(func(v *PostgresSqlConnectionPool) pulumi.StringOutput { return v.ClusterId }).(pulumi.StringOutput) +} + +// Database ID for a database that belongs to the Database cluster given above. +func (o PostgresSqlConnectionPoolOutput) DatabaseId() pulumi.StringOutput { + return o.ApplyT(func(v *PostgresSqlConnectionPool) pulumi.StringOutput { return v.DatabaseId }).(pulumi.StringOutput) +} + +// Connection mode to the connection pool +// Available modes: +func (o PostgresSqlConnectionPoolOutput) Mode() pulumi.StringOutput { + return o.ApplyT(func(v *PostgresSqlConnectionPool) pulumi.StringOutput { return v.Mode }).(pulumi.StringOutput) +} + +// Name of the connection pool. +func (o PostgresSqlConnectionPoolOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *PostgresSqlConnectionPool) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Port of the connection pool. +func (o PostgresSqlConnectionPoolOutput) Port() pulumi.IntOutput { + return o.ApplyT(func(v *PostgresSqlConnectionPool) pulumi.IntOutput { return v.Port }).(pulumi.IntOutput) +} + +// The id of the public cloud project. If omitted, +// the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. +func (o PostgresSqlConnectionPoolOutput) ServiceName() pulumi.StringOutput { + return o.ApplyT(func(v *PostgresSqlConnectionPool) pulumi.StringOutput { return v.ServiceName }).(pulumi.StringOutput) +} + +// Size of the connection pool. +func (o PostgresSqlConnectionPoolOutput) Size() pulumi.IntOutput { + return o.ApplyT(func(v *PostgresSqlConnectionPool) pulumi.IntOutput { return v.Size }).(pulumi.IntOutput) +} + +// Ssl connection mode for the pool. +func (o PostgresSqlConnectionPoolOutput) SslMode() pulumi.StringOutput { + return o.ApplyT(func(v *PostgresSqlConnectionPool) pulumi.StringOutput { return v.SslMode }).(pulumi.StringOutput) +} + +// Connection URI to the pool. +func (o PostgresSqlConnectionPoolOutput) Uri() pulumi.StringOutput { + return o.ApplyT(func(v *PostgresSqlConnectionPool) pulumi.StringOutput { return v.Uri }).(pulumi.StringOutput) +} + +// Database user authorized to connect to the pool, if none all the users are allowed. +func (o PostgresSqlConnectionPoolOutput) UserId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PostgresSqlConnectionPool) pulumi.StringPtrOutput { return v.UserId }).(pulumi.StringPtrOutput) +} + +type PostgresSqlConnectionPoolArrayOutput struct{ *pulumi.OutputState } + +func (PostgresSqlConnectionPoolArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*PostgresSqlConnectionPool)(nil)).Elem() +} + +func (o PostgresSqlConnectionPoolArrayOutput) ToPostgresSqlConnectionPoolArrayOutput() PostgresSqlConnectionPoolArrayOutput { + return o +} + +func (o PostgresSqlConnectionPoolArrayOutput) ToPostgresSqlConnectionPoolArrayOutputWithContext(ctx context.Context) PostgresSqlConnectionPoolArrayOutput { + return o +} + +func (o PostgresSqlConnectionPoolArrayOutput) Index(i pulumi.IntInput) PostgresSqlConnectionPoolOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *PostgresSqlConnectionPool { + return vs[0].([]*PostgresSqlConnectionPool)[vs[1].(int)] + }).(PostgresSqlConnectionPoolOutput) +} + +type PostgresSqlConnectionPoolMapOutput struct{ *pulumi.OutputState } + +func (PostgresSqlConnectionPoolMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*PostgresSqlConnectionPool)(nil)).Elem() +} + +func (o PostgresSqlConnectionPoolMapOutput) ToPostgresSqlConnectionPoolMapOutput() PostgresSqlConnectionPoolMapOutput { + return o +} + +func (o PostgresSqlConnectionPoolMapOutput) ToPostgresSqlConnectionPoolMapOutputWithContext(ctx context.Context) PostgresSqlConnectionPoolMapOutput { + return o +} + +func (o PostgresSqlConnectionPoolMapOutput) MapIndex(k pulumi.StringInput) PostgresSqlConnectionPoolOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *PostgresSqlConnectionPool { + return vs[0].(map[string]*PostgresSqlConnectionPool)[vs[1].(string)] + }).(PostgresSqlConnectionPoolOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*PostgresSqlConnectionPoolInput)(nil)).Elem(), &PostgresSqlConnectionPool{}) + pulumi.RegisterInputType(reflect.TypeOf((*PostgresSqlConnectionPoolArrayInput)(nil)).Elem(), PostgresSqlConnectionPoolArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*PostgresSqlConnectionPoolMapInput)(nil)).Elem(), PostgresSqlConnectionPoolMap{}) + pulumi.RegisterOutputType(PostgresSqlConnectionPoolOutput{}) + pulumi.RegisterOutputType(PostgresSqlConnectionPoolArrayOutput{}) + pulumi.RegisterOutputType(PostgresSqlConnectionPoolMapOutput{}) +} diff --git a/sdk/go/ovh/cloudprojectdatabase/postgresSqlUser.go b/sdk/go/ovh/cloudprojectdatabase/postgresSqlUser.go index 3fff3b1b..a64bad5b 100644 --- a/sdk/go/ovh/cloudprojectdatabase/postgresSqlUser.go +++ b/sdk/go/ovh/cloudprojectdatabase/postgresSqlUser.go @@ -14,12 +14,12 @@ import ( // ## Import // -// OVHcloud Managed PostgreSQL clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., bash +// OVHcloud Managed PostgreSQL clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:CloudProjectDatabase/postgresSqlUser:PostgresSqlUser my_user service_name/cluster_id/id +// bash // +// ```sh +// $ pulumi import ovh:CloudProjectDatabase/postgresSqlUser:PostgresSqlUser my_user service_name/cluster_id/id // ``` type PostgresSqlUser struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/cloudprojectdatabase/redisUser.go b/sdk/go/ovh/cloudprojectdatabase/redisUser.go index 2825249f..29951aaa 100644 --- a/sdk/go/ovh/cloudprojectdatabase/redisUser.go +++ b/sdk/go/ovh/cloudprojectdatabase/redisUser.go @@ -14,12 +14,12 @@ import ( // ## Import // -// OVHcloud Managed Redis clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., bash +// OVHcloud Managed Redis clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:CloudProjectDatabase/redisUser:RedisUser my_user service_name/cluster_id/id +// bash // +// ```sh +// $ pulumi import ovh:CloudProjectDatabase/redisUser:RedisUser my_user service_name/cluster_id/id // ``` type RedisUser struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/cloudprojectdatabase/user.go b/sdk/go/ovh/cloudprojectdatabase/user.go index bd16f480..3369b4b3 100644 --- a/sdk/go/ovh/cloudprojectdatabase/user.go +++ b/sdk/go/ovh/cloudprojectdatabase/user.go @@ -14,12 +14,12 @@ import ( // ## Import // -// OVHcloud Managed database clusters users can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the user, separated by "/" E.g., bash +// OVHcloud Managed database clusters users can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the user, separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:CloudProjectDatabase/user:User my_user service_name/engine/cluster_id/id +// bash // +// ```sh +// $ pulumi import ovh:CloudProjectDatabase/user:User my_user service_name/engine/cluster_id/id // ``` type User struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/dbaas/getLogsCluster.go b/sdk/go/ovh/dbaas/getLogsCluster.go index 3ca805ed..c805b4f4 100644 --- a/sdk/go/ovh/dbaas/getLogsCluster.go +++ b/sdk/go/ovh/dbaas/getLogsCluster.go @@ -59,8 +59,6 @@ type LookupLogsClusterArgs struct { // A collection of values returned by getLogsCluster. type LookupLogsClusterResult struct { - // is the URN of the DBaas logs instance - DBaasURN string `pulumi:"DBaasURN"` // is allowed networks for ARCHIVE flow type ArchiveAllowedNetworks []string `pulumi:"archiveAllowedNetworks"` ClusterId *string `pulumi:"clusterId"` @@ -85,6 +83,8 @@ type LookupLogsClusterResult struct { // is datacenter localization Region string `pulumi:"region"` ServiceName string `pulumi:"serviceName"` + // is the URN of the DBaas logs instance + Urn string `pulumi:"urn"` } func LookupLogsClusterOutput(ctx *pulumi.Context, args LookupLogsClusterOutputArgs, opts ...pulumi.InvokeOption) LookupLogsClusterResultOutput { @@ -127,11 +127,6 @@ func (o LookupLogsClusterResultOutput) ToLookupLogsClusterResultOutputWithContex return o } -// is the URN of the DBaas logs instance -func (o LookupLogsClusterResultOutput) DBaasURN() pulumi.StringOutput { - return o.ApplyT(func(v LookupLogsClusterResult) string { return v.DBaasURN }).(pulumi.StringOutput) -} - // is allowed networks for ARCHIVE flow type func (o LookupLogsClusterResultOutput) ArchiveAllowedNetworks() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupLogsClusterResult) []string { return v.ArchiveAllowedNetworks }).(pulumi.StringArrayOutput) @@ -195,6 +190,11 @@ func (o LookupLogsClusterResultOutput) ServiceName() pulumi.StringOutput { return o.ApplyT(func(v LookupLogsClusterResult) string { return v.ServiceName }).(pulumi.StringOutput) } +// is the URN of the DBaas logs instance +func (o LookupLogsClusterResultOutput) Urn() pulumi.StringOutput { + return o.ApplyT(func(v LookupLogsClusterResult) string { return v.Urn }).(pulumi.StringOutput) +} + func init() { pulumi.RegisterOutputType(LookupLogsClusterResultOutput{}) } diff --git a/sdk/go/ovh/dbaas/logsCluster.go b/sdk/go/ovh/dbaas/logsCluster.go index 98dde5d3..07b8544e 100644 --- a/sdk/go/ovh/dbaas/logsCluster.go +++ b/sdk/go/ovh/dbaas/logsCluster.go @@ -50,12 +50,12 @@ import ( // // ## Import // -// OVHcloud DBaaS Log Data Platform clusters can be imported using the `service_name` and `cluster_id` of the cluster, separated by "/" E.g., bash +// OVHcloud DBaaS Log Data Platform clusters can be imported using the `service_name` and `cluster_id` of the cluster, separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:Dbaas/logsCluster:LogsCluster ldp service_name/cluster_id +// bash // +// ```sh +// $ pulumi import ovh:Dbaas/logsCluster:LogsCluster ldp service_name/cluster_id // ``` type LogsCluster struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/dedicated/nasHAPartition.go b/sdk/go/ovh/dedicated/nasHAPartition.go index 8fa3682c..d3b45876 100644 --- a/sdk/go/ovh/dedicated/nasHAPartition.go +++ b/sdk/go/ovh/dedicated/nasHAPartition.go @@ -47,9 +47,7 @@ import ( // HA-NAS can be imported using the `{service_name}/{name}`, e.g. // // ```sh -// -// $ pulumi import ovh:Dedicated/nasHAPartition:NasHAPartition my-partition zpool-12345/my-partition` -// +// $ pulumi import ovh:Dedicated/nasHAPartition:NasHAPartition my-partition zpool-12345/my-partition` // ``` type NasHAPartition struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/dedicated/nasHAPartitionAccess.go b/sdk/go/ovh/dedicated/nasHAPartitionAccess.go index ef2fa9cd..344e154c 100644 --- a/sdk/go/ovh/dedicated/nasHAPartitionAccess.go +++ b/sdk/go/ovh/dedicated/nasHAPartitionAccess.go @@ -48,9 +48,7 @@ import ( // HA-NAS partition access can be imported using the `{service_name}/{partition_name}/{ip}`, e.g. // // ```sh -// -// $ pulumi import ovh:Dedicated/nasHAPartitionAccess:NasHAPartitionAccess my-partition zpool-12345/my-partition/123.123.123.123%2F32` -// +// $ pulumi import ovh:Dedicated/nasHAPartitionAccess:NasHAPartitionAccess my-partition zpool-12345/my-partition/123.123.123.123%2F32` // ``` type NasHAPartitionAccess struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/dedicated/nasHAPartitionSnapshot.go b/sdk/go/ovh/dedicated/nasHAPartitionSnapshot.go index 9f3b3ce6..948dbf57 100644 --- a/sdk/go/ovh/dedicated/nasHAPartitionSnapshot.go +++ b/sdk/go/ovh/dedicated/nasHAPartitionSnapshot.go @@ -47,9 +47,7 @@ import ( // HA-NAS partition snapshot can be imported using the `{service_name}/{partition_name}/{type}`, e.g. // // ```sh -// -// $ pulumi import ovh:Dedicated/nasHAPartitionSnapshot:NasHAPartitionSnapshot my-partition zpool-12345/my-partition/day-3` -// +// $ pulumi import ovh:Dedicated/nasHAPartitionSnapshot:NasHAPartitionSnapshot my-partition zpool-12345/my-partition/day-3` // ``` type NasHAPartitionSnapshot struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/dedicated/pulumiTypes.go b/sdk/go/ovh/dedicated/pulumiTypes.go index 29a204cb..7e9cc78e 100644 --- a/sdk/go/ovh/dedicated/pulumiTypes.go +++ b/sdk/go/ovh/dedicated/pulumiTypes.go @@ -406,8 +406,10 @@ func (o ServerInstallTaskDetailsPtrOutput) UseSpla() pulumi.BoolPtrOutput { } type ServerNetworkingInterface struct { + // Interface Mac address Macs []string `pulumi:"macs"` - Type string `pulumi:"type"` + // Interface type + Type string `pulumi:"type"` } // ServerNetworkingInterfaceInput is an input type that accepts ServerNetworkingInterfaceArgs and ServerNetworkingInterfaceOutput values. @@ -422,8 +424,10 @@ type ServerNetworkingInterfaceInput interface { } type ServerNetworkingInterfaceArgs struct { + // Interface Mac address Macs pulumi.StringArrayInput `pulumi:"macs"` - Type pulumi.StringInput `pulumi:"type"` + // Interface type + Type pulumi.StringInput `pulumi:"type"` } func (ServerNetworkingInterfaceArgs) ElementType() reflect.Type { @@ -477,10 +481,12 @@ func (o ServerNetworkingInterfaceOutput) ToServerNetworkingInterfaceOutputWithCo return o } +// Interface Mac address func (o ServerNetworkingInterfaceOutput) Macs() pulumi.StringArrayOutput { return o.ApplyT(func(v ServerNetworkingInterface) []string { return v.Macs }).(pulumi.StringArrayOutput) } +// Interface type func (o ServerNetworkingInterfaceOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v ServerNetworkingInterface) string { return v.Type }).(pulumi.StringOutput) } diff --git a/sdk/go/ovh/dedicated/serverInstallTask.go b/sdk/go/ovh/dedicated/serverInstallTask.go index 07fccf10..4fa30051 100644 --- a/sdk/go/ovh/dedicated/serverInstallTask.go +++ b/sdk/go/ovh/dedicated/serverInstallTask.go @@ -73,12 +73,12 @@ import ( // // Installation task can be imported using the `service_name` (`nsXXXX.ip...`) of the baremetal server, the `template_name` used // -// and ths `task_id`, separated by "/" E.g., bash +// and ths `task_id`, separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:Dedicated/serverInstallTask:ServerInstallTask ovh_dedicated_server_install_task nsXXXX.ipXXXX/template_name/12345 +// bash // +// ```sh +// $ pulumi import ovh:Dedicated/serverInstallTask:ServerInstallTask ovh_dedicated_server_install_task nsXXXX.ipXXXX/template_name/12345 // ``` type ServerInstallTask struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/dedicated/serverUpdate.go b/sdk/go/ovh/dedicated/serverUpdate.go index 2cf29256..647532b0 100644 --- a/sdk/go/ovh/dedicated/serverUpdate.go +++ b/sdk/go/ovh/dedicated/serverUpdate.go @@ -53,6 +53,8 @@ type ServerUpdate struct { // boot id of the server BootId pulumi.IntOutput `pulumi:"bootId"` + // boot script of the server + BootScript pulumi.StringPtrOutput `pulumi:"bootScript"` // Icmp monitoring state Monitoring pulumi.BoolOutput `pulumi:"monitoring"` // The serviceName of your dedicated server. @@ -96,6 +98,8 @@ func GetServerUpdate(ctx *pulumi.Context, type serverUpdateState struct { // boot id of the server BootId *int `pulumi:"bootId"` + // boot script of the server + BootScript *string `pulumi:"bootScript"` // Icmp monitoring state Monitoring *bool `pulumi:"monitoring"` // The serviceName of your dedicated server. @@ -107,6 +111,8 @@ type serverUpdateState struct { type ServerUpdateState struct { // boot id of the server BootId pulumi.IntPtrInput + // boot script of the server + BootScript pulumi.StringPtrInput // Icmp monitoring state Monitoring pulumi.BoolPtrInput // The serviceName of your dedicated server. @@ -122,6 +128,8 @@ func (ServerUpdateState) ElementType() reflect.Type { type serverUpdateArgs struct { // boot id of the server BootId *int `pulumi:"bootId"` + // boot script of the server + BootScript *string `pulumi:"bootScript"` // Icmp monitoring state Monitoring *bool `pulumi:"monitoring"` // The serviceName of your dedicated server. @@ -134,6 +142,8 @@ type serverUpdateArgs struct { type ServerUpdateArgs struct { // boot id of the server BootId pulumi.IntPtrInput + // boot script of the server + BootScript pulumi.StringPtrInput // Icmp monitoring state Monitoring pulumi.BoolPtrInput // The serviceName of your dedicated server. @@ -234,6 +244,11 @@ func (o ServerUpdateOutput) BootId() pulumi.IntOutput { return o.ApplyT(func(v *ServerUpdate) pulumi.IntOutput { return v.BootId }).(pulumi.IntOutput) } +// boot script of the server +func (o ServerUpdateOutput) BootScript() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServerUpdate) pulumi.StringPtrOutput { return v.BootScript }).(pulumi.StringPtrOutput) +} + // Icmp monitoring state func (o ServerUpdateOutput) Monitoring() pulumi.BoolOutput { return o.ApplyT(func(v *ServerUpdate) pulumi.BoolOutput { return v.Monitoring }).(pulumi.BoolOutput) diff --git a/sdk/go/ovh/domain/zone.go b/sdk/go/ovh/domain/zone.go index af282922..8f4826ab 100644 --- a/sdk/go/ovh/domain/zone.go +++ b/sdk/go/ovh/domain/zone.go @@ -78,12 +78,10 @@ import ( // // Zone can be imported using the `order_id` that can be retrieved in the [order page](https://www.ovh.com/manager/#/dedicated/billing/orders/orders) at the creation time of the zone. // -// bash +// bash // // ```sh -// -// $ pulumi import ovh:Domain/zone:Zone zone order_id -// +// $ pulumi import ovh:Domain/zone:Zone zone order_id // ``` type Zone struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/domain/zoneRecord.go b/sdk/go/ovh/domain/zoneRecord.go index fb5bfc55..38762b5e 100644 --- a/sdk/go/ovh/domain/zoneRecord.go +++ b/sdk/go/ovh/domain/zoneRecord.go @@ -44,12 +44,12 @@ import ( // // ## Import // -// OVHcloud 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., bash +// OVHcloud 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., // -// ```sh -// -// $ pulumi import ovh:Domain/zoneRecord:ZoneRecord test id.zone +// bash // +// ```sh +// $ pulumi import ovh:Domain/zoneRecord:ZoneRecord test id.zone // ``` type ZoneRecord struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/getServer.go b/sdk/go/ovh/getServer.go index 1e00122e..a44ec2df 100644 --- a/sdk/go/ovh/getServer.go +++ b/sdk/go/ovh/getServer.go @@ -60,6 +60,8 @@ type GetServerResult struct { ServerURN string `pulumi:"ServerURN"` // boot id of the server BootId int `pulumi:"bootId"` + // boot script of the server + BootScript string `pulumi:"bootScript"` // dedicated server commercial range CommercialRange string `pulumi:"commercialRange"` // dedicated datacenter localisation (bhs1,bhs2,...) @@ -153,6 +155,11 @@ func (o GetServerResultOutput) BootId() pulumi.IntOutput { return o.ApplyT(func(v GetServerResult) int { return v.BootId }).(pulumi.IntOutput) } +// boot script of the server +func (o GetServerResultOutput) BootScript() pulumi.StringOutput { + return o.ApplyT(func(v GetServerResult) string { return v.BootScript }).(pulumi.StringOutput) +} + // dedicated server commercial range func (o GetServerResultOutput) CommercialRange() pulumi.StringOutput { return o.ApplyT(func(v GetServerResult) string { return v.CommercialRange }).(pulumi.StringOutput) diff --git a/sdk/go/ovh/iam/getPermissionsGroup.go b/sdk/go/ovh/iam/getPermissionsGroup.go new file mode 100644 index 00000000..a9cb4ae8 --- /dev/null +++ b/sdk/go/ovh/iam/getPermissionsGroup.go @@ -0,0 +1,132 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "github.com/ovh/pulumi-ovh/sdk/go/ovh/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +func LookupPermissionsGroup(ctx *pulumi.Context, args *LookupPermissionsGroupArgs, opts ...pulumi.InvokeOption) (*LookupPermissionsGroupResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupPermissionsGroupResult + err := ctx.Invoke("ovh:Iam/getPermissionsGroup:getPermissionsGroup", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getPermissionsGroup. +type LookupPermissionsGroupArgs struct { + Allows []string `pulumi:"allows"` + Denies []string `pulumi:"denies"` + Description *string `pulumi:"description"` + Excepts []string `pulumi:"excepts"` + UpdatedAt *string `pulumi:"updatedAt"` + Urn string `pulumi:"urn"` +} + +// A collection of values returned by getPermissionsGroup. +type LookupPermissionsGroupResult struct { + Allows []string `pulumi:"allows"` + CreatedAt string `pulumi:"createdAt"` + Denies []string `pulumi:"denies"` + Description *string `pulumi:"description"` + Excepts []string `pulumi:"excepts"` + Id string `pulumi:"id"` + Name string `pulumi:"name"` + Owner string `pulumi:"owner"` + UpdatedAt string `pulumi:"updatedAt"` + Urn string `pulumi:"urn"` +} + +func LookupPermissionsGroupOutput(ctx *pulumi.Context, args LookupPermissionsGroupOutputArgs, opts ...pulumi.InvokeOption) LookupPermissionsGroupResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupPermissionsGroupResult, error) { + args := v.(LookupPermissionsGroupArgs) + r, err := LookupPermissionsGroup(ctx, &args, opts...) + var s LookupPermissionsGroupResult + if r != nil { + s = *r + } + return s, err + }).(LookupPermissionsGroupResultOutput) +} + +// A collection of arguments for invoking getPermissionsGroup. +type LookupPermissionsGroupOutputArgs struct { + Allows pulumi.StringArrayInput `pulumi:"allows"` + Denies pulumi.StringArrayInput `pulumi:"denies"` + Description pulumi.StringPtrInput `pulumi:"description"` + Excepts pulumi.StringArrayInput `pulumi:"excepts"` + UpdatedAt pulumi.StringPtrInput `pulumi:"updatedAt"` + Urn pulumi.StringInput `pulumi:"urn"` +} + +func (LookupPermissionsGroupOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupPermissionsGroupArgs)(nil)).Elem() +} + +// A collection of values returned by getPermissionsGroup. +type LookupPermissionsGroupResultOutput struct{ *pulumi.OutputState } + +func (LookupPermissionsGroupResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupPermissionsGroupResult)(nil)).Elem() +} + +func (o LookupPermissionsGroupResultOutput) ToLookupPermissionsGroupResultOutput() LookupPermissionsGroupResultOutput { + return o +} + +func (o LookupPermissionsGroupResultOutput) ToLookupPermissionsGroupResultOutputWithContext(ctx context.Context) LookupPermissionsGroupResultOutput { + return o +} + +func (o LookupPermissionsGroupResultOutput) Allows() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupPermissionsGroupResult) []string { return v.Allows }).(pulumi.StringArrayOutput) +} + +func (o LookupPermissionsGroupResultOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v LookupPermissionsGroupResult) string { return v.CreatedAt }).(pulumi.StringOutput) +} + +func (o LookupPermissionsGroupResultOutput) Denies() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupPermissionsGroupResult) []string { return v.Denies }).(pulumi.StringArrayOutput) +} + +func (o LookupPermissionsGroupResultOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupPermissionsGroupResult) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +func (o LookupPermissionsGroupResultOutput) Excepts() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupPermissionsGroupResult) []string { return v.Excepts }).(pulumi.StringArrayOutput) +} + +func (o LookupPermissionsGroupResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupPermissionsGroupResult) string { return v.Id }).(pulumi.StringOutput) +} + +func (o LookupPermissionsGroupResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupPermissionsGroupResult) string { return v.Name }).(pulumi.StringOutput) +} + +func (o LookupPermissionsGroupResultOutput) Owner() pulumi.StringOutput { + return o.ApplyT(func(v LookupPermissionsGroupResult) string { return v.Owner }).(pulumi.StringOutput) +} + +func (o LookupPermissionsGroupResultOutput) UpdatedAt() pulumi.StringOutput { + return o.ApplyT(func(v LookupPermissionsGroupResult) string { return v.UpdatedAt }).(pulumi.StringOutput) +} + +func (o LookupPermissionsGroupResultOutput) Urn() pulumi.StringOutput { + return o.ApplyT(func(v LookupPermissionsGroupResult) string { return v.Urn }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupPermissionsGroupResultOutput{}) +} diff --git a/sdk/go/ovh/iam/getPermissionsGroups.go b/sdk/go/ovh/iam/getPermissionsGroups.go new file mode 100644 index 00000000..f8ca3442 --- /dev/null +++ b/sdk/go/ovh/iam/getPermissionsGroups.go @@ -0,0 +1,95 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "github.com/ovh/pulumi-ovh/sdk/go/ovh/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Use this data source to retrieve an IAM permissions group. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/ovh/pulumi-ovh/sdk/go/ovh/Iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := Iam.GetPermissionsGroup(ctx, &iam.GetPermissionsGroupArgs{ +// Urn: "urn:v1:eu:permissionsGroup:ovh:controlPanelAccess", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func GetPermissionsGroups(ctx *pulumi.Context, opts ...pulumi.InvokeOption) (*GetPermissionsGroupsResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetPermissionsGroupsResult + err := ctx.Invoke("ovh:Iam/getPermissionsGroups:getPermissionsGroups", nil, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of values returned by getPermissionsGroups. +type GetPermissionsGroupsResult struct { + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + Urns []string `pulumi:"urns"` +} + +func GetPermissionsGroupsOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) GetPermissionsGroupsResultOutput { + return pulumi.ToOutput(0).ApplyT(func(int) (GetPermissionsGroupsResult, error) { + r, err := GetPermissionsGroups(ctx, opts...) + var s GetPermissionsGroupsResult + if r != nil { + s = *r + } + return s, err + }).(GetPermissionsGroupsResultOutput) +} + +// A collection of values returned by getPermissionsGroups. +type GetPermissionsGroupsResultOutput struct{ *pulumi.OutputState } + +func (GetPermissionsGroupsResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetPermissionsGroupsResult)(nil)).Elem() +} + +func (o GetPermissionsGroupsResultOutput) ToGetPermissionsGroupsResultOutput() GetPermissionsGroupsResultOutput { + return o +} + +func (o GetPermissionsGroupsResultOutput) ToGetPermissionsGroupsResultOutputWithContext(ctx context.Context) GetPermissionsGroupsResultOutput { + return o +} + +// The provider-assigned unique ID for this managed resource. +func (o GetPermissionsGroupsResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetPermissionsGroupsResult) string { return v.Id }).(pulumi.StringOutput) +} + +func (o GetPermissionsGroupsResultOutput) Urns() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetPermissionsGroupsResult) []string { return v.Urns }).(pulumi.StringArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(GetPermissionsGroupsResultOutput{}) +} diff --git a/sdk/go/ovh/iam/getPolicy.go b/sdk/go/ovh/iam/getPolicy.go index 9b90e2b0..a1b929b1 100644 --- a/sdk/go/ovh/iam/getPolicy.go +++ b/sdk/go/ovh/iam/getPolicy.go @@ -50,40 +50,44 @@ func LookupPolicy(ctx *pulumi.Context, args *LookupPolicyArgs, opts ...pulumi.In // A collection of arguments for invoking getPolicy. type LookupPolicyArgs struct { - // List of actions allowed by the policy. + // Set of actions allowed by the policy. Allows []string `pulumi:"allows"` - // List of actions that will be denied no matter what policy exists. + // Set of actions that will be denied no matter what policy exists. Denies []string `pulumi:"denies"` // Group description. Description *string `pulumi:"description"` - // List of actions that will be subtracted from the `allow` list. + // Set of actions that will be subtracted from the `allow` list. Excepts []string `pulumi:"excepts"` // UUID of the policy. Id string `pulumi:"id"` + // Set of permissions groups that apply to the policy. + PermissionsGroups []string `pulumi:"permissionsGroups"` } // A collection of values returned by getPolicy. type LookupPolicyResult struct { - // List of actions allowed by the policy. + // Set of actions allowed by the policy. Allows []string `pulumi:"allows"` // Creation date of this group. CreatedAt string `pulumi:"createdAt"` - // List of actions that will be denied no matter what policy exists. + // Set of actions that will be denied no matter what policy exists. Denies []string `pulumi:"denies"` // Group description. Description *string `pulumi:"description"` - // List of actions that will be subtracted from the `allow` list. + // Set of actions that will be subtracted from the `allow` list. Excepts []string `pulumi:"excepts"` Id string `pulumi:"id"` - // List of identities affected by the policy. + // Set of identities affected by the policy. Identities []string `pulumi:"identities"` // Name of the policy. Name string `pulumi:"name"` // Owner of the policy. Owner string `pulumi:"owner"` + // Set of permissions groups that apply to the policy. + PermissionsGroups []string `pulumi:"permissionsGroups"` // Indicates that the policy is a default one. ReadOnly bool `pulumi:"readOnly"` - // List of resources affected by the policy. + // Set of resources affected by the policy. Resources []string `pulumi:"resources"` // Date of the last update of this group. UpdatedAt string `pulumi:"updatedAt"` @@ -104,16 +108,18 @@ func LookupPolicyOutput(ctx *pulumi.Context, args LookupPolicyOutputArgs, opts . // A collection of arguments for invoking getPolicy. type LookupPolicyOutputArgs struct { - // List of actions allowed by the policy. + // Set of actions allowed by the policy. Allows pulumi.StringArrayInput `pulumi:"allows"` - // List of actions that will be denied no matter what policy exists. + // Set of actions that will be denied no matter what policy exists. Denies pulumi.StringArrayInput `pulumi:"denies"` // Group description. Description pulumi.StringPtrInput `pulumi:"description"` - // List of actions that will be subtracted from the `allow` list. + // Set of actions that will be subtracted from the `allow` list. Excepts pulumi.StringArrayInput `pulumi:"excepts"` // UUID of the policy. Id pulumi.StringInput `pulumi:"id"` + // Set of permissions groups that apply to the policy. + PermissionsGroups pulumi.StringArrayInput `pulumi:"permissionsGroups"` } func (LookupPolicyOutputArgs) ElementType() reflect.Type { @@ -135,7 +141,7 @@ func (o LookupPolicyResultOutput) ToLookupPolicyResultOutputWithContext(ctx cont return o } -// List of actions allowed by the policy. +// Set of actions allowed by the policy. func (o LookupPolicyResultOutput) Allows() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupPolicyResult) []string { return v.Allows }).(pulumi.StringArrayOutput) } @@ -145,7 +151,7 @@ func (o LookupPolicyResultOutput) CreatedAt() pulumi.StringOutput { return o.ApplyT(func(v LookupPolicyResult) string { return v.CreatedAt }).(pulumi.StringOutput) } -// List of actions that will be denied no matter what policy exists. +// Set of actions that will be denied no matter what policy exists. func (o LookupPolicyResultOutput) Denies() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupPolicyResult) []string { return v.Denies }).(pulumi.StringArrayOutput) } @@ -155,7 +161,7 @@ func (o LookupPolicyResultOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupPolicyResult) *string { return v.Description }).(pulumi.StringPtrOutput) } -// List of actions that will be subtracted from the `allow` list. +// Set of actions that will be subtracted from the `allow` list. func (o LookupPolicyResultOutput) Excepts() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupPolicyResult) []string { return v.Excepts }).(pulumi.StringArrayOutput) } @@ -164,7 +170,7 @@ func (o LookupPolicyResultOutput) Id() pulumi.StringOutput { return o.ApplyT(func(v LookupPolicyResult) string { return v.Id }).(pulumi.StringOutput) } -// List of identities affected by the policy. +// Set of identities affected by the policy. func (o LookupPolicyResultOutput) Identities() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupPolicyResult) []string { return v.Identities }).(pulumi.StringArrayOutput) } @@ -179,12 +185,17 @@ func (o LookupPolicyResultOutput) Owner() pulumi.StringOutput { return o.ApplyT(func(v LookupPolicyResult) string { return v.Owner }).(pulumi.StringOutput) } +// Set of permissions groups that apply to the policy. +func (o LookupPolicyResultOutput) PermissionsGroups() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupPolicyResult) []string { return v.PermissionsGroups }).(pulumi.StringArrayOutput) +} + // Indicates that the policy is a default one. func (o LookupPolicyResultOutput) ReadOnly() pulumi.BoolOutput { return o.ApplyT(func(v LookupPolicyResult) bool { return v.ReadOnly }).(pulumi.BoolOutput) } -// List of resources affected by the policy. +// Set of resources affected by the policy. func (o LookupPolicyResultOutput) Resources() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupPolicyResult) []string { return v.Resources }).(pulumi.StringArrayOutput) } diff --git a/sdk/go/ovh/iam/init.go b/sdk/go/ovh/iam/init.go index ef9574a7..f3750d0f 100644 --- a/sdk/go/ovh/iam/init.go +++ b/sdk/go/ovh/iam/init.go @@ -21,6 +21,8 @@ func (m *module) Version() semver.Version { func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { switch typ { + case "ovh:Iam/permissionsGroup:PermissionsGroup": + r = &PermissionsGroup{} case "ovh:Iam/policy:Policy": r = &Policy{} case "ovh:Iam/resourceGroup:ResourceGroup": @@ -38,6 +40,11 @@ func init() { if err != nil { version = semver.Version{Major: 1} } + pulumi.RegisterResourceModule( + "ovh", + "Iam/permissionsGroup", + &module{version}, + ) pulumi.RegisterResourceModule( "ovh", "Iam/policy", diff --git a/sdk/go/ovh/iam/permissionsGroup.go b/sdk/go/ovh/iam/permissionsGroup.go new file mode 100644 index 00000000..21379c05 --- /dev/null +++ b/sdk/go/ovh/iam/permissionsGroup.go @@ -0,0 +1,327 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "errors" + "github.com/ovh/pulumi-ovh/sdk/go/ovh/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Create am IAM permissions group. +type PermissionsGroup struct { + pulumi.CustomResourceState + + // Set of actions allowed by the permissions group. + Allows pulumi.StringArrayOutput `pulumi:"allows"` + // Creation date of this group. + CreatedAt pulumi.StringOutput `pulumi:"createdAt"` + // Set of actions that will be denied no matter what permissions group exists. + Denies pulumi.StringArrayOutput `pulumi:"denies"` + // Group description. + Description pulumi.StringOutput `pulumi:"description"` + // Set of actions that will be subtracted from the `allow` list. + Excepts pulumi.StringArrayOutput `pulumi:"excepts"` + // Name of the permissions group. + Name pulumi.StringOutput `pulumi:"name"` + // Owner of the permissions group. + Owner pulumi.StringOutput `pulumi:"owner"` + // Date of the last update of this group. + UpdatedAt pulumi.StringOutput `pulumi:"updatedAt"` + // URN of the permissions group. + Urn pulumi.StringOutput `pulumi:"urn"` +} + +// NewPermissionsGroup registers a new resource with the given unique name, arguments, and options. +func NewPermissionsGroup(ctx *pulumi.Context, + name string, args *PermissionsGroupArgs, opts ...pulumi.ResourceOption) (*PermissionsGroup, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Description == nil { + return nil, errors.New("invalid value for required argument 'Description'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource PermissionsGroup + err := ctx.RegisterResource("ovh:Iam/permissionsGroup:PermissionsGroup", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetPermissionsGroup gets an existing PermissionsGroup resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetPermissionsGroup(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *PermissionsGroupState, opts ...pulumi.ResourceOption) (*PermissionsGroup, error) { + var resource PermissionsGroup + err := ctx.ReadResource("ovh:Iam/permissionsGroup:PermissionsGroup", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering PermissionsGroup resources. +type permissionsGroupState struct { + // Set of actions allowed by the permissions group. + Allows []string `pulumi:"allows"` + // Creation date of this group. + CreatedAt *string `pulumi:"createdAt"` + // Set of actions that will be denied no matter what permissions group exists. + Denies []string `pulumi:"denies"` + // Group description. + Description *string `pulumi:"description"` + // Set of actions that will be subtracted from the `allow` list. + Excepts []string `pulumi:"excepts"` + // Name of the permissions group. + Name *string `pulumi:"name"` + // Owner of the permissions group. + Owner *string `pulumi:"owner"` + // Date of the last update of this group. + UpdatedAt *string `pulumi:"updatedAt"` + // URN of the permissions group. + Urn *string `pulumi:"urn"` +} + +type PermissionsGroupState struct { + // Set of actions allowed by the permissions group. + Allows pulumi.StringArrayInput + // Creation date of this group. + CreatedAt pulumi.StringPtrInput + // Set of actions that will be denied no matter what permissions group exists. + Denies pulumi.StringArrayInput + // Group description. + Description pulumi.StringPtrInput + // Set of actions that will be subtracted from the `allow` list. + Excepts pulumi.StringArrayInput + // Name of the permissions group. + Name pulumi.StringPtrInput + // Owner of the permissions group. + Owner pulumi.StringPtrInput + // Date of the last update of this group. + UpdatedAt pulumi.StringPtrInput + // URN of the permissions group. + Urn pulumi.StringPtrInput +} + +func (PermissionsGroupState) ElementType() reflect.Type { + return reflect.TypeOf((*permissionsGroupState)(nil)).Elem() +} + +type permissionsGroupArgs struct { + // Set of actions allowed by the permissions group. + Allows []string `pulumi:"allows"` + // Set of actions that will be denied no matter what permissions group exists. + Denies []string `pulumi:"denies"` + // Group description. + Description string `pulumi:"description"` + // Set of actions that will be subtracted from the `allow` list. + Excepts []string `pulumi:"excepts"` + // Name of the permissions group. + Name *string `pulumi:"name"` + // Date of the last update of this group. + UpdatedAt *string `pulumi:"updatedAt"` +} + +// The set of arguments for constructing a PermissionsGroup resource. +type PermissionsGroupArgs struct { + // Set of actions allowed by the permissions group. + Allows pulumi.StringArrayInput + // Set of actions that will be denied no matter what permissions group exists. + Denies pulumi.StringArrayInput + // Group description. + Description pulumi.StringInput + // Set of actions that will be subtracted from the `allow` list. + Excepts pulumi.StringArrayInput + // Name of the permissions group. + Name pulumi.StringPtrInput + // Date of the last update of this group. + UpdatedAt pulumi.StringPtrInput +} + +func (PermissionsGroupArgs) ElementType() reflect.Type { + return reflect.TypeOf((*permissionsGroupArgs)(nil)).Elem() +} + +type PermissionsGroupInput interface { + pulumi.Input + + ToPermissionsGroupOutput() PermissionsGroupOutput + ToPermissionsGroupOutputWithContext(ctx context.Context) PermissionsGroupOutput +} + +func (*PermissionsGroup) ElementType() reflect.Type { + return reflect.TypeOf((**PermissionsGroup)(nil)).Elem() +} + +func (i *PermissionsGroup) ToPermissionsGroupOutput() PermissionsGroupOutput { + return i.ToPermissionsGroupOutputWithContext(context.Background()) +} + +func (i *PermissionsGroup) ToPermissionsGroupOutputWithContext(ctx context.Context) PermissionsGroupOutput { + return pulumi.ToOutputWithContext(ctx, i).(PermissionsGroupOutput) +} + +// PermissionsGroupArrayInput is an input type that accepts PermissionsGroupArray and PermissionsGroupArrayOutput values. +// You can construct a concrete instance of `PermissionsGroupArrayInput` via: +// +// PermissionsGroupArray{ PermissionsGroupArgs{...} } +type PermissionsGroupArrayInput interface { + pulumi.Input + + ToPermissionsGroupArrayOutput() PermissionsGroupArrayOutput + ToPermissionsGroupArrayOutputWithContext(context.Context) PermissionsGroupArrayOutput +} + +type PermissionsGroupArray []PermissionsGroupInput + +func (PermissionsGroupArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*PermissionsGroup)(nil)).Elem() +} + +func (i PermissionsGroupArray) ToPermissionsGroupArrayOutput() PermissionsGroupArrayOutput { + return i.ToPermissionsGroupArrayOutputWithContext(context.Background()) +} + +func (i PermissionsGroupArray) ToPermissionsGroupArrayOutputWithContext(ctx context.Context) PermissionsGroupArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(PermissionsGroupArrayOutput) +} + +// PermissionsGroupMapInput is an input type that accepts PermissionsGroupMap and PermissionsGroupMapOutput values. +// You can construct a concrete instance of `PermissionsGroupMapInput` via: +// +// PermissionsGroupMap{ "key": PermissionsGroupArgs{...} } +type PermissionsGroupMapInput interface { + pulumi.Input + + ToPermissionsGroupMapOutput() PermissionsGroupMapOutput + ToPermissionsGroupMapOutputWithContext(context.Context) PermissionsGroupMapOutput +} + +type PermissionsGroupMap map[string]PermissionsGroupInput + +func (PermissionsGroupMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*PermissionsGroup)(nil)).Elem() +} + +func (i PermissionsGroupMap) ToPermissionsGroupMapOutput() PermissionsGroupMapOutput { + return i.ToPermissionsGroupMapOutputWithContext(context.Background()) +} + +func (i PermissionsGroupMap) ToPermissionsGroupMapOutputWithContext(ctx context.Context) PermissionsGroupMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(PermissionsGroupMapOutput) +} + +type PermissionsGroupOutput struct{ *pulumi.OutputState } + +func (PermissionsGroupOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PermissionsGroup)(nil)).Elem() +} + +func (o PermissionsGroupOutput) ToPermissionsGroupOutput() PermissionsGroupOutput { + return o +} + +func (o PermissionsGroupOutput) ToPermissionsGroupOutputWithContext(ctx context.Context) PermissionsGroupOutput { + return o +} + +// Set of actions allowed by the permissions group. +func (o PermissionsGroupOutput) Allows() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PermissionsGroup) pulumi.StringArrayOutput { return v.Allows }).(pulumi.StringArrayOutput) +} + +// Creation date of this group. +func (o PermissionsGroupOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v *PermissionsGroup) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) +} + +// Set of actions that will be denied no matter what permissions group exists. +func (o PermissionsGroupOutput) Denies() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PermissionsGroup) pulumi.StringArrayOutput { return v.Denies }).(pulumi.StringArrayOutput) +} + +// Group description. +func (o PermissionsGroupOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v *PermissionsGroup) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput) +} + +// Set of actions that will be subtracted from the `allow` list. +func (o PermissionsGroupOutput) Excepts() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PermissionsGroup) pulumi.StringArrayOutput { return v.Excepts }).(pulumi.StringArrayOutput) +} + +// Name of the permissions group. +func (o PermissionsGroupOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *PermissionsGroup) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Owner of the permissions group. +func (o PermissionsGroupOutput) Owner() pulumi.StringOutput { + return o.ApplyT(func(v *PermissionsGroup) pulumi.StringOutput { return v.Owner }).(pulumi.StringOutput) +} + +// Date of the last update of this group. +func (o PermissionsGroupOutput) UpdatedAt() pulumi.StringOutput { + return o.ApplyT(func(v *PermissionsGroup) pulumi.StringOutput { return v.UpdatedAt }).(pulumi.StringOutput) +} + +// URN of the permissions group. +func (o PermissionsGroupOutput) Urn() pulumi.StringOutput { + return o.ApplyT(func(v *PermissionsGroup) pulumi.StringOutput { return v.Urn }).(pulumi.StringOutput) +} + +type PermissionsGroupArrayOutput struct{ *pulumi.OutputState } + +func (PermissionsGroupArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*PermissionsGroup)(nil)).Elem() +} + +func (o PermissionsGroupArrayOutput) ToPermissionsGroupArrayOutput() PermissionsGroupArrayOutput { + return o +} + +func (o PermissionsGroupArrayOutput) ToPermissionsGroupArrayOutputWithContext(ctx context.Context) PermissionsGroupArrayOutput { + return o +} + +func (o PermissionsGroupArrayOutput) Index(i pulumi.IntInput) PermissionsGroupOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *PermissionsGroup { + return vs[0].([]*PermissionsGroup)[vs[1].(int)] + }).(PermissionsGroupOutput) +} + +type PermissionsGroupMapOutput struct{ *pulumi.OutputState } + +func (PermissionsGroupMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*PermissionsGroup)(nil)).Elem() +} + +func (o PermissionsGroupMapOutput) ToPermissionsGroupMapOutput() PermissionsGroupMapOutput { + return o +} + +func (o PermissionsGroupMapOutput) ToPermissionsGroupMapOutputWithContext(ctx context.Context) PermissionsGroupMapOutput { + return o +} + +func (o PermissionsGroupMapOutput) MapIndex(k pulumi.StringInput) PermissionsGroupOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *PermissionsGroup { + return vs[0].(map[string]*PermissionsGroup)[vs[1].(string)] + }).(PermissionsGroupOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*PermissionsGroupInput)(nil)).Elem(), &PermissionsGroup{}) + pulumi.RegisterInputType(reflect.TypeOf((*PermissionsGroupArrayInput)(nil)).Elem(), PermissionsGroupArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*PermissionsGroupMapInput)(nil)).Elem(), PermissionsGroupMap{}) + pulumi.RegisterOutputType(PermissionsGroupOutput{}) + pulumi.RegisterOutputType(PermissionsGroupArrayOutput{}) + pulumi.RegisterOutputType(PermissionsGroupMapOutput{}) +} diff --git a/sdk/go/ovh/iam/policy.go b/sdk/go/ovh/iam/policy.go index b85e6a01..143ac095 100644 --- a/sdk/go/ovh/iam/policy.go +++ b/sdk/go/ovh/iam/policy.go @@ -71,7 +71,7 @@ type Policy struct { Allows pulumi.StringArrayOutput `pulumi:"allows"` // Creation date of this group. CreatedAt pulumi.StringOutput `pulumi:"createdAt"` - // List of actions that will be denied no matter what policy exists. + // List of actions that will always be denied even if also allowed by this policy or another one. Denies pulumi.StringArrayOutput `pulumi:"denies"` // Description of the policy Description pulumi.StringPtrOutput `pulumi:"description"` @@ -83,6 +83,8 @@ type Policy struct { Name pulumi.StringOutput `pulumi:"name"` // Owner of the policy. Owner pulumi.StringOutput `pulumi:"owner"` + // 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). + PermissionsGroups pulumi.StringArrayOutput `pulumi:"permissionsGroups"` // Indicates that the policy is a default one. ReadOnly pulumi.BoolOutput `pulumi:"readOnly"` // List of resources affected by the policy @@ -131,7 +133,7 @@ type policyState struct { Allows []string `pulumi:"allows"` // Creation date of this group. CreatedAt *string `pulumi:"createdAt"` - // List of actions that will be denied no matter what policy exists. + // List of actions that will always be denied even if also allowed by this policy or another one. Denies []string `pulumi:"denies"` // Description of the policy Description *string `pulumi:"description"` @@ -143,6 +145,8 @@ type policyState struct { Name *string `pulumi:"name"` // Owner of the policy. Owner *string `pulumi:"owner"` + // 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). + PermissionsGroups []string `pulumi:"permissionsGroups"` // Indicates that the policy is a default one. ReadOnly *bool `pulumi:"readOnly"` // List of resources affected by the policy @@ -156,7 +160,7 @@ type PolicyState struct { Allows pulumi.StringArrayInput // Creation date of this group. CreatedAt pulumi.StringPtrInput - // List of actions that will be denied no matter what policy exists. + // List of actions that will always be denied even if also allowed by this policy or another one. Denies pulumi.StringArrayInput // Description of the policy Description pulumi.StringPtrInput @@ -168,6 +172,8 @@ type PolicyState struct { Name pulumi.StringPtrInput // Owner of the policy. Owner pulumi.StringPtrInput + // 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). + PermissionsGroups pulumi.StringArrayInput // Indicates that the policy is a default one. ReadOnly pulumi.BoolPtrInput // List of resources affected by the policy @@ -183,7 +189,7 @@ func (PolicyState) ElementType() reflect.Type { type policyArgs struct { // List of actions allowed on resources by identities Allows []string `pulumi:"allows"` - // List of actions that will be denied no matter what policy exists. + // List of actions that will always be denied even if also allowed by this policy or another one. Denies []string `pulumi:"denies"` // Description of the policy Description *string `pulumi:"description"` @@ -193,6 +199,8 @@ type policyArgs struct { Identities []string `pulumi:"identities"` // Name of the policy, must be unique Name *string `pulumi:"name"` + // 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). + PermissionsGroups []string `pulumi:"permissionsGroups"` // List of resources affected by the policy Resources []string `pulumi:"resources"` } @@ -201,7 +209,7 @@ type policyArgs struct { type PolicyArgs struct { // List of actions allowed on resources by identities Allows pulumi.StringArrayInput - // List of actions that will be denied no matter what policy exists. + // List of actions that will always be denied even if also allowed by this policy or another one. Denies pulumi.StringArrayInput // Description of the policy Description pulumi.StringPtrInput @@ -211,6 +219,8 @@ type PolicyArgs struct { Identities pulumi.StringArrayInput // Name of the policy, must be unique Name pulumi.StringPtrInput + // 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). + PermissionsGroups pulumi.StringArrayInput // List of resources affected by the policy Resources pulumi.StringArrayInput } @@ -312,7 +322,7 @@ func (o PolicyOutput) CreatedAt() pulumi.StringOutput { return o.ApplyT(func(v *Policy) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) } -// List of actions that will be denied no matter what policy exists. +// List of actions that will always be denied even if also allowed by this policy or another one. func (o PolicyOutput) Denies() pulumi.StringArrayOutput { return o.ApplyT(func(v *Policy) pulumi.StringArrayOutput { return v.Denies }).(pulumi.StringArrayOutput) } @@ -342,6 +352,11 @@ func (o PolicyOutput) Owner() pulumi.StringOutput { return o.ApplyT(func(v *Policy) pulumi.StringOutput { return v.Owner }).(pulumi.StringOutput) } +// 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). +func (o PolicyOutput) PermissionsGroups() pulumi.StringArrayOutput { + return o.ApplyT(func(v *Policy) pulumi.StringArrayOutput { return v.PermissionsGroups }).(pulumi.StringArrayOutput) +} + // Indicates that the policy is a default one. func (o PolicyOutput) ReadOnly() pulumi.BoolOutput { return o.ApplyT(func(v *Policy) pulumi.BoolOutput { return v.ReadOnly }).(pulumi.BoolOutput) diff --git a/sdk/go/ovh/ip/reverse.go b/sdk/go/ovh/ip/reverse.go index b213b0d4..7d5b3292 100644 --- a/sdk/go/ovh/ip/reverse.go +++ b/sdk/go/ovh/ip/reverse.go @@ -44,12 +44,12 @@ import ( // // ## Import // -// The resource can be imported using the `ip`, `ip_reverse` of the address, separated by "|" E.g., bash +// The resource can be imported using the `ip`, `ip_reverse` of the address, separated by "|" E.g., // -// ```sh -// -// $ pulumi import ovh:Ip/reverse:Reverse my_reverse '2001:0db8:c0ff:ee::/64|2001:0db8:c0ff:ee::42' +// bash // +// ```sh +// $ pulumi import ovh:Ip/reverse:Reverse my_reverse '2001:0db8:c0ff:ee::/64|2001:0db8:c0ff:ee::42' // ``` type Reverse struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/me/apioauth2Client.go b/sdk/go/ovh/me/apioauth2Client.go index 980bf82d..4fda9182 100644 --- a/sdk/go/ovh/me/apioauth2Client.go +++ b/sdk/go/ovh/me/apioauth2Client.go @@ -75,20 +75,20 @@ import ( // // ## Import // -// OAuth2 clients can be imported using their `client_id`bash +// OAuth2 clients can be imported using their `client_id`: // -// ```sh -// -// $ pulumi import ovh:Me/aPIOAuth2Client:APIOAuth2Client my_oauth2_client client_id +// bash // +// ```sh +// $ pulumi import ovh:Me/aPIOAuth2Client:APIOAuth2Client my_oauth2_client client_id // ``` // -// Because 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 separatorbash +// Because 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: // -// ```sh -// -// $ pulumi import ovh:Me/aPIOAuth2Client:APIOAuth2Client my_oauth2_client 'client_id|client_secret' +// bash // +// ```sh +// $ pulumi import ovh:Me/aPIOAuth2Client:APIOAuth2Client my_oauth2_client 'client_id|client_secret' // ``` type APIOAuth2Client struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/me/installationTemplate.go b/sdk/go/ovh/me/installationTemplate.go index 8f590c4f..11a25aa2 100644 --- a/sdk/go/ovh/me/installationTemplate.go +++ b/sdk/go/ovh/me/installationTemplate.go @@ -44,12 +44,12 @@ import ( // // ## Import // -// Custom installation template available for dedicated servers can be imported using the `base_template_name`, `template_name` of the cluster, separated by "/" E.g., bash +// Custom installation template available for dedicated servers can be imported using the `base_template_name`, `template_name` of the cluster, separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:Me/installationTemplate:InstallationTemplate mytemplate base_template_name/template_name +// bash // +// ```sh +// $ pulumi import ovh:Me/installationTemplate:InstallationTemplate mytemplate base_template_name/template_name // ``` type InstallationTemplate struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/me/installationTemplatePartitionScheme.go b/sdk/go/ovh/me/installationTemplatePartitionScheme.go index 004a527f..e2d41918 100644 --- a/sdk/go/ovh/me/installationTemplatePartitionScheme.go +++ b/sdk/go/ovh/me/installationTemplatePartitionScheme.go @@ -51,12 +51,12 @@ import ( // // ## Import // -// The resource can be imported using the `template_name`, `name` of the cluster, separated by "/" E.g., bash +// The resource can be imported using the `template_name`, `name` of the cluster, separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:Me/installationTemplatePartitionScheme:InstallationTemplatePartitionScheme scheme template_name/name +// bash // +// ```sh +// $ pulumi import ovh:Me/installationTemplatePartitionScheme:InstallationTemplatePartitionScheme scheme template_name/name // ``` type InstallationTemplatePartitionScheme struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/me/installationTemplatePartitionSchemeHardwareRaid.go b/sdk/go/ovh/me/installationTemplatePartitionSchemeHardwareRaid.go index afbd9086..a6d65900 100644 --- a/sdk/go/ovh/me/installationTemplatePartitionSchemeHardwareRaid.go +++ b/sdk/go/ovh/me/installationTemplatePartitionSchemeHardwareRaid.go @@ -64,12 +64,12 @@ import ( // // ## Import // -// The resource can be imported using the `template_name`, `scheme_name`, `name` of the cluster, separated by "/" E.g., bash +// The resource can be imported using the `template_name`, `scheme_name`, `name` of the cluster, separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:Me/installationTemplatePartitionSchemeHardwareRaid:InstallationTemplatePartitionSchemeHardwareRaid group1 template_name/scheme_name/name +// bash // +// ```sh +// $ pulumi import ovh:Me/installationTemplatePartitionSchemeHardwareRaid:InstallationTemplatePartitionSchemeHardwareRaid group1 template_name/scheme_name/name // ``` type InstallationTemplatePartitionSchemeHardwareRaid struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/me/installationTemplatePartitionSchemePartition.go b/sdk/go/ovh/me/installationTemplatePartitionSchemePartition.go index bdab34ba..1ed7a31c 100644 --- a/sdk/go/ovh/me/installationTemplatePartitionSchemePartition.go +++ b/sdk/go/ovh/me/installationTemplatePartitionSchemePartition.go @@ -63,12 +63,12 @@ import ( // // ## Import // -// The resource can be imported using the `template_name`, `scheme_name`, `mountpoint` of the cluster, separated by "/" E.g., bash +// The resource can be imported using the `template_name`, `scheme_name`, `mountpoint` of the cluster, separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:Me/installationTemplatePartitionSchemePartition:InstallationTemplatePartitionSchemePartition root template_name/scheme_name/mountpoint +// bash // +// ```sh +// $ pulumi import ovh:Me/installationTemplatePartitionSchemePartition:InstallationTemplatePartitionSchemePartition root template_name/scheme_name/mountpoint // ``` type InstallationTemplatePartitionSchemePartition struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/vrack/cloudProject.go b/sdk/go/ovh/vrack/cloudProject.go index 8edb33f6..6225fe6f 100644 --- a/sdk/go/ovh/vrack/cloudProject.go +++ b/sdk/go/ovh/vrack/cloudProject.go @@ -43,12 +43,12 @@ import ( // // ## Import // -// Attachment of a public cloud project and a VRack can be imported using the `project_id`, the `service_name` (vRackID) and the `attach_id`, separated by "/" E.g., bash +// Attachment of a public cloud project and a VRack can be imported using the `project_id`, the `service_name` (vRackID) and the `attach_id`, separated by "/" E.g., // -// ```sh -// -// $ pulumi import ovh:Vrack/cloudProject:CloudProject myattach ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678/vrack_pn-12345678-cloudproject_ookie9mee8Shaeghaeleeju7Xeghohv6e-attach +// bash // +// ```sh +// $ pulumi import ovh:Vrack/cloudProject:CloudProject myattach ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678/vrack_pn-12345678-cloudproject_ookie9mee8Shaeghaeleeju7Xeghohv6e-attach // ``` type CloudProject struct { pulumi.CustomResourceState diff --git a/sdk/go/ovh/vrack/vrack.go b/sdk/go/ovh/vrack/vrack.go index 8dcfaa3d..34d3ce87 100644 --- a/sdk/go/ovh/vrack/vrack.go +++ b/sdk/go/ovh/vrack/vrack.go @@ -69,12 +69,10 @@ import ( // // vRack can be imported using the `order_id` that can be retrieved in the [order page](https://www.ovh.com/manager/#/dedicated/billing/orders/orders). // -// bash +// bash // // ```sh -// -// $ pulumi import ovh:Vrack/vrack:Vrack vrack order_id -// +// $ pulumi import ovh:Vrack/vrack:Vrack vrack order_id // ``` type Vrack struct { pulumi.CustomResourceState diff --git a/sdk/nodejs/cloudproject/containerRegistryIPRestrictionsManagement.ts b/sdk/nodejs/cloudproject/containerRegistryIPRestrictionsManagement.ts new file mode 100644 index 00000000..a4fe496a --- /dev/null +++ b/sdk/nodejs/cloudproject/containerRegistryIPRestrictionsManagement.ts @@ -0,0 +1,142 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * Apply IP restrictions container registry associated with a public cloud project on Harbor UI and API. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as ovh from "@ovh-devrelteam/pulumi-ovh"; + * import * as ovh from "@pulumi/ovh"; + * + * const registry = ovh.CloudProject.getContainerRegistry({ + * serviceName: "XXXXXX", + * registryId: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx", + * }); + * const my_mgt_iprestrictions = new ovh.cloudproject.ContainerRegistryIPRestrictionsManagement("my-mgt-iprestrictions", { + * serviceName: ovh_cloud_project_containerregistry.registry.service_name, + * registryId: ovh_cloud_project_containerregistry.registry.id, + * ipRestrictions: [{ + * ip_block: "xxx.xxx.xxx.xxx/xx", + * description: "xxxxxxx", + * }], + * }); + * ``` + */ +export class ContainerRegistryIPRestrictionsManagement extends pulumi.CustomResource { + /** + * Get an existing ContainerRegistryIPRestrictionsManagement resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: ContainerRegistryIPRestrictionsManagementState, opts?: pulumi.CustomResourceOptions): ContainerRegistryIPRestrictionsManagement { + return new ContainerRegistryIPRestrictionsManagement(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'ovh:CloudProject/containerRegistryIPRestrictionsManagement:ContainerRegistryIPRestrictionsManagement'; + + /** + * Returns true if the given object is an instance of ContainerRegistryIPRestrictionsManagement. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ContainerRegistryIPRestrictionsManagement { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ContainerRegistryIPRestrictionsManagement.__pulumiType; + } + + /** + * IP restrictions applied on Harbor UI and API. + */ + public readonly ipRestrictions!: pulumi.Output<{[key: string]: any}[]>; + /** + * The id of the Managed Private Registry. + */ + public readonly registryId!: pulumi.Output; + /** + * The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + */ + public readonly serviceName!: pulumi.Output; + + /** + * Create a ContainerRegistryIPRestrictionsManagement resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ContainerRegistryIPRestrictionsManagementArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ContainerRegistryIPRestrictionsManagementArgs | ContainerRegistryIPRestrictionsManagementState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as ContainerRegistryIPRestrictionsManagementState | undefined; + resourceInputs["ipRestrictions"] = state ? state.ipRestrictions : undefined; + resourceInputs["registryId"] = state ? state.registryId : undefined; + resourceInputs["serviceName"] = state ? state.serviceName : undefined; + } else { + const args = argsOrState as ContainerRegistryIPRestrictionsManagementArgs | undefined; + if ((!args || args.ipRestrictions === undefined) && !opts.urn) { + throw new Error("Missing required property 'ipRestrictions'"); + } + if ((!args || args.registryId === undefined) && !opts.urn) { + throw new Error("Missing required property 'registryId'"); + } + if ((!args || args.serviceName === undefined) && !opts.urn) { + throw new Error("Missing required property 'serviceName'"); + } + resourceInputs["ipRestrictions"] = args ? args.ipRestrictions : undefined; + resourceInputs["registryId"] = args ? args.registryId : undefined; + resourceInputs["serviceName"] = args ? args.serviceName : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ContainerRegistryIPRestrictionsManagement.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering ContainerRegistryIPRestrictionsManagement resources. + */ +export interface ContainerRegistryIPRestrictionsManagementState { + /** + * IP restrictions applied on Harbor UI and API. + */ + ipRestrictions?: pulumi.Input[]>; + /** + * The id of the Managed Private Registry. + */ + registryId?: pulumi.Input; + /** + * The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + */ + serviceName?: pulumi.Input; +} + +/** + * The set of arguments for constructing a ContainerRegistryIPRestrictionsManagement resource. + */ +export interface ContainerRegistryIPRestrictionsManagementArgs { + /** + * IP restrictions applied on Harbor UI and API. + */ + ipRestrictions: pulumi.Input[]>; + /** + * The id of the Managed Private Registry. + */ + registryId: pulumi.Input; + /** + * The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + */ + serviceName: pulumi.Input; +} diff --git a/sdk/nodejs/cloudproject/containerRegistryIPRestrictionsRegistry.ts b/sdk/nodejs/cloudproject/containerRegistryIPRestrictionsRegistry.ts new file mode 100644 index 00000000..b76dfe69 --- /dev/null +++ b/sdk/nodejs/cloudproject/containerRegistryIPRestrictionsRegistry.ts @@ -0,0 +1,142 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * Apply IP restrictions container registry associated with a public cloud project on artifact manager component. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as ovh from "@ovh-devrelteam/pulumi-ovh"; + * import * as ovh from "@pulumi/ovh"; + * + * const registry = ovh.CloudProject.getContainerRegistry({ + * serviceName: "XXXXXX", + * registryId: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx", + * }); + * const my_registry_iprestrictions = new ovh.cloudproject.ContainerRegistryIPRestrictionsRegistry("my-registry-iprestrictions", { + * serviceName: ovh_cloud_project_containerregistry.registry.service_name, + * registryId: ovh_cloud_project_containerregistry.registry.id, + * ipRestrictions: [{ + * ip_block: "xxx.xxx.xxx.xxx/xx", + * description: "xxxxxxx", + * }], + * }); + * ``` + */ +export class ContainerRegistryIPRestrictionsRegistry extends pulumi.CustomResource { + /** + * Get an existing ContainerRegistryIPRestrictionsRegistry resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: ContainerRegistryIPRestrictionsRegistryState, opts?: pulumi.CustomResourceOptions): ContainerRegistryIPRestrictionsRegistry { + return new ContainerRegistryIPRestrictionsRegistry(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'ovh:CloudProject/containerRegistryIPRestrictionsRegistry:ContainerRegistryIPRestrictionsRegistry'; + + /** + * Returns true if the given object is an instance of ContainerRegistryIPRestrictionsRegistry. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ContainerRegistryIPRestrictionsRegistry { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ContainerRegistryIPRestrictionsRegistry.__pulumiType; + } + + /** + * IP restrictions applied on artifact manager component. + */ + public readonly ipRestrictions!: pulumi.Output<{[key: string]: any}[]>; + /** + * The id of the Managed Private Registry. + */ + public readonly registryId!: pulumi.Output; + /** + * The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + */ + public readonly serviceName!: pulumi.Output; + + /** + * Create a ContainerRegistryIPRestrictionsRegistry resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ContainerRegistryIPRestrictionsRegistryArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ContainerRegistryIPRestrictionsRegistryArgs | ContainerRegistryIPRestrictionsRegistryState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as ContainerRegistryIPRestrictionsRegistryState | undefined; + resourceInputs["ipRestrictions"] = state ? state.ipRestrictions : undefined; + resourceInputs["registryId"] = state ? state.registryId : undefined; + resourceInputs["serviceName"] = state ? state.serviceName : undefined; + } else { + const args = argsOrState as ContainerRegistryIPRestrictionsRegistryArgs | undefined; + if ((!args || args.ipRestrictions === undefined) && !opts.urn) { + throw new Error("Missing required property 'ipRestrictions'"); + } + if ((!args || args.registryId === undefined) && !opts.urn) { + throw new Error("Missing required property 'registryId'"); + } + if ((!args || args.serviceName === undefined) && !opts.urn) { + throw new Error("Missing required property 'serviceName'"); + } + resourceInputs["ipRestrictions"] = args ? args.ipRestrictions : undefined; + resourceInputs["registryId"] = args ? args.registryId : undefined; + resourceInputs["serviceName"] = args ? args.serviceName : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ContainerRegistryIPRestrictionsRegistry.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering ContainerRegistryIPRestrictionsRegistry resources. + */ +export interface ContainerRegistryIPRestrictionsRegistryState { + /** + * IP restrictions applied on artifact manager component. + */ + ipRestrictions?: pulumi.Input[]>; + /** + * The id of the Managed Private Registry. + */ + registryId?: pulumi.Input; + /** + * The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + */ + serviceName?: pulumi.Input; +} + +/** + * The set of arguments for constructing a ContainerRegistryIPRestrictionsRegistry resource. + */ +export interface ContainerRegistryIPRestrictionsRegistryArgs { + /** + * IP restrictions applied on artifact manager component. + */ + ipRestrictions: pulumi.Input[]>; + /** + * The id of the Managed Private Registry. + */ + registryId: pulumi.Input; + /** + * The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + */ + serviceName: pulumi.Input; +} diff --git a/sdk/nodejs/cloudproject/containerRegistryOIDC.ts b/sdk/nodejs/cloudproject/containerRegistryOIDC.ts index f803e08e..a7bea6ac 100644 --- a/sdk/nodejs/cloudproject/containerRegistryOIDC.ts +++ b/sdk/nodejs/cloudproject/containerRegistryOIDC.ts @@ -33,10 +33,12 @@ import * as utilities from "../utilities"; * * ## Import * - * OVHcloud Managed Private Registry OIDC can be imported using the tenant `service_name` and registry id `registry_id` separated by "/" E.g., bash + * OVHcloud Managed Private Registry OIDC can be imported using the tenant `service_name` and registry id `registry_id` separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:CloudProject/containerRegistryOIDC:ContainerRegistryOIDC my-oidc service_name/registry_id + * $ pulumi import ovh:CloudProject/containerRegistryOIDC:ContainerRegistryOIDC my-oidc service_name/registry_id * ``` */ export class ContainerRegistryOIDC extends pulumi.CustomResource { diff --git a/sdk/nodejs/cloudproject/database.ts b/sdk/nodejs/cloudproject/database.ts index 76c04098..8ea9f8f5 100644 --- a/sdk/nodejs/cloudproject/database.ts +++ b/sdk/nodejs/cloudproject/database.ts @@ -197,10 +197,12 @@ import * as utilities from "../utilities"; * * ## Import * - * OVHcloud Managed database clusters can be imported using the `service_name`, `engine`, `id` of the cluster, separated by "/" E.g., bash + * OVHcloud Managed database clusters can be imported using the `service_name`, `engine`, `id` of the cluster, separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:CloudProject/database:Database my_database_cluster service_name/engine/id + * $ pulumi import ovh:CloudProject/database:Database my_database_cluster service_name/engine/id * ``` */ export class Database extends pulumi.CustomResource { @@ -235,10 +237,14 @@ export class Database extends pulumi.CustomResource { * Advanced configuration key / value. */ public readonly advancedConfiguration!: pulumi.Output<{[key: string]: string}>; + /** + * 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 + */ + public readonly backupRegions!: pulumi.Output; /** * Time on which backups start every day. */ - public /*out*/ readonly backupTime!: pulumi.Output; + public readonly backupTime!: pulumi.Output; /** * Date of the creation of the cluster. */ @@ -324,6 +330,7 @@ export class Database extends pulumi.CustomResource { if (opts.id) { const state = argsOrState as DatabaseState | undefined; resourceInputs["advancedConfiguration"] = state ? state.advancedConfiguration : undefined; + resourceInputs["backupRegions"] = state ? state.backupRegions : undefined; resourceInputs["backupTime"] = state ? state.backupTime : undefined; resourceInputs["createdAt"] = state ? state.createdAt : undefined; resourceInputs["description"] = state ? state.description : undefined; @@ -362,6 +369,8 @@ export class Database extends pulumi.CustomResource { throw new Error("Missing required property 'version'"); } resourceInputs["advancedConfiguration"] = args ? args.advancedConfiguration : undefined; + resourceInputs["backupRegions"] = args ? args.backupRegions : undefined; + resourceInputs["backupTime"] = args ? args.backupTime : undefined; resourceInputs["description"] = args ? args.description : undefined; resourceInputs["diskSize"] = args ? args.diskSize : undefined; resourceInputs["engine"] = args ? args.engine : undefined; @@ -372,7 +381,6 @@ export class Database extends pulumi.CustomResource { resourceInputs["plan"] = args ? args.plan : undefined; resourceInputs["serviceName"] = args ? args.serviceName : undefined; resourceInputs["version"] = args ? args.version : undefined; - resourceInputs["backupTime"] = undefined /*out*/; resourceInputs["createdAt"] = undefined /*out*/; resourceInputs["diskType"] = undefined /*out*/; resourceInputs["endpoints"] = undefined /*out*/; @@ -393,6 +401,10 @@ export interface DatabaseState { * Advanced configuration key / value. */ advancedConfiguration?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * 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 + */ + backupRegions?: pulumi.Input[]>; /** * Time on which backups start every day. */ @@ -477,6 +489,14 @@ export interface DatabaseArgs { * Advanced configuration key / value. */ advancedConfiguration?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * 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 + */ + backupRegions?: pulumi.Input[]>; + /** + * Time on which backups start every day. + */ + backupTime?: pulumi.Input; /** * Small description of the database service. */ diff --git a/sdk/nodejs/cloudproject/getContainerRegistryIPRestrictionsManagement.ts b/sdk/nodejs/cloudproject/getContainerRegistryIPRestrictionsManagement.ts new file mode 100644 index 00000000..2e5a38aa --- /dev/null +++ b/sdk/nodejs/cloudproject/getContainerRegistryIPRestrictionsManagement.ts @@ -0,0 +1,73 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * Use this data source to get the list of Management IP Restrictions of a container registry associated with a public cloud project. + */ +export function getContainerRegistryIPRestrictionsManagement(args: GetContainerRegistryIPRestrictionsManagementArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("ovh:CloudProject/getContainerRegistryIPRestrictionsManagement:getContainerRegistryIPRestrictionsManagement", { + "registryId": args.registryId, + "serviceName": args.serviceName, + }, opts); +} + +/** + * A collection of arguments for invoking getContainerRegistryIPRestrictionsManagement. + */ +export interface GetContainerRegistryIPRestrictionsManagementArgs { + /** + * The id of the Managed Private Registry. + */ + registryId: string; + /** + * The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + */ + serviceName: string; +} + +/** + * A collection of values returned by getContainerRegistryIPRestrictionsManagement. + */ +export interface GetContainerRegistryIPRestrictionsManagementResult { + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + /** + * IP restrictions applied on Harbor UI and API. + */ + readonly ipRestrictions: {[key: string]: any}[]; + /** + * The ID of the Managed Private Registry. + */ + readonly registryId: string; + /** + * The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + */ + readonly serviceName: string; +} +/** + * Use this data source to get the list of Management IP Restrictions of a container registry associated with a public cloud project. + */ +export function getContainerRegistryIPRestrictionsManagementOutput(args: GetContainerRegistryIPRestrictionsManagementOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getContainerRegistryIPRestrictionsManagement(a, opts)) +} + +/** + * A collection of arguments for invoking getContainerRegistryIPRestrictionsManagement. + */ +export interface GetContainerRegistryIPRestrictionsManagementOutputArgs { + /** + * The id of the Managed Private Registry. + */ + registryId: pulumi.Input; + /** + * The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + */ + serviceName: pulumi.Input; +} diff --git a/sdk/nodejs/cloudproject/getContainerRegistryIPRestrictionsRegistry.ts b/sdk/nodejs/cloudproject/getContainerRegistryIPRestrictionsRegistry.ts new file mode 100644 index 00000000..5b0051d1 --- /dev/null +++ b/sdk/nodejs/cloudproject/getContainerRegistryIPRestrictionsRegistry.ts @@ -0,0 +1,73 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * Use this data source to get the list of Registry IP Restrictions of a container registry associated with a public cloud project. + */ +export function getContainerRegistryIPRestrictionsRegistry(args: GetContainerRegistryIPRestrictionsRegistryArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("ovh:CloudProject/getContainerRegistryIPRestrictionsRegistry:getContainerRegistryIPRestrictionsRegistry", { + "registryId": args.registryId, + "serviceName": args.serviceName, + }, opts); +} + +/** + * A collection of arguments for invoking getContainerRegistryIPRestrictionsRegistry. + */ +export interface GetContainerRegistryIPRestrictionsRegistryArgs { + /** + * The id of the Managed Private Registry. + */ + registryId: string; + /** + * The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + */ + serviceName: string; +} + +/** + * A collection of values returned by getContainerRegistryIPRestrictionsRegistry. + */ +export interface GetContainerRegistryIPRestrictionsRegistryResult { + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + /** + * IP restrictions applied on artifact manager component. + */ + readonly ipRestrictions: {[key: string]: any}[]; + /** + * The ID of the Managed Private Registry. + */ + readonly registryId: string; + /** + * The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + */ + readonly serviceName: string; +} +/** + * Use this data source to get the list of Registry IP Restrictions of a container registry associated with a public cloud project. + */ +export function getContainerRegistryIPRestrictionsRegistryOutput(args: GetContainerRegistryIPRestrictionsRegistryOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getContainerRegistryIPRestrictionsRegistry(a, opts)) +} + +/** + * A collection of arguments for invoking getContainerRegistryIPRestrictionsRegistry. + */ +export interface GetContainerRegistryIPRestrictionsRegistryOutputArgs { + /** + * The id of the Managed Private Registry. + */ + registryId: pulumi.Input; + /** + * The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + */ + serviceName: pulumi.Input; +} diff --git a/sdk/nodejs/cloudproject/getKubeNodePool.ts b/sdk/nodejs/cloudproject/getKubeNodePool.ts index 88ff308f..49b64a16 100644 --- a/sdk/nodejs/cloudproject/getKubeNodePool.ts +++ b/sdk/nodejs/cloudproject/getKubeNodePool.ts @@ -66,6 +66,21 @@ export interface GetKubeNodePoolResult { * (Optional) Enable auto-scaling for the pool. Default to `false`. */ readonly autoscale: boolean; + /** + * (Optional) scaleDownUnneededTimeSeconds autoscaling parameter + * How long a node should be unneeded before it is eligible for scale down + */ + readonly autoscalingScaleDownUnneededTimeSeconds: number; + /** + * (Optional) scaleDownUnreadyTimeSeconds autoscaling parameter + * How long an unready node should be unneeded before it is eligible for scale down + */ + readonly autoscalingScaleDownUnreadyTimeSeconds: number; + /** + * (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 + */ + readonly autoscalingScaleDownUtilizationThreshold: number; /** * Number of nodes which are actually ready in the pool */ diff --git a/sdk/nodejs/cloudproject/index.ts b/sdk/nodejs/cloudproject/index.ts index 84f94632..61b287c1 100644 --- a/sdk/nodejs/cloudproject/index.ts +++ b/sdk/nodejs/cloudproject/index.ts @@ -10,6 +10,16 @@ export type ContainerRegistry = import("./containerRegistry").ContainerRegistry; export const ContainerRegistry: typeof import("./containerRegistry").ContainerRegistry = null as any; utilities.lazyLoad(exports, ["ContainerRegistry"], () => require("./containerRegistry")); +export { ContainerRegistryIPRestrictionsManagementArgs, ContainerRegistryIPRestrictionsManagementState } from "./containerRegistryIPRestrictionsManagement"; +export type ContainerRegistryIPRestrictionsManagement = import("./containerRegistryIPRestrictionsManagement").ContainerRegistryIPRestrictionsManagement; +export const ContainerRegistryIPRestrictionsManagement: typeof import("./containerRegistryIPRestrictionsManagement").ContainerRegistryIPRestrictionsManagement = null as any; +utilities.lazyLoad(exports, ["ContainerRegistryIPRestrictionsManagement"], () => require("./containerRegistryIPRestrictionsManagement")); + +export { ContainerRegistryIPRestrictionsRegistryArgs, ContainerRegistryIPRestrictionsRegistryState } from "./containerRegistryIPRestrictionsRegistry"; +export type ContainerRegistryIPRestrictionsRegistry = import("./containerRegistryIPRestrictionsRegistry").ContainerRegistryIPRestrictionsRegistry; +export const ContainerRegistryIPRestrictionsRegistry: typeof import("./containerRegistryIPRestrictionsRegistry").ContainerRegistryIPRestrictionsRegistry = null as any; +utilities.lazyLoad(exports, ["ContainerRegistryIPRestrictionsRegistry"], () => require("./containerRegistryIPRestrictionsRegistry")); + export { ContainerRegistryOIDCArgs, ContainerRegistryOIDCState } from "./containerRegistryOIDC"; export type ContainerRegistryOIDC = import("./containerRegistryOIDC").ContainerRegistryOIDC; export const ContainerRegistryOIDC: typeof import("./containerRegistryOIDC").ContainerRegistryOIDC = null as any; @@ -50,6 +60,16 @@ export const getContainerRegistry: typeof import("./getContainerRegistry").getCo export const getContainerRegistryOutput: typeof import("./getContainerRegistry").getContainerRegistryOutput = null as any; utilities.lazyLoad(exports, ["getContainerRegistry","getContainerRegistryOutput"], () => require("./getContainerRegistry")); +export { GetContainerRegistryIPRestrictionsManagementArgs, GetContainerRegistryIPRestrictionsManagementResult, GetContainerRegistryIPRestrictionsManagementOutputArgs } from "./getContainerRegistryIPRestrictionsManagement"; +export const getContainerRegistryIPRestrictionsManagement: typeof import("./getContainerRegistryIPRestrictionsManagement").getContainerRegistryIPRestrictionsManagement = null as any; +export const getContainerRegistryIPRestrictionsManagementOutput: typeof import("./getContainerRegistryIPRestrictionsManagement").getContainerRegistryIPRestrictionsManagementOutput = null as any; +utilities.lazyLoad(exports, ["getContainerRegistryIPRestrictionsManagement","getContainerRegistryIPRestrictionsManagementOutput"], () => require("./getContainerRegistryIPRestrictionsManagement")); + +export { GetContainerRegistryIPRestrictionsRegistryArgs, GetContainerRegistryIPRestrictionsRegistryResult, GetContainerRegistryIPRestrictionsRegistryOutputArgs } from "./getContainerRegistryIPRestrictionsRegistry"; +export const getContainerRegistryIPRestrictionsRegistry: typeof import("./getContainerRegistryIPRestrictionsRegistry").getContainerRegistryIPRestrictionsRegistry = null as any; +export const getContainerRegistryIPRestrictionsRegistryOutput: typeof import("./getContainerRegistryIPRestrictionsRegistry").getContainerRegistryIPRestrictionsRegistryOutput = null as any; +utilities.lazyLoad(exports, ["getContainerRegistryIPRestrictionsRegistry","getContainerRegistryIPRestrictionsRegistryOutput"], () => require("./getContainerRegistryIPRestrictionsRegistry")); + export { GetContainerRegistryOIDCArgs, GetContainerRegistryOIDCResult, GetContainerRegistryOIDCOutputArgs } from "./getContainerRegistryOIDC"; export const getContainerRegistryOIDC: typeof import("./getContainerRegistryOIDC").getContainerRegistryOIDC = null as any; export const getContainerRegistryOIDCOutput: typeof import("./getContainerRegistryOIDC").getContainerRegistryOIDCOutput = null as any; @@ -242,6 +262,10 @@ const _module = { switch (type) { case "ovh:CloudProject/containerRegistry:ContainerRegistry": return new ContainerRegistry(name, undefined, { urn }) + case "ovh:CloudProject/containerRegistryIPRestrictionsManagement:ContainerRegistryIPRestrictionsManagement": + return new ContainerRegistryIPRestrictionsManagement(name, undefined, { urn }) + case "ovh:CloudProject/containerRegistryIPRestrictionsRegistry:ContainerRegistryIPRestrictionsRegistry": + return new ContainerRegistryIPRestrictionsRegistry(name, undefined, { urn }) case "ovh:CloudProject/containerRegistryOIDC:ContainerRegistryOIDC": return new ContainerRegistryOIDC(name, undefined, { urn }) case "ovh:CloudProject/containerRegistryUser:ContainerRegistryUser": @@ -280,6 +304,8 @@ const _module = { }, }; pulumi.runtime.registerResourceModule("ovh", "CloudProject/containerRegistry", _module) +pulumi.runtime.registerResourceModule("ovh", "CloudProject/containerRegistryIPRestrictionsManagement", _module) +pulumi.runtime.registerResourceModule("ovh", "CloudProject/containerRegistryIPRestrictionsRegistry", _module) pulumi.runtime.registerResourceModule("ovh", "CloudProject/containerRegistryOIDC", _module) pulumi.runtime.registerResourceModule("ovh", "CloudProject/containerRegistryUser", _module) pulumi.runtime.registerResourceModule("ovh", "CloudProject/database", _module) diff --git a/sdk/nodejs/cloudproject/kube.ts b/sdk/nodejs/cloudproject/kube.ts index fcd7bb81..b35267d5 100644 --- a/sdk/nodejs/cloudproject/kube.ts +++ b/sdk/nodejs/cloudproject/kube.ts @@ -9,10 +9,12 @@ import * as utilities from "../utilities"; /** * ## Import * - * OVHcloud Managed Kubernetes Service clusters can be imported using the `service_name` and the `id` of the cluster, separated by "/" E.g., bash + * OVHcloud Managed Kubernetes Service clusters can be imported using the `service_name` and the `id` of the cluster, separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:CloudProject/kube:Kube my_kube_cluster service_name/kube_id + * $ pulumi import ovh:CloudProject/kube:Kube my_kube_cluster service_name/kube_id * ``` */ export class Kube extends pulumi.CustomResource { diff --git a/sdk/nodejs/cloudproject/kubeIpRestrictions.ts b/sdk/nodejs/cloudproject/kubeIpRestrictions.ts index 70eaaa70..7f15fa27 100644 --- a/sdk/nodejs/cloudproject/kubeIpRestrictions.ts +++ b/sdk/nodejs/cloudproject/kubeIpRestrictions.ts @@ -22,10 +22,12 @@ import * as utilities from "../utilities"; * * ## Import * - * OVHcloud Managed Kubernetes Service cluster IP restrictions can be imported using the `service_name` and the `id` of the cluster, separated by "/" E.g., bash + * OVHcloud Managed Kubernetes Service cluster IP restrictions can be imported using the `service_name` and the `id` of the cluster, separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:CloudProject/kubeIpRestrictions:KubeIpRestrictions iprestrictions service_name/kube_id + * $ pulumi import ovh:CloudProject/kubeIpRestrictions:KubeIpRestrictions iprestrictions service_name/kube_id * ``` */ export class KubeIpRestrictions extends pulumi.CustomResource { diff --git a/sdk/nodejs/cloudproject/kubeNodePool.ts b/sdk/nodejs/cloudproject/kubeNodePool.ts index 7c35c51b..d591df01 100644 --- a/sdk/nodejs/cloudproject/kubeNodePool.ts +++ b/sdk/nodejs/cloudproject/kubeNodePool.ts @@ -69,10 +69,12 @@ import * as utilities from "../utilities"; * * ## Import * - * OVHcloud 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., bash + * OVHcloud 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., + * + * bash * * ```sh - * $ pulumi import ovh:CloudProject/kubeNodePool:KubeNodePool pool service_name/kube_id/poolid + * $ pulumi import ovh:CloudProject/kubeNodePool:KubeNodePool pool service_name/kube_id/poolid * ``` */ export class KubeNodePool extends pulumi.CustomResource { @@ -109,9 +111,24 @@ export class KubeNodePool extends pulumi.CustomResource { public readonly antiAffinity!: pulumi.Output; /** * Enable auto-scaling for the pool. Default to `false`. - * * `template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: */ public readonly autoscale!: pulumi.Output; + /** + * scaleDownUnneededTimeSeconds autoscaling parameter + * How long a node should be unneeded before it is eligible for scale down + */ + public readonly autoscalingScaleDownUnneededTimeSeconds!: pulumi.Output; + /** + * scaleDownUnreadyTimeSeconds autoscaling parameter + * How long an unready node should be unneeded before it is eligible for scale down + */ + public readonly autoscalingScaleDownUnreadyTimeSeconds!: pulumi.Output; + /** + * 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 + * * `template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: + */ + public readonly autoscalingScaleDownUtilizationThreshold!: pulumi.Output; /** * Number of nodes which are actually ready in the pool */ @@ -201,6 +218,9 @@ export class KubeNodePool extends pulumi.CustomResource { const state = argsOrState as KubeNodePoolState | undefined; resourceInputs["antiAffinity"] = state ? state.antiAffinity : undefined; resourceInputs["autoscale"] = state ? state.autoscale : undefined; + resourceInputs["autoscalingScaleDownUnneededTimeSeconds"] = state ? state.autoscalingScaleDownUnneededTimeSeconds : undefined; + resourceInputs["autoscalingScaleDownUnreadyTimeSeconds"] = state ? state.autoscalingScaleDownUnreadyTimeSeconds : undefined; + resourceInputs["autoscalingScaleDownUtilizationThreshold"] = state ? state.autoscalingScaleDownUtilizationThreshold : undefined; resourceInputs["availableNodes"] = state ? state.availableNodes : undefined; resourceInputs["createdAt"] = state ? state.createdAt : undefined; resourceInputs["currentNodes"] = state ? state.currentNodes : undefined; @@ -232,6 +252,9 @@ export class KubeNodePool extends pulumi.CustomResource { } resourceInputs["antiAffinity"] = args ? args.antiAffinity : undefined; resourceInputs["autoscale"] = args ? args.autoscale : undefined; + resourceInputs["autoscalingScaleDownUnneededTimeSeconds"] = args ? args.autoscalingScaleDownUnneededTimeSeconds : undefined; + resourceInputs["autoscalingScaleDownUnreadyTimeSeconds"] = args ? args.autoscalingScaleDownUnreadyTimeSeconds : undefined; + resourceInputs["autoscalingScaleDownUtilizationThreshold"] = args ? args.autoscalingScaleDownUtilizationThreshold : undefined; resourceInputs["desiredNodes"] = args ? args.desiredNodes : undefined; resourceInputs["flavorName"] = args ? args.flavorName : undefined; resourceInputs["kubeId"] = args ? args.kubeId : undefined; @@ -266,9 +289,24 @@ export interface KubeNodePoolState { antiAffinity?: pulumi.Input; /** * Enable auto-scaling for the pool. Default to `false`. - * * `template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: */ autoscale?: pulumi.Input; + /** + * scaleDownUnneededTimeSeconds autoscaling parameter + * How long a node should be unneeded before it is eligible for scale down + */ + autoscalingScaleDownUnneededTimeSeconds?: pulumi.Input; + /** + * scaleDownUnreadyTimeSeconds autoscaling parameter + * How long an unready node should be unneeded before it is eligible for scale down + */ + autoscalingScaleDownUnreadyTimeSeconds?: pulumi.Input; + /** + * 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 + * * `template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: + */ + autoscalingScaleDownUtilizationThreshold?: pulumi.Input; /** * Number of nodes which are actually ready in the pool */ @@ -354,9 +392,24 @@ export interface KubeNodePoolArgs { antiAffinity?: pulumi.Input; /** * Enable auto-scaling for the pool. Default to `false`. - * * `template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: */ autoscale?: pulumi.Input; + /** + * scaleDownUnneededTimeSeconds autoscaling parameter + * How long a node should be unneeded before it is eligible for scale down + */ + autoscalingScaleDownUnneededTimeSeconds?: pulumi.Input; + /** + * scaleDownUnreadyTimeSeconds autoscaling parameter + * How long an unready node should be unneeded before it is eligible for scale down + */ + autoscalingScaleDownUnreadyTimeSeconds?: pulumi.Input; + /** + * 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 + * * `template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: + */ + autoscalingScaleDownUtilizationThreshold?: pulumi.Input; /** * number of nodes to start. */ diff --git a/sdk/nodejs/cloudproject/kubeOidc.ts b/sdk/nodejs/cloudproject/kubeOidc.ts index ef4db8b5..d8e5e26f 100644 --- a/sdk/nodejs/cloudproject/kubeOidc.ts +++ b/sdk/nodejs/cloudproject/kubeOidc.ts @@ -30,10 +30,12 @@ import * as utilities from "../utilities"; * * ## Import * - * OVHcloud Managed Kubernetes Service cluster OIDC can be imported using the tenant `service_name` and cluster id `kube_id` separated by "/" E.g., bash + * OVHcloud Managed Kubernetes Service cluster OIDC can be imported using the tenant `service_name` and cluster id `kube_id` separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:CloudProject/kubeOidc:KubeOidc my-oidc service_name/kube_id + * $ pulumi import ovh:CloudProject/kubeOidc:KubeOidc my-oidc service_name/kube_id * ``` */ export class KubeOidc extends pulumi.CustomResource { diff --git a/sdk/nodejs/cloudproject/networkPrivate.ts b/sdk/nodejs/cloudproject/networkPrivate.ts index 307977f6..d99f1ab4 100644 --- a/sdk/nodejs/cloudproject/networkPrivate.ts +++ b/sdk/nodejs/cloudproject/networkPrivate.ts @@ -26,10 +26,12 @@ import * as utilities from "../utilities"; * * ## Import * - * Private network in a public cloud project can be imported using the `service_name` and the `network_id`, separated by "/" E.g., bash + * Private network in a public cloud project can be imported using the `service_name` and the `network_id`, separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:CloudProject/networkPrivate:NetworkPrivate mynet ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678 + * $ pulumi import ovh:CloudProject/networkPrivate:NetworkPrivate mynet ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678 * ``` */ export class NetworkPrivate extends pulumi.CustomResource { diff --git a/sdk/nodejs/cloudproject/networkPrivateSubnet.ts b/sdk/nodejs/cloudproject/networkPrivateSubnet.ts index 7405188f..e06e75e4 100644 --- a/sdk/nodejs/cloudproject/networkPrivateSubnet.ts +++ b/sdk/nodejs/cloudproject/networkPrivateSubnet.ts @@ -29,10 +29,12 @@ import * as utilities from "../utilities"; * * ## Import * - * Subnet in a private network of a public cloud project can be imported using the `service_name` , the `network_id` and the `subnet_id`, separated by "/" E.g., bash + * Subnet in a private network of a public cloud project can be imported using the `service_name` , the `network_id` and the `subnet_id`, separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:CloudProject/networkPrivateSubnet:NetworkPrivateSubnet mysubnet ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678/0f0b73a4-403b-45e4-86d0-b438f1291909 + * $ pulumi import ovh:CloudProject/networkPrivateSubnet:NetworkPrivateSubnet mysubnet ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678/0f0b73a4-403b-45e4-86d0-b438f1291909 * ``` */ export class NetworkPrivateSubnet extends pulumi.CustomResource { diff --git a/sdk/nodejs/cloudproject/project.ts b/sdk/nodejs/cloudproject/project.ts index 56cbc19f..d65eb34d 100644 --- a/sdk/nodejs/cloudproject/project.ts +++ b/sdk/nodejs/cloudproject/project.ts @@ -11,10 +11,10 @@ import * as utilities from "../utilities"; * * Cloud project can be imported using the `order_id` that can be retrieved in the [order page](https://www.ovh.com/manager/#/dedicated/billing/orders/orders) at the creation time of the Public Cloud project. * - * bash + * bash * * ```sh - * $ pulumi import ovh:CloudProject/project:Project my_cloud_project order_id + * $ pulumi import ovh:CloudProject/project:Project my_cloud_project order_id * ``` */ export class Project extends pulumi.CustomResource { diff --git a/sdk/nodejs/cloudproject/s3credential.ts b/sdk/nodejs/cloudproject/s3credential.ts index abf87c95..18c9569d 100644 --- a/sdk/nodejs/cloudproject/s3credential.ts +++ b/sdk/nodejs/cloudproject/s3credential.ts @@ -9,10 +9,12 @@ import * as utilities from "../utilities"; * * ## Import * - * OVHcloud User S3 Credentials can be imported using the `service_name`, `user_id` and `access_key_id` of the credential, separated by "/" E.g., bash + * OVHcloud User S3 Credentials can be imported using the `service_name`, `user_id` and `access_key_id` of the credential, separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:CloudProject/s3Credential:S3Credential s3_credential service_name/user_id/access_key_id + * $ pulumi import ovh:CloudProject/s3Credential:S3Credential s3_credential service_name/user_id/access_key_id * ``` */ export class S3Credential extends pulumi.CustomResource { diff --git a/sdk/nodejs/cloudproject/s3policy.ts b/sdk/nodejs/cloudproject/s3policy.ts index 4dbf24f1..ecc4f72d 100644 --- a/sdk/nodejs/cloudproject/s3policy.ts +++ b/sdk/nodejs/cloudproject/s3policy.ts @@ -50,10 +50,12 @@ import * as utilities from "../utilities"; * * ## Import * - * OVHcloud User S3 Policy can be imported using the `service_name`, `user_id` of the policy, separated by "/" E.g., bash + * OVHcloud User S3 Policy can be imported using the `service_name`, `user_id` of the policy, separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:CloudProject/s3Policy:S3Policy policy service_name/user_id + * $ pulumi import ovh:CloudProject/s3Policy:S3Policy policy service_name/user_id * ``` */ export class S3Policy extends pulumi.CustomResource { diff --git a/sdk/nodejs/cloudprojectdatabase/databaseInstance.ts b/sdk/nodejs/cloudprojectdatabase/databaseInstance.ts index ea536229..f78069b8 100644 --- a/sdk/nodejs/cloudprojectdatabase/databaseInstance.ts +++ b/sdk/nodejs/cloudprojectdatabase/databaseInstance.ts @@ -33,10 +33,12 @@ import * as utilities from "../utilities"; * * ## Import * - * OVHcloud Managed database clusters databases can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the database, separated by "/" E.g., bash + * OVHcloud Managed database clusters databases can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the database, separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:CloudProjectDatabase/databaseInstance:DatabaseInstance my_database service_name/engine/cluster_id/id + * $ pulumi import ovh:CloudProjectDatabase/databaseInstance:DatabaseInstance my_database service_name/engine/cluster_id/id * ``` */ export class DatabaseInstance extends pulumi.CustomResource { diff --git a/sdk/nodejs/cloudprojectdatabase/getDatabase.ts b/sdk/nodejs/cloudprojectdatabase/getDatabase.ts index 836e53b7..6a7c9135 100644 --- a/sdk/nodejs/cloudprojectdatabase/getDatabase.ts +++ b/sdk/nodejs/cloudprojectdatabase/getDatabase.ts @@ -63,6 +63,10 @@ export interface GetDatabaseResult { * Advanced configuration key / value. */ readonly advancedConfiguration: {[key: string]: string}; + /** + * List of region where backups are pushed. + */ + readonly backupRegions: string[]; /** * Time on which backups start every day. */ diff --git a/sdk/nodejs/cloudprojectdatabase/getPostgresSqlConnectionPool.ts b/sdk/nodejs/cloudprojectdatabase/getPostgresSqlConnectionPool.ts new file mode 100644 index 00000000..fbb8bcfe --- /dev/null +++ b/sdk/nodejs/cloudprojectdatabase/getPostgresSqlConnectionPool.ts @@ -0,0 +1,163 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * Use this data source to get information about a connection pool of a postgresql cluster associated with a public cloud project. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as ovh from "@pulumi/ovh"; + * + * const testPoolPostgresSqlConnectionPool = ovh.CloudProjectDatabase.getPostgresSqlConnectionPool({ + * serviceName: "XXX", + * clusterId: "YYY", + * name: "ZZZ", + * }); + * export const testPool = { + * service_name: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool => testPoolPostgresSqlConnectionPool.serviceName), + * cluster_id: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool => testPoolPostgresSqlConnectionPool.clusterId), + * name: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool => testPoolPostgresSqlConnectionPool.name), + * database_id: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool => testPoolPostgresSqlConnectionPool.databaseId), + * mode: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool => testPoolPostgresSqlConnectionPool.mode), + * size: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool => testPoolPostgresSqlConnectionPool.size), + * port: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool => testPoolPostgresSqlConnectionPool.port), + * ssl_mode: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool => testPoolPostgresSqlConnectionPool.sslMode), + * uri: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool => testPoolPostgresSqlConnectionPool.uri), + * user_id: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool => testPoolPostgresSqlConnectionPool.userId), + * }; + * ``` + */ +export function getPostgresSqlConnectionPool(args: GetPostgresSqlConnectionPoolArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("ovh:CloudProjectDatabase/getPostgresSqlConnectionPool:getPostgresSqlConnectionPool", { + "clusterId": args.clusterId, + "name": args.name, + "serviceName": args.serviceName, + }, opts); +} + +/** + * A collection of arguments for invoking getPostgresSqlConnectionPool. + */ +export interface GetPostgresSqlConnectionPoolArgs { + /** + * Cluster ID. + */ + clusterId: string; + /** + * Name of the Connection pool. + */ + name: string; + /** + * The id of the public cloud project. If omitted, + * the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + */ + serviceName: string; +} + +/** + * A collection of values returned by getPostgresSqlConnectionPool. + */ +export interface GetPostgresSqlConnectionPoolResult { + /** + * See Argument Reference above + */ + readonly clusterId: string; + /** + * Database ID for a database that belongs to the Database cluster given above. + */ + readonly databaseId: string; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + /** + * Connection mode to the connection pool + * Available modes: + */ + readonly mode: string; + /** + * See Argument Reference above + */ + readonly name: string; + /** + * Port of the connection pool. + */ + readonly port: number; + /** + * See Argument Reference above + */ + readonly serviceName: string; + /** + * Size of the connection pool. + */ + readonly size: number; + /** + * Ssl connection mode for the pool. + */ + readonly sslMode: string; + /** + * Connection URI to the pool. + */ + readonly uri: string; + /** + * Database user authorized to connect to the pool, if none all the users are allowed. + */ + readonly userId: string; +} +/** + * Use this data source to get information about a connection pool of a postgresql cluster associated with a public cloud project. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as ovh from "@pulumi/ovh"; + * + * const testPoolPostgresSqlConnectionPool = ovh.CloudProjectDatabase.getPostgresSqlConnectionPool({ + * serviceName: "XXX", + * clusterId: "YYY", + * name: "ZZZ", + * }); + * export const testPool = { + * service_name: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool => testPoolPostgresSqlConnectionPool.serviceName), + * cluster_id: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool => testPoolPostgresSqlConnectionPool.clusterId), + * name: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool => testPoolPostgresSqlConnectionPool.name), + * database_id: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool => testPoolPostgresSqlConnectionPool.databaseId), + * mode: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool => testPoolPostgresSqlConnectionPool.mode), + * size: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool => testPoolPostgresSqlConnectionPool.size), + * port: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool => testPoolPostgresSqlConnectionPool.port), + * ssl_mode: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool => testPoolPostgresSqlConnectionPool.sslMode), + * uri: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool => testPoolPostgresSqlConnectionPool.uri), + * user_id: testPoolPostgresSqlConnectionPool.then(testPoolPostgresSqlConnectionPool => testPoolPostgresSqlConnectionPool.userId), + * }; + * ``` + */ +export function getPostgresSqlConnectionPoolOutput(args: GetPostgresSqlConnectionPoolOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getPostgresSqlConnectionPool(a, opts)) +} + +/** + * A collection of arguments for invoking getPostgresSqlConnectionPool. + */ +export interface GetPostgresSqlConnectionPoolOutputArgs { + /** + * Cluster ID. + */ + clusterId: pulumi.Input; + /** + * Name of the Connection pool. + */ + name: pulumi.Input; + /** + * The id of the public cloud project. If omitted, + * the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + */ + serviceName: pulumi.Input; +} diff --git a/sdk/nodejs/cloudprojectdatabase/index.ts b/sdk/nodejs/cloudprojectdatabase/index.ts index 0dc965e1..f7ebee8d 100644 --- a/sdk/nodejs/cloudprojectdatabase/index.ts +++ b/sdk/nodejs/cloudprojectdatabase/index.ts @@ -90,6 +90,11 @@ export const getKafkaUserAccess: typeof import("./getKafkaUserAccess").getKafkaU export const getKafkaUserAccessOutput: typeof import("./getKafkaUserAccess").getKafkaUserAccessOutput = null as any; utilities.lazyLoad(exports, ["getKafkaUserAccess","getKafkaUserAccessOutput"], () => require("./getKafkaUserAccess")); +export { GetPostgresSqlConnectionPoolArgs, GetPostgresSqlConnectionPoolResult, GetPostgresSqlConnectionPoolOutputArgs } from "./getPostgresSqlConnectionPool"; +export const getPostgresSqlConnectionPool: typeof import("./getPostgresSqlConnectionPool").getPostgresSqlConnectionPool = null as any; +export const getPostgresSqlConnectionPoolOutput: typeof import("./getPostgresSqlConnectionPool").getPostgresSqlConnectionPoolOutput = null as any; +utilities.lazyLoad(exports, ["getPostgresSqlConnectionPool","getPostgresSqlConnectionPoolOutput"], () => require("./getPostgresSqlConnectionPool")); + export { GetPostgresSqlUserArgs, GetPostgresSqlUserResult, GetPostgresSqlUserOutputArgs } from "./getPostgresSqlUser"; export const getPostgresSqlUser: typeof import("./getPostgresSqlUser").getPostgresSqlUser = null as any; export const getPostgresSqlUserOutput: typeof import("./getPostgresSqlUser").getPostgresSqlUserOutput = null as any; @@ -155,6 +160,11 @@ export type OpensearchUser = import("./opensearchUser").OpensearchUser; export const OpensearchUser: typeof import("./opensearchUser").OpensearchUser = null as any; utilities.lazyLoad(exports, ["OpensearchUser"], () => require("./opensearchUser")); +export { PostgresSqlConnectionPoolArgs, PostgresSqlConnectionPoolState } from "./postgresSqlConnectionPool"; +export type PostgresSqlConnectionPool = import("./postgresSqlConnectionPool").PostgresSqlConnectionPool; +export const PostgresSqlConnectionPool: typeof import("./postgresSqlConnectionPool").PostgresSqlConnectionPool = null as any; +utilities.lazyLoad(exports, ["PostgresSqlConnectionPool"], () => require("./postgresSqlConnectionPool")); + export { PostgresSqlUserArgs, PostgresSqlUserState } from "./postgresSqlUser"; export type PostgresSqlUser = import("./postgresSqlUser").PostgresSqlUser; export const PostgresSqlUser: typeof import("./postgresSqlUser").PostgresSqlUser = null as any; @@ -197,6 +207,8 @@ const _module = { return new OpensearchPattern(name, undefined, { urn }) case "ovh:CloudProjectDatabase/opensearchUser:OpensearchUser": return new OpensearchUser(name, undefined, { urn }) + case "ovh:CloudProjectDatabase/postgresSqlConnectionPool:PostgresSqlConnectionPool": + return new PostgresSqlConnectionPool(name, undefined, { urn }) case "ovh:CloudProjectDatabase/postgresSqlUser:PostgresSqlUser": return new PostgresSqlUser(name, undefined, { urn }) case "ovh:CloudProjectDatabase/redisUser:RedisUser": @@ -219,6 +231,7 @@ pulumi.runtime.registerResourceModule("ovh", "CloudProjectDatabase/m3DbUser", _m pulumi.runtime.registerResourceModule("ovh", "CloudProjectDatabase/mongoDbUser", _module) pulumi.runtime.registerResourceModule("ovh", "CloudProjectDatabase/opensearchPattern", _module) pulumi.runtime.registerResourceModule("ovh", "CloudProjectDatabase/opensearchUser", _module) +pulumi.runtime.registerResourceModule("ovh", "CloudProjectDatabase/postgresSqlConnectionPool", _module) pulumi.runtime.registerResourceModule("ovh", "CloudProjectDatabase/postgresSqlUser", _module) pulumi.runtime.registerResourceModule("ovh", "CloudProjectDatabase/redisUser", _module) pulumi.runtime.registerResourceModule("ovh", "CloudProjectDatabase/user", _module) diff --git a/sdk/nodejs/cloudprojectdatabase/integration.ts b/sdk/nodejs/cloudprojectdatabase/integration.ts index a5cde2e1..34e0812e 100644 --- a/sdk/nodejs/cloudprojectdatabase/integration.ts +++ b/sdk/nodejs/cloudprojectdatabase/integration.ts @@ -42,10 +42,12 @@ import * as utilities from "../utilities"; * * ## Import * - * OVHcloud Managed database clusters users can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the user, separated by "/" E.g., bash + * OVHcloud Managed database clusters users can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the user, separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:CloudProjectDatabase/integration:Integration my_user service_name/engine/cluster_id/id + * $ pulumi import ovh:CloudProjectDatabase/integration:Integration my_user service_name/engine/cluster_id/id * ``` */ export class Integration extends pulumi.CustomResource { diff --git a/sdk/nodejs/cloudprojectdatabase/ipRestriction.ts b/sdk/nodejs/cloudprojectdatabase/ipRestriction.ts index bfaf4724..2fc916fe 100644 --- a/sdk/nodejs/cloudprojectdatabase/ipRestriction.ts +++ b/sdk/nodejs/cloudprojectdatabase/ipRestriction.ts @@ -29,10 +29,12 @@ import * as utilities from "../utilities"; * * ## Import * - * OVHcloud Managed database cluster IP restrictions can be imported using the `service_name`, `engine`, `cluster_id` and the `ip`, separated by "/" E.g., bash + * OVHcloud Managed database cluster IP restrictions can be imported using the `service_name`, `engine`, `cluster_id` and the `ip`, separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:CloudProjectDatabase/ipRestriction:IpRestriction my_ip_restriction service_name/engine/cluster_id/178.97.6.0/24 + * $ pulumi import ovh:CloudProjectDatabase/ipRestriction:IpRestriction my_ip_restriction service_name/engine/cluster_id/178.97.6.0/24 * ``` */ export class IpRestriction extends pulumi.CustomResource { diff --git a/sdk/nodejs/cloudprojectdatabase/kafkaAcl.ts b/sdk/nodejs/cloudprojectdatabase/kafkaAcl.ts index 3c950bab..8d19e573 100644 --- a/sdk/nodejs/cloudprojectdatabase/kafkaAcl.ts +++ b/sdk/nodejs/cloudprojectdatabase/kafkaAcl.ts @@ -30,10 +30,12 @@ import * as utilities from "../utilities"; * * ## Import * - * OVHcloud Managed kafka clusters ACLs can be imported using the `service_name`, `cluster_id` and `id` of the acl, separated by "/" E.g., bash + * OVHcloud Managed kafka clusters ACLs can be imported using the `service_name`, `cluster_id` and `id` of the acl, separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:CloudProjectDatabase/kafkaAcl:KafkaAcl my_acl service_name/cluster_id/id + * $ pulumi import ovh:CloudProjectDatabase/kafkaAcl:KafkaAcl my_acl service_name/cluster_id/id * ``` */ export class KafkaAcl extends pulumi.CustomResource { diff --git a/sdk/nodejs/cloudprojectdatabase/kafkaSchemaRegistryAcl.ts b/sdk/nodejs/cloudprojectdatabase/kafkaSchemaRegistryAcl.ts index 81e4689c..7caff168 100644 --- a/sdk/nodejs/cloudprojectdatabase/kafkaSchemaRegistryAcl.ts +++ b/sdk/nodejs/cloudprojectdatabase/kafkaSchemaRegistryAcl.ts @@ -30,10 +30,12 @@ import * as utilities from "../utilities"; * * ## Import * - * OVHcloud 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., bash + * OVHcloud 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., + * + * bash * * ```sh - * $ pulumi import ovh:CloudProjectDatabase/kafkaSchemaRegistryAcl:KafkaSchemaRegistryAcl my_schemaRegistryAcl service_name/cluster_id/id + * $ pulumi import ovh:CloudProjectDatabase/kafkaSchemaRegistryAcl:KafkaSchemaRegistryAcl my_schemaRegistryAcl service_name/cluster_id/id * ``` */ export class KafkaSchemaRegistryAcl extends pulumi.CustomResource { diff --git a/sdk/nodejs/cloudprojectdatabase/kafkaTopic.ts b/sdk/nodejs/cloudprojectdatabase/kafkaTopic.ts index e160347f..20dbfc08 100644 --- a/sdk/nodejs/cloudprojectdatabase/kafkaTopic.ts +++ b/sdk/nodejs/cloudprojectdatabase/kafkaTopic.ts @@ -32,10 +32,12 @@ import * as utilities from "../utilities"; * * ## Import * - * OVHcloud Managed kafka clusters topics can be imported using the `service_name`, `cluster_id` and `id` of the topic, separated by "/" E.g., bash + * OVHcloud Managed kafka clusters topics can be imported using the `service_name`, `cluster_id` and `id` of the topic, separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:CloudProjectDatabase/kafkaTopic:KafkaTopic my_topic service_name/cluster_id/id + * $ pulumi import ovh:CloudProjectDatabase/kafkaTopic:KafkaTopic my_topic service_name/cluster_id/id * ``` */ export class KafkaTopic extends pulumi.CustomResource { diff --git a/sdk/nodejs/cloudprojectdatabase/m3dbNamespace.ts b/sdk/nodejs/cloudprojectdatabase/m3dbNamespace.ts index fdcf513f..c53bb91c 100644 --- a/sdk/nodejs/cloudprojectdatabase/m3dbNamespace.ts +++ b/sdk/nodejs/cloudprojectdatabase/m3dbNamespace.ts @@ -29,10 +29,12 @@ import * as utilities from "../utilities"; * * ## Import * - * OVHcloud Managed M3DB clusters namespaces can be imported using the `service_name`, `cluster_id` and `id` of the namespace, separated by "/" E.g., bash + * OVHcloud Managed M3DB clusters namespaces can be imported using the `service_name`, `cluster_id` and `id` of the namespace, separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:CloudProjectDatabase/m3DbNamespace:M3DbNamespace my_namespace service_name/cluster_id/id + * $ pulumi import ovh:CloudProjectDatabase/m3DbNamespace:M3DbNamespace my_namespace service_name/cluster_id/id * ``` */ export class M3DbNamespace extends pulumi.CustomResource { diff --git a/sdk/nodejs/cloudprojectdatabase/m3dbUser.ts b/sdk/nodejs/cloudprojectdatabase/m3dbUser.ts index 5e831350..a699e530 100644 --- a/sdk/nodejs/cloudprojectdatabase/m3dbUser.ts +++ b/sdk/nodejs/cloudprojectdatabase/m3dbUser.ts @@ -7,10 +7,12 @@ import * as utilities from "../utilities"; /** * ## Import * - * OVHcloud Managed M3DB clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., bash + * OVHcloud Managed M3DB clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:CloudProjectDatabase/m3DbUser:M3DbUser my_user service_name/cluster_id/id + * $ pulumi import ovh:CloudProjectDatabase/m3DbUser:M3DbUser my_user service_name/cluster_id/id * ``` */ export class M3DbUser extends pulumi.CustomResource { diff --git a/sdk/nodejs/cloudprojectdatabase/mongoDbUser.ts b/sdk/nodejs/cloudprojectdatabase/mongoDbUser.ts index 2c913b73..a7434451 100644 --- a/sdk/nodejs/cloudprojectdatabase/mongoDbUser.ts +++ b/sdk/nodejs/cloudprojectdatabase/mongoDbUser.ts @@ -7,10 +7,12 @@ import * as utilities from "../utilities"; /** * ## Import * - * OVHcloud Managed MongoDB clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., bash + * OVHcloud Managed MongoDB clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:CloudProjectDatabase/mongoDbUser:MongoDbUser my_user service_name/cluster_id/id + * $ pulumi import ovh:CloudProjectDatabase/mongoDbUser:MongoDbUser my_user service_name/cluster_id/id * ``` */ export class MongoDbUser extends pulumi.CustomResource { @@ -62,8 +64,25 @@ export class MongoDbUser extends pulumi.CustomResource { */ public readonly passwordReset!: pulumi.Output; /** - * Roles the user belongs to. + * Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles * Available roles: + * * `backup@admin` + * * `clusterAdmin@admin` + * * `clusterManager@admin` + * * `clusterMonitor@admin` + * * `dbAdmin@(defined db)` + * * `dbAdminAnyDatabase@admin` + * * `dbOwner@(defined db)` + * * `enableSharding@(defined db)` + * * `hostManager@admin` + * * `read@(defined db)` + * * `readAnyDatabase@admin` + * * `readWrite@(defined db)` + * * `readWriteAnyDatabase@admin` + * * `restore@admin` + * * `root@admin` + * * `userAdmin@(defined db)` + * * `userAdminAnyDatabase@admin` */ public readonly roles!: pulumi.Output; /** @@ -146,8 +165,25 @@ export interface MongoDbUserState { */ passwordReset?: pulumi.Input; /** - * Roles the user belongs to. + * Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles * Available roles: + * * `backup@admin` + * * `clusterAdmin@admin` + * * `clusterManager@admin` + * * `clusterMonitor@admin` + * * `dbAdmin@(defined db)` + * * `dbAdminAnyDatabase@admin` + * * `dbOwner@(defined db)` + * * `enableSharding@(defined db)` + * * `hostManager@admin` + * * `read@(defined db)` + * * `readAnyDatabase@admin` + * * `readWrite@(defined db)` + * * `readWriteAnyDatabase@admin` + * * `restore@admin` + * * `root@admin` + * * `userAdmin@(defined db)` + * * `userAdminAnyDatabase@admin` */ roles?: pulumi.Input[]>; /** @@ -178,8 +214,25 @@ export interface MongoDbUserArgs { */ passwordReset?: pulumi.Input; /** - * Roles the user belongs to. + * Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles * Available roles: + * * `backup@admin` + * * `clusterAdmin@admin` + * * `clusterManager@admin` + * * `clusterMonitor@admin` + * * `dbAdmin@(defined db)` + * * `dbAdminAnyDatabase@admin` + * * `dbOwner@(defined db)` + * * `enableSharding@(defined db)` + * * `hostManager@admin` + * * `read@(defined db)` + * * `readAnyDatabase@admin` + * * `readWrite@(defined db)` + * * `readWriteAnyDatabase@admin` + * * `restore@admin` + * * `root@admin` + * * `userAdmin@(defined db)` + * * `userAdminAnyDatabase@admin` */ roles?: pulumi.Input[]>; /** diff --git a/sdk/nodejs/cloudprojectdatabase/opensearchPattern.ts b/sdk/nodejs/cloudprojectdatabase/opensearchPattern.ts index ccdc1ea5..2752fc67 100644 --- a/sdk/nodejs/cloudprojectdatabase/opensearchPattern.ts +++ b/sdk/nodejs/cloudprojectdatabase/opensearchPattern.ts @@ -29,10 +29,12 @@ import * as utilities from "../utilities"; * * ## Import * - * OVHcloud Managed opensearch clusters patterns can be imported using the `service_name`, `cluster_id` and `id` of the pattern, separated by "/" E.g., bash + * OVHcloud Managed opensearch clusters patterns can be imported using the `service_name`, `cluster_id` and `id` of the pattern, separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:CloudProjectDatabase/opensearchPattern:OpensearchPattern my_pattern service_name/cluster_id/id + * $ pulumi import ovh:CloudProjectDatabase/opensearchPattern:OpensearchPattern my_pattern service_name/cluster_id/id * ``` */ export class OpensearchPattern extends pulumi.CustomResource { diff --git a/sdk/nodejs/cloudprojectdatabase/opensearchUser.ts b/sdk/nodejs/cloudprojectdatabase/opensearchUser.ts index dfdd895b..68136dad 100644 --- a/sdk/nodejs/cloudprojectdatabase/opensearchUser.ts +++ b/sdk/nodejs/cloudprojectdatabase/opensearchUser.ts @@ -9,10 +9,12 @@ import * as utilities from "../utilities"; /** * ## Import * - * OVHcloud Managed OpenSearch clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., bash + * OVHcloud Managed OpenSearch clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:CloudProjectDatabase/opensearchUser:OpensearchUser my_user service_name/cluster_id/id + * $ pulumi import ovh:CloudProjectDatabase/opensearchUser:OpensearchUser my_user service_name/cluster_id/id * ``` */ export class OpensearchUser extends pulumi.CustomResource { diff --git a/sdk/nodejs/cloudprojectdatabase/postgresSqlConnectionPool.ts b/sdk/nodejs/cloudprojectdatabase/postgresSqlConnectionPool.ts new file mode 100644 index 00000000..2f32a641 --- /dev/null +++ b/sdk/nodejs/cloudprojectdatabase/postgresSqlConnectionPool.ts @@ -0,0 +1,227 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * ## Import + * + * OVHcloud Managed PostgreSQL clusters connection pools can be imported using the `service_name`, `cluster_id` and `id` of the connection pool, separated by "/" E.g., + * + * bash + * + * ```sh + * $ pulumi import ovh:CloudProjectDatabase/postgresSqlConnectionPool:PostgresSqlConnectionPool my_connection_pool service_name/cluster_id/id + * ``` + */ +export class PostgresSqlConnectionPool extends pulumi.CustomResource { + /** + * Get an existing PostgresSqlConnectionPool resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: PostgresSqlConnectionPoolState, opts?: pulumi.CustomResourceOptions): PostgresSqlConnectionPool { + return new PostgresSqlConnectionPool(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'ovh:CloudProjectDatabase/postgresSqlConnectionPool:PostgresSqlConnectionPool'; + + /** + * Returns true if the given object is an instance of PostgresSqlConnectionPool. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is PostgresSqlConnectionPool { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === PostgresSqlConnectionPool.__pulumiType; + } + + /** + * Cluster ID. + */ + public readonly clusterId!: pulumi.Output; + /** + * Database ID for a database that belongs to the Database cluster given above. + */ + public readonly databaseId!: pulumi.Output; + /** + * Connection mode to the connection pool + * Available modes: + */ + public readonly mode!: pulumi.Output; + /** + * Name of the connection pool. + */ + public readonly name!: pulumi.Output; + /** + * Port of the connection pool. + */ + public /*out*/ readonly port!: pulumi.Output; + /** + * The id of the public cloud project. If omitted, + * the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + */ + public readonly serviceName!: pulumi.Output; + /** + * Size of the connection pool. + */ + public readonly size!: pulumi.Output; + /** + * Ssl connection mode for the pool. + */ + public /*out*/ readonly sslMode!: pulumi.Output; + /** + * Connection URI to the pool. + */ + public /*out*/ readonly uri!: pulumi.Output; + /** + * Database user authorized to connect to the pool, if none all the users are allowed. + */ + public readonly userId!: pulumi.Output; + + /** + * Create a PostgresSqlConnectionPool resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: PostgresSqlConnectionPoolArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: PostgresSqlConnectionPoolArgs | PostgresSqlConnectionPoolState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as PostgresSqlConnectionPoolState | undefined; + resourceInputs["clusterId"] = state ? state.clusterId : undefined; + resourceInputs["databaseId"] = state ? state.databaseId : undefined; + resourceInputs["mode"] = state ? state.mode : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["port"] = state ? state.port : undefined; + resourceInputs["serviceName"] = state ? state.serviceName : undefined; + resourceInputs["size"] = state ? state.size : undefined; + resourceInputs["sslMode"] = state ? state.sslMode : undefined; + resourceInputs["uri"] = state ? state.uri : undefined; + resourceInputs["userId"] = state ? state.userId : undefined; + } else { + const args = argsOrState as PostgresSqlConnectionPoolArgs | undefined; + if ((!args || args.clusterId === undefined) && !opts.urn) { + throw new Error("Missing required property 'clusterId'"); + } + if ((!args || args.databaseId === undefined) && !opts.urn) { + throw new Error("Missing required property 'databaseId'"); + } + if ((!args || args.mode === undefined) && !opts.urn) { + throw new Error("Missing required property 'mode'"); + } + if ((!args || args.serviceName === undefined) && !opts.urn) { + throw new Error("Missing required property 'serviceName'"); + } + if ((!args || args.size === undefined) && !opts.urn) { + throw new Error("Missing required property 'size'"); + } + resourceInputs["clusterId"] = args ? args.clusterId : undefined; + resourceInputs["databaseId"] = args ? args.databaseId : undefined; + resourceInputs["mode"] = args ? args.mode : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["serviceName"] = args ? args.serviceName : undefined; + resourceInputs["size"] = args ? args.size : undefined; + resourceInputs["userId"] = args ? args.userId : undefined; + resourceInputs["port"] = undefined /*out*/; + resourceInputs["sslMode"] = undefined /*out*/; + resourceInputs["uri"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(PostgresSqlConnectionPool.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering PostgresSqlConnectionPool resources. + */ +export interface PostgresSqlConnectionPoolState { + /** + * Cluster ID. + */ + clusterId?: pulumi.Input; + /** + * Database ID for a database that belongs to the Database cluster given above. + */ + databaseId?: pulumi.Input; + /** + * Connection mode to the connection pool + * Available modes: + */ + mode?: pulumi.Input; + /** + * Name of the connection pool. + */ + name?: pulumi.Input; + /** + * Port of the connection pool. + */ + port?: pulumi.Input; + /** + * The id of the public cloud project. If omitted, + * the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + */ + serviceName?: pulumi.Input; + /** + * Size of the connection pool. + */ + size?: pulumi.Input; + /** + * Ssl connection mode for the pool. + */ + sslMode?: pulumi.Input; + /** + * Connection URI to the pool. + */ + uri?: pulumi.Input; + /** + * Database user authorized to connect to the pool, if none all the users are allowed. + */ + userId?: pulumi.Input; +} + +/** + * The set of arguments for constructing a PostgresSqlConnectionPool resource. + */ +export interface PostgresSqlConnectionPoolArgs { + /** + * Cluster ID. + */ + clusterId: pulumi.Input; + /** + * Database ID for a database that belongs to the Database cluster given above. + */ + databaseId: pulumi.Input; + /** + * Connection mode to the connection pool + * Available modes: + */ + mode: pulumi.Input; + /** + * Name of the connection pool. + */ + name?: pulumi.Input; + /** + * The id of the public cloud project. If omitted, + * the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + */ + serviceName: pulumi.Input; + /** + * Size of the connection pool. + */ + size: pulumi.Input; + /** + * Database user authorized to connect to the pool, if none all the users are allowed. + */ + userId?: pulumi.Input; +} diff --git a/sdk/nodejs/cloudprojectdatabase/postgresSqlUser.ts b/sdk/nodejs/cloudprojectdatabase/postgresSqlUser.ts index 80c202ba..8fcfe13d 100644 --- a/sdk/nodejs/cloudprojectdatabase/postgresSqlUser.ts +++ b/sdk/nodejs/cloudprojectdatabase/postgresSqlUser.ts @@ -7,10 +7,12 @@ import * as utilities from "../utilities"; /** * ## Import * - * OVHcloud Managed PostgreSQL clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., bash + * OVHcloud Managed PostgreSQL clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:CloudProjectDatabase/postgresSqlUser:PostgresSqlUser my_user service_name/cluster_id/id + * $ pulumi import ovh:CloudProjectDatabase/postgresSqlUser:PostgresSqlUser my_user service_name/cluster_id/id * ``` */ export class PostgresSqlUser extends pulumi.CustomResource { diff --git a/sdk/nodejs/cloudprojectdatabase/redisUser.ts b/sdk/nodejs/cloudprojectdatabase/redisUser.ts index 44b60687..0ee7fcb5 100644 --- a/sdk/nodejs/cloudprojectdatabase/redisUser.ts +++ b/sdk/nodejs/cloudprojectdatabase/redisUser.ts @@ -7,10 +7,12 @@ import * as utilities from "../utilities"; /** * ## Import * - * OVHcloud Managed Redis clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., bash + * OVHcloud Managed Redis clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:CloudProjectDatabase/redisUser:RedisUser my_user service_name/cluster_id/id + * $ pulumi import ovh:CloudProjectDatabase/redisUser:RedisUser my_user service_name/cluster_id/id * ``` */ export class RedisUser extends pulumi.CustomResource { diff --git a/sdk/nodejs/cloudprojectdatabase/user.ts b/sdk/nodejs/cloudprojectdatabase/user.ts index 955e2d30..fc51e8e1 100644 --- a/sdk/nodejs/cloudprojectdatabase/user.ts +++ b/sdk/nodejs/cloudprojectdatabase/user.ts @@ -7,10 +7,12 @@ import * as utilities from "../utilities"; /** * ## Import * - * OVHcloud Managed database clusters users can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the user, separated by "/" E.g., bash + * OVHcloud Managed database clusters users can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the user, separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:CloudProjectDatabase/user:User my_user service_name/engine/cluster_id/id + * $ pulumi import ovh:CloudProjectDatabase/user:User my_user service_name/engine/cluster_id/id * ``` */ export class User extends pulumi.CustomResource { diff --git a/sdk/nodejs/dbaas/getLogsCluster.ts b/sdk/nodejs/dbaas/getLogsCluster.ts index 6e560792..4f032c35 100644 --- a/sdk/nodejs/dbaas/getLogsCluster.ts +++ b/sdk/nodejs/dbaas/getLogsCluster.ts @@ -46,10 +46,6 @@ export interface GetLogsClusterArgs { * A collection of values returned by getLogsCluster. */ export interface GetLogsClusterResult { - /** - * is the URN of the DBaas logs instance - */ - readonly DBaasURN: string; /** * is allowed networks for ARCHIVE flow type */ @@ -96,6 +92,10 @@ export interface GetLogsClusterResult { */ readonly region: string; readonly serviceName: string; + /** + * is the URN of the DBaas logs instance + */ + readonly urn: string; } /** * Use this data source to retrieve informations about a DBaas logs cluster tenant. diff --git a/sdk/nodejs/dbaas/logsCluster.ts b/sdk/nodejs/dbaas/logsCluster.ts index ef05657e..1b045b74 100644 --- a/sdk/nodejs/dbaas/logsCluster.ts +++ b/sdk/nodejs/dbaas/logsCluster.ts @@ -22,10 +22,12 @@ import * as utilities from "../utilities"; * * ## Import * - * OVHcloud DBaaS Log Data Platform clusters can be imported using the `service_name` and `cluster_id` of the cluster, separated by "/" E.g., bash + * OVHcloud DBaaS Log Data Platform clusters can be imported using the `service_name` and `cluster_id` of the cluster, separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:Dbaas/logsCluster:LogsCluster ldp service_name/cluster_id + * $ pulumi import ovh:Dbaas/logsCluster:LogsCluster ldp service_name/cluster_id * ``` */ export class LogsCluster extends pulumi.CustomResource { diff --git a/sdk/nodejs/dedicated/nasHAPartition.ts b/sdk/nodejs/dedicated/nasHAPartition.ts index 9c395acf..543dad85 100644 --- a/sdk/nodejs/dedicated/nasHAPartition.ts +++ b/sdk/nodejs/dedicated/nasHAPartition.ts @@ -25,7 +25,7 @@ import * as utilities from "../utilities"; * HA-NAS can be imported using the `{service_name}/{name}`, e.g. * * ```sh - * $ pulumi import ovh:Dedicated/nasHAPartition:NasHAPartition my-partition zpool-12345/my-partition` + * $ pulumi import ovh:Dedicated/nasHAPartition:NasHAPartition my-partition zpool-12345/my-partition` * ``` */ export class NasHAPartition extends pulumi.CustomResource { diff --git a/sdk/nodejs/dedicated/nasHAPartitionAccess.ts b/sdk/nodejs/dedicated/nasHAPartitionAccess.ts index ae04b1b4..04479ea4 100644 --- a/sdk/nodejs/dedicated/nasHAPartitionAccess.ts +++ b/sdk/nodejs/dedicated/nasHAPartitionAccess.ts @@ -26,7 +26,7 @@ import * as utilities from "../utilities"; * HA-NAS partition access can be imported using the `{service_name}/{partition_name}/{ip}`, e.g. * * ```sh - * $ pulumi import ovh:Dedicated/nasHAPartitionAccess:NasHAPartitionAccess my-partition zpool-12345/my-partition/123.123.123.123%2F32` + * $ pulumi import ovh:Dedicated/nasHAPartitionAccess:NasHAPartitionAccess my-partition zpool-12345/my-partition/123.123.123.123%2F32` * ``` */ export class NasHAPartitionAccess extends pulumi.CustomResource { diff --git a/sdk/nodejs/dedicated/nasHAPartitionSnapshot.ts b/sdk/nodejs/dedicated/nasHAPartitionSnapshot.ts index 4fb4781d..b28f3732 100644 --- a/sdk/nodejs/dedicated/nasHAPartitionSnapshot.ts +++ b/sdk/nodejs/dedicated/nasHAPartitionSnapshot.ts @@ -25,7 +25,7 @@ import * as utilities from "../utilities"; * HA-NAS partition snapshot can be imported using the `{service_name}/{partition_name}/{type}`, e.g. * * ```sh - * $ pulumi import ovh:Dedicated/nasHAPartitionSnapshot:NasHAPartitionSnapshot my-partition zpool-12345/my-partition/day-3` + * $ pulumi import ovh:Dedicated/nasHAPartitionSnapshot:NasHAPartitionSnapshot my-partition zpool-12345/my-partition/day-3` * ``` */ export class NasHAPartitionSnapshot extends pulumi.CustomResource { diff --git a/sdk/nodejs/dedicated/serverInstallTask.ts b/sdk/nodejs/dedicated/serverInstallTask.ts index 1035154b..f3f1cab5 100644 --- a/sdk/nodejs/dedicated/serverInstallTask.ts +++ b/sdk/nodejs/dedicated/serverInstallTask.ts @@ -44,10 +44,12 @@ import * as utilities from "../utilities"; * * Installation task can be imported using the `service_name` (`nsXXXX.ip...`) of the baremetal server, the `template_name` used * - * and ths `task_id`, separated by "/" E.g., bash + * and ths `task_id`, separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:Dedicated/serverInstallTask:ServerInstallTask ovh_dedicated_server_install_task nsXXXX.ipXXXX/template_name/12345 + * $ pulumi import ovh:Dedicated/serverInstallTask:ServerInstallTask ovh_dedicated_server_install_task nsXXXX.ipXXXX/template_name/12345 * ``` */ export class ServerInstallTask extends pulumi.CustomResource { diff --git a/sdk/nodejs/dedicated/serverUpdate.ts b/sdk/nodejs/dedicated/serverUpdate.ts index eb16f568..34033429 100644 --- a/sdk/nodejs/dedicated/serverUpdate.ts +++ b/sdk/nodejs/dedicated/serverUpdate.ts @@ -57,6 +57,10 @@ export class ServerUpdate extends pulumi.CustomResource { * boot id of the server */ public readonly bootId!: pulumi.Output; + /** + * boot script of the server + */ + public readonly bootScript!: pulumi.Output; /** * Icmp monitoring state */ @@ -84,6 +88,7 @@ export class ServerUpdate extends pulumi.CustomResource { if (opts.id) { const state = argsOrState as ServerUpdateState | undefined; resourceInputs["bootId"] = state ? state.bootId : undefined; + resourceInputs["bootScript"] = state ? state.bootScript : undefined; resourceInputs["monitoring"] = state ? state.monitoring : undefined; resourceInputs["serviceName"] = state ? state.serviceName : undefined; resourceInputs["state"] = state ? state.state : undefined; @@ -93,6 +98,7 @@ export class ServerUpdate extends pulumi.CustomResource { throw new Error("Missing required property 'serviceName'"); } resourceInputs["bootId"] = args ? args.bootId : undefined; + resourceInputs["bootScript"] = args ? args.bootScript : undefined; resourceInputs["monitoring"] = args ? args.monitoring : undefined; resourceInputs["serviceName"] = args ? args.serviceName : undefined; resourceInputs["state"] = args ? args.state : undefined; @@ -110,6 +116,10 @@ export interface ServerUpdateState { * boot id of the server */ bootId?: pulumi.Input; + /** + * boot script of the server + */ + bootScript?: pulumi.Input; /** * Icmp monitoring state */ @@ -132,6 +142,10 @@ export interface ServerUpdateArgs { * boot id of the server */ bootId?: pulumi.Input; + /** + * boot script of the server + */ + bootScript?: pulumi.Input; /** * Icmp monitoring state */ diff --git a/sdk/nodejs/domain/zone.ts b/sdk/nodejs/domain/zone.ts index 6a63d314..8f461bbc 100644 --- a/sdk/nodejs/domain/zone.ts +++ b/sdk/nodejs/domain/zone.ts @@ -48,10 +48,10 @@ import * as utilities from "../utilities"; * * Zone can be imported using the `order_id` that can be retrieved in the [order page](https://www.ovh.com/manager/#/dedicated/billing/orders/orders) at the creation time of the zone. * - * bash + * bash * * ```sh - * $ pulumi import ovh:Domain/zone:Zone zone order_id + * $ pulumi import ovh:Domain/zone:Zone zone order_id * ``` */ export class Zone extends pulumi.CustomResource { diff --git a/sdk/nodejs/domain/zoneRecord.ts b/sdk/nodejs/domain/zoneRecord.ts index 0f735fb0..7b9df377 100644 --- a/sdk/nodejs/domain/zoneRecord.ts +++ b/sdk/nodejs/domain/zoneRecord.ts @@ -23,10 +23,12 @@ import * as utilities from "../utilities"; * * ## Import * - * OVHcloud 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., bash + * OVHcloud 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., + * + * bash * * ```sh - * $ pulumi import ovh:Domain/zoneRecord:ZoneRecord test id.zone + * $ pulumi import ovh:Domain/zoneRecord:ZoneRecord test id.zone * ``` */ export class ZoneRecord extends pulumi.CustomResource { diff --git a/sdk/nodejs/getServer.ts b/sdk/nodejs/getServer.ts index 7107081e..51dd0fe2 100644 --- a/sdk/nodejs/getServer.ts +++ b/sdk/nodejs/getServer.ts @@ -50,6 +50,10 @@ export interface GetServerResult { * boot id of the server */ readonly bootId: number; + /** + * boot script of the server + */ + readonly bootScript: string; /** * dedicated server commercial range */ diff --git a/sdk/nodejs/iam/getPermissionsGroup.ts b/sdk/nodejs/iam/getPermissionsGroup.ts new file mode 100644 index 00000000..cbd54d7a --- /dev/null +++ b/sdk/nodejs/iam/getPermissionsGroup.ts @@ -0,0 +1,61 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +export function getPermissionsGroup(args: GetPermissionsGroupArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("ovh:Iam/getPermissionsGroup:getPermissionsGroup", { + "allows": args.allows, + "denies": args.denies, + "description": args.description, + "excepts": args.excepts, + "updatedAt": args.updatedAt, + "urn": args.urn, + }, opts); +} + +/** + * A collection of arguments for invoking getPermissionsGroup. + */ +export interface GetPermissionsGroupArgs { + allows?: string[]; + denies?: string[]; + description?: string; + excepts?: string[]; + updatedAt?: string; + urn: string; +} + +/** + * A collection of values returned by getPermissionsGroup. + */ +export interface GetPermissionsGroupResult { + readonly allows?: string[]; + readonly createdAt: string; + readonly denies?: string[]; + readonly description?: string; + readonly excepts?: string[]; + readonly id: string; + readonly name: string; + readonly owner: string; + readonly updatedAt: string; + readonly urn: string; +} +export function getPermissionsGroupOutput(args: GetPermissionsGroupOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getPermissionsGroup(a, opts)) +} + +/** + * A collection of arguments for invoking getPermissionsGroup. + */ +export interface GetPermissionsGroupOutputArgs { + allows?: pulumi.Input[]>; + denies?: pulumi.Input[]>; + description?: pulumi.Input; + excepts?: pulumi.Input[]>; + updatedAt?: pulumi.Input; + urn: pulumi.Input; +} diff --git a/sdk/nodejs/iam/getPermissionsGroups.ts b/sdk/nodejs/iam/getPermissionsGroups.ts new file mode 100644 index 00000000..1d624b46 --- /dev/null +++ b/sdk/nodejs/iam/getPermissionsGroups.ts @@ -0,0 +1,54 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * Use this data source to retrieve an IAM permissions group. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as ovh from "@pulumi/ovh"; + * + * const website = ovh.Iam.getPermissionsGroup({ + * urn: "urn:v1:eu:permissionsGroup:ovh:controlPanelAccess", + * }); + * ``` + */ +export function getPermissionsGroups(opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("ovh:Iam/getPermissionsGroups:getPermissionsGroups", { + }, opts); +} + +/** + * A collection of values returned by getPermissionsGroups. + */ +export interface GetPermissionsGroupsResult { + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + readonly urns: string[]; +} +/** + * Use this data source to retrieve an IAM permissions group. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as ovh from "@pulumi/ovh"; + * + * const website = ovh.Iam.getPermissionsGroup({ + * urn: "urn:v1:eu:permissionsGroup:ovh:controlPanelAccess", + * }); + * ``` + */ +export function getPermissionsGroupsOutput(opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(getPermissionsGroups(opts)) +} diff --git a/sdk/nodejs/iam/getPolicy.ts b/sdk/nodejs/iam/getPolicy.ts index ae7a2f7d..b0364db3 100644 --- a/sdk/nodejs/iam/getPolicy.ts +++ b/sdk/nodejs/iam/getPolicy.ts @@ -27,6 +27,7 @@ export function getPolicy(args: GetPolicyArgs, opts?: pulumi.InvokeOptions): Pro "description": args.description, "excepts": args.excepts, "id": args.id, + "permissionsGroups": args.permissionsGroups, }, opts); } @@ -35,11 +36,11 @@ export function getPolicy(args: GetPolicyArgs, opts?: pulumi.InvokeOptions): Pro */ export interface GetPolicyArgs { /** - * List of actions allowed by the policy. + * Set of actions allowed by the policy. */ allows?: string[]; /** - * List of actions that will be denied no matter what policy exists. + * Set of actions that will be denied no matter what policy exists. */ denies?: string[]; /** @@ -47,13 +48,17 @@ export interface GetPolicyArgs { */ description?: string; /** - * List of actions that will be subtracted from the `allow` list. + * Set of actions that will be subtracted from the `allow` list. */ excepts?: string[]; /** * UUID of the policy. */ id: string; + /** + * Set of permissions groups that apply to the policy. + */ + permissionsGroups?: string[]; } /** @@ -61,7 +66,7 @@ export interface GetPolicyArgs { */ export interface GetPolicyResult { /** - * List of actions allowed by the policy. + * Set of actions allowed by the policy. */ readonly allows?: string[]; /** @@ -69,7 +74,7 @@ export interface GetPolicyResult { */ readonly createdAt: string; /** - * List of actions that will be denied no matter what policy exists. + * Set of actions that will be denied no matter what policy exists. */ readonly denies?: string[]; /** @@ -77,12 +82,12 @@ export interface GetPolicyResult { */ readonly description?: string; /** - * List of actions that will be subtracted from the `allow` list. + * Set of actions that will be subtracted from the `allow` list. */ readonly excepts?: string[]; readonly id: string; /** - * List of identities affected by the policy. + * Set of identities affected by the policy. */ readonly identities: string[]; /** @@ -93,12 +98,16 @@ export interface GetPolicyResult { * Owner of the policy. */ readonly owner: string; + /** + * Set of permissions groups that apply to the policy. + */ + readonly permissionsGroups?: string[]; /** * Indicates that the policy is a default one. */ readonly readOnly: boolean; /** - * List of resources affected by the policy. + * Set of resources affected by the policy. */ readonly resources: string[]; /** @@ -129,11 +138,11 @@ export function getPolicyOutput(args: GetPolicyOutputArgs, opts?: pulumi.InvokeO */ export interface GetPolicyOutputArgs { /** - * List of actions allowed by the policy. + * Set of actions allowed by the policy. */ allows?: pulumi.Input[]>; /** - * List of actions that will be denied no matter what policy exists. + * Set of actions that will be denied no matter what policy exists. */ denies?: pulumi.Input[]>; /** @@ -141,11 +150,15 @@ export interface GetPolicyOutputArgs { */ description?: pulumi.Input; /** - * List of actions that will be subtracted from the `allow` list. + * Set of actions that will be subtracted from the `allow` list. */ excepts?: pulumi.Input[]>; /** * UUID of the policy. */ id: pulumi.Input; + /** + * Set of permissions groups that apply to the policy. + */ + permissionsGroups?: pulumi.Input[]>; } diff --git a/sdk/nodejs/iam/index.ts b/sdk/nodejs/iam/index.ts index 6a60fb86..ff8cec5b 100644 --- a/sdk/nodejs/iam/index.ts +++ b/sdk/nodejs/iam/index.ts @@ -5,6 +5,16 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; // Export members: +export { GetPermissionsGroupArgs, GetPermissionsGroupResult, GetPermissionsGroupOutputArgs } from "./getPermissionsGroup"; +export const getPermissionsGroup: typeof import("./getPermissionsGroup").getPermissionsGroup = null as any; +export const getPermissionsGroupOutput: typeof import("./getPermissionsGroup").getPermissionsGroupOutput = null as any; +utilities.lazyLoad(exports, ["getPermissionsGroup","getPermissionsGroupOutput"], () => require("./getPermissionsGroup")); + +export { GetPermissionsGroupsResult } from "./getPermissionsGroups"; +export const getPermissionsGroups: typeof import("./getPermissionsGroups").getPermissionsGroups = null as any; +export const getPermissionsGroupsOutput: typeof import("./getPermissionsGroups").getPermissionsGroupsOutput = null as any; +utilities.lazyLoad(exports, ["getPermissionsGroups","getPermissionsGroupsOutput"], () => require("./getPermissionsGroups")); + export { GetPoliciesResult } from "./getPolicies"; export const getPolicies: typeof import("./getPolicies").getPolicies = null as any; export const getPoliciesOutput: typeof import("./getPolicies").getPoliciesOutput = null as any; @@ -35,6 +45,11 @@ export const getResourceGroups: typeof import("./getResourceGroups").getResource export const getResourceGroupsOutput: typeof import("./getResourceGroups").getResourceGroupsOutput = null as any; utilities.lazyLoad(exports, ["getResourceGroups","getResourceGroupsOutput"], () => require("./getResourceGroups")); +export { PermissionsGroupArgs, PermissionsGroupState } from "./permissionsGroup"; +export type PermissionsGroup = import("./permissionsGroup").PermissionsGroup; +export const PermissionsGroup: typeof import("./permissionsGroup").PermissionsGroup = null as any; +utilities.lazyLoad(exports, ["PermissionsGroup"], () => require("./permissionsGroup")); + export { PolicyArgs, PolicyState } from "./policy"; export type Policy = import("./policy").Policy; export const Policy: typeof import("./policy").Policy = null as any; @@ -50,6 +65,8 @@ const _module = { version: utilities.getVersion(), construct: (name: string, type: string, urn: string): pulumi.Resource => { switch (type) { + case "ovh:Iam/permissionsGroup:PermissionsGroup": + return new PermissionsGroup(name, undefined, { urn }) case "ovh:Iam/policy:Policy": return new Policy(name, undefined, { urn }) case "ovh:Iam/resourceGroup:ResourceGroup": @@ -59,5 +76,6 @@ const _module = { } }, }; +pulumi.runtime.registerResourceModule("ovh", "Iam/permissionsGroup", _module) pulumi.runtime.registerResourceModule("ovh", "Iam/policy", _module) pulumi.runtime.registerResourceModule("ovh", "Iam/resourceGroup", _module) diff --git a/sdk/nodejs/iam/permissionsGroup.ts b/sdk/nodejs/iam/permissionsGroup.ts new file mode 100644 index 00000000..7b58e561 --- /dev/null +++ b/sdk/nodejs/iam/permissionsGroup.ts @@ -0,0 +1,187 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * Create am IAM permissions group. + */ +export class PermissionsGroup extends pulumi.CustomResource { + /** + * Get an existing PermissionsGroup resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: PermissionsGroupState, opts?: pulumi.CustomResourceOptions): PermissionsGroup { + return new PermissionsGroup(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'ovh:Iam/permissionsGroup:PermissionsGroup'; + + /** + * Returns true if the given object is an instance of PermissionsGroup. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is PermissionsGroup { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === PermissionsGroup.__pulumiType; + } + + /** + * Set of actions allowed by the permissions group. + */ + public readonly allows!: pulumi.Output; + /** + * Creation date of this group. + */ + public /*out*/ readonly createdAt!: pulumi.Output; + /** + * Set of actions that will be denied no matter what permissions group exists. + */ + public readonly denies!: pulumi.Output; + /** + * Group description. + */ + public readonly description!: pulumi.Output; + /** + * Set of actions that will be subtracted from the `allow` list. + */ + public readonly excepts!: pulumi.Output; + /** + * Name of the permissions group. + */ + public readonly name!: pulumi.Output; + /** + * Owner of the permissions group. + */ + public /*out*/ readonly owner!: pulumi.Output; + /** + * Date of the last update of this group. + */ + public readonly updatedAt!: pulumi.Output; + /** + * URN of the permissions group. + */ + public /*out*/ readonly urn!: pulumi.Output; + + /** + * Create a PermissionsGroup resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: PermissionsGroupArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: PermissionsGroupArgs | PermissionsGroupState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as PermissionsGroupState | undefined; + resourceInputs["allows"] = state ? state.allows : undefined; + resourceInputs["createdAt"] = state ? state.createdAt : undefined; + resourceInputs["denies"] = state ? state.denies : undefined; + resourceInputs["description"] = state ? state.description : undefined; + resourceInputs["excepts"] = state ? state.excepts : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["owner"] = state ? state.owner : undefined; + resourceInputs["updatedAt"] = state ? state.updatedAt : undefined; + resourceInputs["urn"] = state ? state.urn : undefined; + } else { + const args = argsOrState as PermissionsGroupArgs | undefined; + if ((!args || args.description === undefined) && !opts.urn) { + throw new Error("Missing required property 'description'"); + } + resourceInputs["allows"] = args ? args.allows : undefined; + resourceInputs["denies"] = args ? args.denies : undefined; + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["excepts"] = args ? args.excepts : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["updatedAt"] = args ? args.updatedAt : undefined; + resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["owner"] = undefined /*out*/; + resourceInputs["urn"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(PermissionsGroup.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering PermissionsGroup resources. + */ +export interface PermissionsGroupState { + /** + * Set of actions allowed by the permissions group. + */ + allows?: pulumi.Input[]>; + /** + * Creation date of this group. + */ + createdAt?: pulumi.Input; + /** + * Set of actions that will be denied no matter what permissions group exists. + */ + denies?: pulumi.Input[]>; + /** + * Group description. + */ + description?: pulumi.Input; + /** + * Set of actions that will be subtracted from the `allow` list. + */ + excepts?: pulumi.Input[]>; + /** + * Name of the permissions group. + */ + name?: pulumi.Input; + /** + * Owner of the permissions group. + */ + owner?: pulumi.Input; + /** + * Date of the last update of this group. + */ + updatedAt?: pulumi.Input; + /** + * URN of the permissions group. + */ + urn?: pulumi.Input; +} + +/** + * The set of arguments for constructing a PermissionsGroup resource. + */ +export interface PermissionsGroupArgs { + /** + * Set of actions allowed by the permissions group. + */ + allows?: pulumi.Input[]>; + /** + * Set of actions that will be denied no matter what permissions group exists. + */ + denies?: pulumi.Input[]>; + /** + * Group description. + */ + description: pulumi.Input; + /** + * Set of actions that will be subtracted from the `allow` list. + */ + excepts?: pulumi.Input[]>; + /** + * Name of the permissions group. + */ + name?: pulumi.Input; + /** + * Date of the last update of this group. + */ + updatedAt?: pulumi.Input; +} diff --git a/sdk/nodejs/iam/policy.ts b/sdk/nodejs/iam/policy.ts index b7d97c0a..0d2caca2 100644 --- a/sdk/nodejs/iam/policy.ts +++ b/sdk/nodejs/iam/policy.ts @@ -68,7 +68,7 @@ export class Policy extends pulumi.CustomResource { */ public /*out*/ readonly createdAt!: pulumi.Output; /** - * List of actions that will be denied no matter what policy exists. + * List of actions that will always be denied even if also allowed by this policy or another one. */ public readonly denies!: pulumi.Output; /** @@ -91,6 +91,10 @@ export class Policy extends pulumi.CustomResource { * Owner of the policy. */ public /*out*/ readonly owner!: pulumi.Output; + /** + * 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). + */ + public readonly permissionsGroups!: pulumi.Output; /** * Indicates that the policy is a default one. */ @@ -125,6 +129,7 @@ export class Policy extends pulumi.CustomResource { resourceInputs["identities"] = state ? state.identities : undefined; resourceInputs["name"] = state ? state.name : undefined; resourceInputs["owner"] = state ? state.owner : undefined; + resourceInputs["permissionsGroups"] = state ? state.permissionsGroups : undefined; resourceInputs["readOnly"] = state ? state.readOnly : undefined; resourceInputs["resources"] = state ? state.resources : undefined; resourceInputs["updatedAt"] = state ? state.updatedAt : undefined; @@ -142,6 +147,7 @@ export class Policy extends pulumi.CustomResource { resourceInputs["excepts"] = args ? args.excepts : undefined; resourceInputs["identities"] = args ? args.identities : undefined; resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["permissionsGroups"] = args ? args.permissionsGroups : undefined; resourceInputs["resources"] = args ? args.resources : undefined; resourceInputs["createdAt"] = undefined /*out*/; resourceInputs["owner"] = undefined /*out*/; @@ -166,7 +172,7 @@ export interface PolicyState { */ createdAt?: pulumi.Input; /** - * List of actions that will be denied no matter what policy exists. + * List of actions that will always be denied even if also allowed by this policy or another one. */ denies?: pulumi.Input[]>; /** @@ -189,6 +195,10 @@ export interface PolicyState { * Owner of the policy. */ owner?: pulumi.Input; + /** + * 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). + */ + permissionsGroups?: pulumi.Input[]>; /** * Indicates that the policy is a default one. */ @@ -212,7 +222,7 @@ export interface PolicyArgs { */ allows?: pulumi.Input[]>; /** - * List of actions that will be denied no matter what policy exists. + * List of actions that will always be denied even if also allowed by this policy or another one. */ denies?: pulumi.Input[]>; /** @@ -231,6 +241,10 @@ export interface PolicyArgs { * Name of the policy, must be unique */ name?: pulumi.Input; + /** + * 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). + */ + permissionsGroups?: pulumi.Input[]>; /** * List of resources affected by the policy */ diff --git a/sdk/nodejs/ip/reverse.ts b/sdk/nodejs/ip/reverse.ts index baf056e0..80c46194 100644 --- a/sdk/nodejs/ip/reverse.ts +++ b/sdk/nodejs/ip/reverse.ts @@ -23,10 +23,12 @@ import * as utilities from "../utilities"; * * ## Import * - * The resource can be imported using the `ip`, `ip_reverse` of the address, separated by "|" E.g., bash + * The resource can be imported using the `ip`, `ip_reverse` of the address, separated by "|" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:Ip/reverse:Reverse my_reverse '2001:0db8:c0ff:ee::/64|2001:0db8:c0ff:ee::42' + * $ pulumi import ovh:Ip/reverse:Reverse my_reverse '2001:0db8:c0ff:ee::/64|2001:0db8:c0ff:ee::42' * ``` */ export class Reverse extends pulumi.CustomResource { diff --git a/sdk/nodejs/me/apioauth2Client.ts b/sdk/nodejs/me/apioauth2Client.ts index e8508748..fc03676d 100644 --- a/sdk/nodejs/me/apioauth2Client.ts +++ b/sdk/nodejs/me/apioauth2Client.ts @@ -36,16 +36,20 @@ import * as utilities from "../utilities"; * * ## Import * - * OAuth2 clients can be imported using their `client_id`bash + * OAuth2 clients can be imported using their `client_id`: + * + * bash * * ```sh - * $ pulumi import ovh:Me/aPIOAuth2Client:APIOAuth2Client my_oauth2_client client_id + * $ pulumi import ovh:Me/aPIOAuth2Client:APIOAuth2Client my_oauth2_client client_id * ``` * - * Because 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 separatorbash + * Because 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: + * + * bash * * ```sh - * $ pulumi import ovh:Me/aPIOAuth2Client:APIOAuth2Client my_oauth2_client 'client_id|client_secret' + * $ pulumi import ovh:Me/aPIOAuth2Client:APIOAuth2Client my_oauth2_client 'client_id|client_secret' * ``` */ export class APIOAuth2Client extends pulumi.CustomResource { diff --git a/sdk/nodejs/me/installationTemplate.ts b/sdk/nodejs/me/installationTemplate.ts index 8facdb7d..0055a101 100644 --- a/sdk/nodejs/me/installationTemplate.ts +++ b/sdk/nodejs/me/installationTemplate.ts @@ -24,10 +24,12 @@ import * as utilities from "../utilities"; * * ## Import * - * Custom installation template available for dedicated servers can be imported using the `base_template_name`, `template_name` of the cluster, separated by "/" E.g., bash + * Custom installation template available for dedicated servers can be imported using the `base_template_name`, `template_name` of the cluster, separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:Me/installationTemplate:InstallationTemplate mytemplate base_template_name/template_name + * $ pulumi import ovh:Me/installationTemplate:InstallationTemplate mytemplate base_template_name/template_name * ``` */ export class InstallationTemplate extends pulumi.CustomResource { diff --git a/sdk/nodejs/me/installationTemplatePartitionScheme.ts b/sdk/nodejs/me/installationTemplatePartitionScheme.ts index a51f4327..e62e9f04 100644 --- a/sdk/nodejs/me/installationTemplatePartitionScheme.ts +++ b/sdk/nodejs/me/installationTemplatePartitionScheme.ts @@ -26,10 +26,12 @@ import * as utilities from "../utilities"; * * ## Import * - * The resource can be imported using the `template_name`, `name` of the cluster, separated by "/" E.g., bash + * The resource can be imported using the `template_name`, `name` of the cluster, separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:Me/installationTemplatePartitionScheme:InstallationTemplatePartitionScheme scheme template_name/name + * $ pulumi import ovh:Me/installationTemplatePartitionScheme:InstallationTemplatePartitionScheme scheme template_name/name * ``` */ export class InstallationTemplatePartitionScheme extends pulumi.CustomResource { diff --git a/sdk/nodejs/me/installationTemplatePartitionSchemeHardwareRaid.ts b/sdk/nodejs/me/installationTemplatePartitionSchemeHardwareRaid.ts index d4a6ab88..4c78b514 100644 --- a/sdk/nodejs/me/installationTemplatePartitionSchemeHardwareRaid.ts +++ b/sdk/nodejs/me/installationTemplatePartitionSchemeHardwareRaid.ts @@ -36,10 +36,12 @@ import * as utilities from "../utilities"; * * ## Import * - * The resource can be imported using the `template_name`, `scheme_name`, `name` of the cluster, separated by "/" E.g., bash + * The resource can be imported using the `template_name`, `scheme_name`, `name` of the cluster, separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:Me/installationTemplatePartitionSchemeHardwareRaid:InstallationTemplatePartitionSchemeHardwareRaid group1 template_name/scheme_name/name + * $ pulumi import ovh:Me/installationTemplatePartitionSchemeHardwareRaid:InstallationTemplatePartitionSchemeHardwareRaid group1 template_name/scheme_name/name * ``` */ export class InstallationTemplatePartitionSchemeHardwareRaid extends pulumi.CustomResource { diff --git a/sdk/nodejs/me/installationTemplatePartitionSchemePartition.ts b/sdk/nodejs/me/installationTemplatePartitionSchemePartition.ts index 11aca4e9..1b026c1d 100644 --- a/sdk/nodejs/me/installationTemplatePartitionSchemePartition.ts +++ b/sdk/nodejs/me/installationTemplatePartitionSchemePartition.ts @@ -35,10 +35,12 @@ import * as utilities from "../utilities"; * * ## Import * - * The resource can be imported using the `template_name`, `scheme_name`, `mountpoint` of the cluster, separated by "/" E.g., bash + * The resource can be imported using the `template_name`, `scheme_name`, `mountpoint` of the cluster, separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:Me/installationTemplatePartitionSchemePartition:InstallationTemplatePartitionSchemePartition root template_name/scheme_name/mountpoint + * $ pulumi import ovh:Me/installationTemplatePartitionSchemePartition:InstallationTemplatePartitionSchemePartition root template_name/scheme_name/mountpoint * ``` */ export class InstallationTemplatePartitionSchemePartition extends pulumi.CustomResource { diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index de696453..421a0156 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -14,6 +14,8 @@ }, "files": [ "cloudproject/containerRegistry.ts", + "cloudproject/containerRegistryIPRestrictionsManagement.ts", + "cloudproject/containerRegistryIPRestrictionsRegistry.ts", "cloudproject/containerRegistryOIDC.ts", "cloudproject/containerRegistryUser.ts", "cloudproject/database.ts", @@ -22,6 +24,8 @@ "cloudproject/getCapabilitiesContainerRegistry.ts", "cloudproject/getContainerRegistries.ts", "cloudproject/getContainerRegistry.ts", + "cloudproject/getContainerRegistryIPRestrictionsManagement.ts", + "cloudproject/getContainerRegistryIPRestrictionsRegistry.ts", "cloudproject/getContainerRegistryOIDC.ts", "cloudproject/getContainerRegistryUsers.ts", "cloudproject/getFailoverIpAttach.ts", @@ -77,6 +81,7 @@ "cloudprojectdatabase/getKafkaTopic.ts", "cloudprojectdatabase/getKafkaTopics.ts", "cloudprojectdatabase/getKafkaUserAccess.ts", + "cloudprojectdatabase/getPostgresSqlConnectionPool.ts", "cloudprojectdatabase/getPostgresSqlUser.ts", "cloudprojectdatabase/getUser.ts", "cloudprojectdatabase/getUsers.ts", @@ -91,6 +96,7 @@ "cloudprojectdatabase/mongoDbUser.ts", "cloudprojectdatabase/opensearchPattern.ts", "cloudprojectdatabase/opensearchUser.ts", + "cloudprojectdatabase/postgresSqlConnectionPool.ts", "cloudprojectdatabase/postgresSqlUser.ts", "cloudprojectdatabase/redisUser.ts", "cloudprojectdatabase/user.ts", @@ -136,6 +142,8 @@ "hosting/privateDatabaseDb.ts", "hosting/privateDatabaseUser.ts", "hosting/privateDatabaseUserGrant.ts", + "iam/getPermissionsGroup.ts", + "iam/getPermissionsGroups.ts", "iam/getPolicies.ts", "iam/getPolicy.ts", "iam/getReferenceActions.ts", @@ -143,6 +151,7 @@ "iam/getResourceGroup.ts", "iam/getResourceGroups.ts", "iam/index.ts", + "iam/permissionsGroup.ts", "iam/policy.ts", "iam/resourceGroup.ts", "index.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index 026b2987..3b1a23b6 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -259,34 +259,76 @@ export namespace CloudProject { } export interface GetKubeNodePoolTemplate { + /** + * metadata + */ metadata?: inputs.CloudProject.GetKubeNodePoolTemplateMetadata; + /** + * spec + */ spec?: inputs.CloudProject.GetKubeNodePoolTemplateSpec; } export interface GetKubeNodePoolTemplateArgs { + /** + * metadata + */ metadata?: pulumi.Input; + /** + * spec + */ spec?: pulumi.Input; } export interface GetKubeNodePoolTemplateMetadata { + /** + * annotations + */ annotations?: {[key: string]: string}; + /** + * finalizers + */ finalizers?: string[]; + /** + * labels + */ labels?: {[key: string]: string}; } export interface GetKubeNodePoolTemplateMetadataArgs { + /** + * annotations + */ annotations?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * finalizers + */ finalizers?: pulumi.Input[]>; + /** + * labels + */ labels?: pulumi.Input<{[key: string]: pulumi.Input}>; } export interface GetKubeNodePoolTemplateSpec { + /** + * taints + */ taints?: {[key: string]: any}[]; + /** + * unschedulable + */ unschedulable?: boolean; } export interface GetKubeNodePoolTemplateSpecArgs { + /** + * taints + */ taints?: pulumi.Input[]>; + /** + * unschedulable + */ unschedulable?: pulumi.Input; } @@ -413,7 +455,7 @@ export namespace CloudProject { export interface KubeNodePoolTemplateSpec { /** - * Taints to apply to each node + * Taints to apply to each node [NodeSpec kubernetes documentation](https://kubernetes.io/docs/reference/kubernetes-api/cluster-resources/node-v1/#NodeSpec) */ taints: pulumi.Input[]>; /** @@ -721,7 +763,13 @@ export namespace Dedicated { } export interface ServerNetworkingInterface { + /** + * Interface Mac address + */ macs: pulumi.Input[]>; + /** + * Interface type + */ type: pulumi.Input; } } diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 53d39ab0..6b40710f 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -401,18 +401,39 @@ export namespace CloudProject { } export interface GetKubeNodePoolTemplate { + /** + * metadata + */ metadata?: outputs.CloudProject.GetKubeNodePoolTemplateMetadata; + /** + * spec + */ spec?: outputs.CloudProject.GetKubeNodePoolTemplateSpec; } export interface GetKubeNodePoolTemplateMetadata { + /** + * annotations + */ annotations?: {[key: string]: string}; + /** + * finalizers + */ finalizers?: string[]; + /** + * labels + */ labels?: {[key: string]: string}; } export interface GetKubeNodePoolTemplateSpec { + /** + * taints + */ taints?: {[key: string]: any}[]; + /** + * unschedulable + */ unschedulable?: boolean; } @@ -679,7 +700,7 @@ export namespace CloudProject { export interface KubeNodePoolTemplateSpec { /** - * Taints to apply to each node + * Taints to apply to each node [NodeSpec kubernetes documentation](https://kubernetes.io/docs/reference/kubernetes-api/cluster-resources/node-v1/#NodeSpec) */ taints: {[key: string]: any}[]; /** @@ -1108,7 +1129,13 @@ export namespace Dedicated { } export interface ServerNetworkingInterface { + /** + * Interface Mac address + */ macs: string[]; + /** + * Interface type + */ type: string; } diff --git a/sdk/nodejs/vrack/cloudProject.ts b/sdk/nodejs/vrack/cloudProject.ts index 27d21136..5f45f07c 100644 --- a/sdk/nodejs/vrack/cloudProject.ts +++ b/sdk/nodejs/vrack/cloudProject.ts @@ -21,10 +21,12 @@ import * as utilities from "../utilities"; * * ## Import * - * Attachment of a public cloud project and a VRack can be imported using the `project_id`, the `service_name` (vRackID) and the `attach_id`, separated by "/" E.g., bash + * Attachment of a public cloud project and a VRack can be imported using the `project_id`, the `service_name` (vRackID) and the `attach_id`, separated by "/" E.g., + * + * bash * * ```sh - * $ pulumi import ovh:Vrack/cloudProject:CloudProject myattach ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678/vrack_pn-12345678-cloudproject_ookie9mee8Shaeghaeleeju7Xeghohv6e-attach + * $ pulumi import ovh:Vrack/cloudProject:CloudProject myattach ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678/vrack_pn-12345678-cloudproject_ookie9mee8Shaeghaeleeju7Xeghohv6e-attach * ``` */ export class CloudProject extends pulumi.CustomResource { diff --git a/sdk/nodejs/vrack/vrack.ts b/sdk/nodejs/vrack/vrack.ts index bac7165d..de6e2b4e 100644 --- a/sdk/nodejs/vrack/vrack.ts +++ b/sdk/nodejs/vrack/vrack.ts @@ -39,10 +39,10 @@ import * as utilities from "../utilities"; * * vRack can be imported using the `order_id` that can be retrieved in the [order page](https://www.ovh.com/manager/#/dedicated/billing/orders/orders). * - * bash + * bash * * ```sh - * $ pulumi import ovh:Vrack/vrack:Vrack vrack order_id + * $ pulumi import ovh:Vrack/vrack:Vrack vrack order_id * ``` */ export class Vrack extends pulumi.CustomResource { diff --git a/sdk/python/pulumi_ovh/__init__.py b/sdk/python/pulumi_ovh/__init__.py index b509e31d..2ac4c411 100644 --- a/sdk/python/pulumi_ovh/__init__.py +++ b/sdk/python/pulumi_ovh/__init__.py @@ -69,6 +69,22 @@ "ovh:CloudProject/containerRegistry:ContainerRegistry": "ContainerRegistry" } }, + { + "pkg": "ovh", + "mod": "CloudProject/containerRegistryIPRestrictionsManagement", + "fqn": "pulumi_ovh.cloudproject", + "classes": { + "ovh:CloudProject/containerRegistryIPRestrictionsManagement:ContainerRegistryIPRestrictionsManagement": "ContainerRegistryIPRestrictionsManagement" + } + }, + { + "pkg": "ovh", + "mod": "CloudProject/containerRegistryIPRestrictionsRegistry", + "fqn": "pulumi_ovh.cloudproject", + "classes": { + "ovh:CloudProject/containerRegistryIPRestrictionsRegistry:ContainerRegistryIPRestrictionsRegistry": "ContainerRegistryIPRestrictionsRegistry" + } + }, { "pkg": "ovh", "mod": "CloudProject/containerRegistryOIDC", @@ -285,6 +301,14 @@ "ovh:CloudProjectDatabase/opensearchUser:OpensearchUser": "OpensearchUser" } }, + { + "pkg": "ovh", + "mod": "CloudProjectDatabase/postgresSqlConnectionPool", + "fqn": "pulumi_ovh.cloudprojectdatabase", + "classes": { + "ovh:CloudProjectDatabase/postgresSqlConnectionPool:PostgresSqlConnectionPool": "PostgresSqlConnectionPool" + } + }, { "pkg": "ovh", "mod": "CloudProjectDatabase/postgresSqlUser", @@ -461,6 +485,14 @@ "ovh:Hosting/privateDatabaseUserGrant:PrivateDatabaseUserGrant": "PrivateDatabaseUserGrant" } }, + { + "pkg": "ovh", + "mod": "Iam/permissionsGroup", + "fqn": "pulumi_ovh.iam", + "classes": { + "ovh:Iam/permissionsGroup:PermissionsGroup": "PermissionsGroup" + } + }, { "pkg": "ovh", "mod": "Iam/policy", diff --git a/sdk/python/pulumi_ovh/_utilities.py b/sdk/python/pulumi_ovh/_utilities.py index 9cc2924f..91462903 100644 --- a/sdk/python/pulumi_ovh/_utilities.py +++ b/sdk/python/pulumi_ovh/_utilities.py @@ -4,11 +4,11 @@ import asyncio +import importlib.metadata import importlib.util import inspect import json import os -import pkg_resources import sys import typing @@ -72,7 +72,7 @@ def _get_semver_version(): # to receive a valid semver string when receiving requests from the language host, so it's our # responsibility as the library to convert our own PEP440 version into a valid semver string. - pep440_version_string = pkg_resources.require(root_package)[0].version + pep440_version_string = importlib.metadata.version(root_package) pep440_version = PEP440Version.parse(pep440_version_string) (major, minor, patch) = pep440_version.release prerelease = None diff --git a/sdk/python/pulumi_ovh/cloudproject/__init__.py b/sdk/python/pulumi_ovh/cloudproject/__init__.py index 7ea3f6e8..05887087 100644 --- a/sdk/python/pulumi_ovh/cloudproject/__init__.py +++ b/sdk/python/pulumi_ovh/cloudproject/__init__.py @@ -6,6 +6,8 @@ import typing # Export this package's modules as members: from .container_registry import * +from .container_registry_ip_restrictions_management import * +from .container_registry_ip_restrictions_registry import * from .container_registry_oidc import * from .container_registry_user import * from .database import * @@ -14,6 +16,8 @@ from .get_capabilities_container_registry import * from .get_container_registries import * from .get_container_registry import * +from .get_container_registry_ip_restrictions_management import * +from .get_container_registry_ip_restrictions_registry import * from .get_container_registry_oidc import * from .get_container_registry_users import * from .get_failover_ip_attach import * diff --git a/sdk/python/pulumi_ovh/cloudproject/_inputs.py b/sdk/python/pulumi_ovh/cloudproject/_inputs.py index a775ef62..40ef2ede 100644 --- a/sdk/python/pulumi_ovh/cloudproject/_inputs.py +++ b/sdk/python/pulumi_ovh/cloudproject/_inputs.py @@ -857,7 +857,7 @@ def __init__(__self__, *, taints: pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]], unschedulable: pulumi.Input[bool]): """ - :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]] taints: Taints to apply to each node + :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]] taints: Taints to apply to each node [NodeSpec kubernetes documentation](https://kubernetes.io/docs/reference/kubernetes-api/cluster-resources/node-v1/#NodeSpec) :param pulumi.Input[bool] unschedulable: If true, set nodes as un-schedulable """ pulumi.set(__self__, "taints", taints) @@ -867,7 +867,7 @@ def __init__(__self__, *, @pulumi.getter def taints(self) -> pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]: """ - Taints to apply to each node + Taints to apply to each node [NodeSpec kubernetes documentation](https://kubernetes.io/docs/reference/kubernetes-api/cluster-resources/node-v1/#NodeSpec) """ return pulumi.get(self, "taints") @@ -1832,6 +1832,10 @@ class GetKubeNodePoolTemplateArgs: def __init__(__self__, *, metadata: Optional['GetKubeNodePoolTemplateMetadataArgs'] = None, spec: Optional['GetKubeNodePoolTemplateSpecArgs'] = None): + """ + :param 'GetKubeNodePoolTemplateMetadataArgs' metadata: metadata + :param 'GetKubeNodePoolTemplateSpecArgs' spec: spec + """ if metadata is not None: pulumi.set(__self__, "metadata", metadata) if spec is not None: @@ -1840,6 +1844,9 @@ def __init__(__self__, *, @property @pulumi.getter def metadata(self) -> Optional['GetKubeNodePoolTemplateMetadataArgs']: + """ + metadata + """ return pulumi.get(self, "metadata") @metadata.setter @@ -1849,6 +1856,9 @@ def metadata(self, value: Optional['GetKubeNodePoolTemplateMetadataArgs']): @property @pulumi.getter def spec(self) -> Optional['GetKubeNodePoolTemplateSpecArgs']: + """ + spec + """ return pulumi.get(self, "spec") @spec.setter @@ -1862,6 +1872,11 @@ def __init__(__self__, *, annotations: Optional[Mapping[str, str]] = None, finalizers: Optional[Sequence[str]] = None, labels: Optional[Mapping[str, str]] = None): + """ + :param Mapping[str, str] annotations: annotations + :param Sequence[str] finalizers: finalizers + :param Mapping[str, str] labels: labels + """ if annotations is not None: pulumi.set(__self__, "annotations", annotations) if finalizers is not None: @@ -1872,6 +1887,9 @@ def __init__(__self__, *, @property @pulumi.getter def annotations(self) -> Optional[Mapping[str, str]]: + """ + annotations + """ return pulumi.get(self, "annotations") @annotations.setter @@ -1881,6 +1899,9 @@ def annotations(self, value: Optional[Mapping[str, str]]): @property @pulumi.getter def finalizers(self) -> Optional[Sequence[str]]: + """ + finalizers + """ return pulumi.get(self, "finalizers") @finalizers.setter @@ -1890,6 +1911,9 @@ def finalizers(self, value: Optional[Sequence[str]]): @property @pulumi.getter def labels(self) -> Optional[Mapping[str, str]]: + """ + labels + """ return pulumi.get(self, "labels") @labels.setter @@ -1902,6 +1926,10 @@ class GetKubeNodePoolTemplateSpecArgs: def __init__(__self__, *, taints: Optional[Sequence[Mapping[str, Any]]] = None, unschedulable: Optional[bool] = None): + """ + :param Sequence[Mapping[str, Any]] taints: taints + :param bool unschedulable: unschedulable + """ if taints is not None: pulumi.set(__self__, "taints", taints) if unschedulable is not None: @@ -1910,6 +1938,9 @@ def __init__(__self__, *, @property @pulumi.getter def taints(self) -> Optional[Sequence[Mapping[str, Any]]]: + """ + taints + """ return pulumi.get(self, "taints") @taints.setter @@ -1919,6 +1950,9 @@ def taints(self, value: Optional[Sequence[Mapping[str, Any]]]): @property @pulumi.getter def unschedulable(self) -> Optional[bool]: + """ + unschedulable + """ return pulumi.get(self, "unschedulable") @unschedulable.setter diff --git a/sdk/python/pulumi_ovh/cloudproject/container_registry_ip_restrictions_management.py b/sdk/python/pulumi_ovh/cloudproject/container_registry_ip_restrictions_management.py new file mode 100644 index 00000000..0c2b2e87 --- /dev/null +++ b/sdk/python/pulumi_ovh/cloudproject/container_registry_ip_restrictions_management.py @@ -0,0 +1,276 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +__all__ = ['ContainerRegistryIPRestrictionsManagementArgs', 'ContainerRegistryIPRestrictionsManagement'] + +@pulumi.input_type +class ContainerRegistryIPRestrictionsManagementArgs: + def __init__(__self__, *, + ip_restrictions: pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]], + registry_id: pulumi.Input[str], + service_name: pulumi.Input[str]): + """ + The set of arguments for constructing a ContainerRegistryIPRestrictionsManagement resource. + :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]] ip_restrictions: IP restrictions applied on Harbor UI and API. + :param pulumi.Input[str] registry_id: The id of the Managed Private Registry. + :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + """ + pulumi.set(__self__, "ip_restrictions", ip_restrictions) + pulumi.set(__self__, "registry_id", registry_id) + pulumi.set(__self__, "service_name", service_name) + + @property + @pulumi.getter(name="ipRestrictions") + def ip_restrictions(self) -> pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]: + """ + IP restrictions applied on Harbor UI and API. + """ + return pulumi.get(self, "ip_restrictions") + + @ip_restrictions.setter + def ip_restrictions(self, value: pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]): + pulumi.set(self, "ip_restrictions", value) + + @property + @pulumi.getter(name="registryId") + def registry_id(self) -> pulumi.Input[str]: + """ + The id of the Managed Private Registry. + """ + return pulumi.get(self, "registry_id") + + @registry_id.setter + def registry_id(self, value: pulumi.Input[str]): + pulumi.set(self, "registry_id", value) + + @property + @pulumi.getter(name="serviceName") + def service_name(self) -> pulumi.Input[str]: + """ + The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + """ + return pulumi.get(self, "service_name") + + @service_name.setter + def service_name(self, value: pulumi.Input[str]): + pulumi.set(self, "service_name", value) + + +@pulumi.input_type +class _ContainerRegistryIPRestrictionsManagementState: + def __init__(__self__, *, + ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]] = None, + registry_id: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering ContainerRegistryIPRestrictionsManagement resources. + :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]] ip_restrictions: IP restrictions applied on Harbor UI and API. + :param pulumi.Input[str] registry_id: The id of the Managed Private Registry. + :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + """ + if ip_restrictions is not None: + pulumi.set(__self__, "ip_restrictions", ip_restrictions) + if registry_id is not None: + pulumi.set(__self__, "registry_id", registry_id) + if service_name is not None: + pulumi.set(__self__, "service_name", service_name) + + @property + @pulumi.getter(name="ipRestrictions") + def ip_restrictions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]]: + """ + IP restrictions applied on Harbor UI and API. + """ + return pulumi.get(self, "ip_restrictions") + + @ip_restrictions.setter + def ip_restrictions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]]): + pulumi.set(self, "ip_restrictions", value) + + @property + @pulumi.getter(name="registryId") + def registry_id(self) -> Optional[pulumi.Input[str]]: + """ + The id of the Managed Private Registry. + """ + return pulumi.get(self, "registry_id") + + @registry_id.setter + def registry_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "registry_id", value) + + @property + @pulumi.getter(name="serviceName") + def service_name(self) -> Optional[pulumi.Input[str]]: + """ + The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + """ + return pulumi.get(self, "service_name") + + @service_name.setter + def service_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "service_name", value) + + +class ContainerRegistryIPRestrictionsManagement(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]] = None, + registry_id: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Apply IP restrictions container registry associated with a public cloud project on Harbor UI and API. + + ## Example Usage + + ```python + import pulumi + import pulumi_ovh as ovh + + registry = ovh.CloudProject.get_container_registry(service_name="XXXXXX", + registry_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx") + my_mgt_iprestrictions = ovh.cloud_project.ContainerRegistryIPRestrictionsManagement("my-mgt-iprestrictions", + service_name=ovh_cloud_project_containerregistry["registry"]["service_name"], + registry_id=ovh_cloud_project_containerregistry["registry"]["id"], + ip_restrictions=[{ + "ip_block": "xxx.xxx.xxx.xxx/xx", + "description": "xxxxxxx", + }]) + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]] ip_restrictions: IP restrictions applied on Harbor UI and API. + :param pulumi.Input[str] registry_id: The id of the Managed Private Registry. + :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ContainerRegistryIPRestrictionsManagementArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Apply IP restrictions container registry associated with a public cloud project on Harbor UI and API. + + ## Example Usage + + ```python + import pulumi + import pulumi_ovh as ovh + + registry = ovh.CloudProject.get_container_registry(service_name="XXXXXX", + registry_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx") + my_mgt_iprestrictions = ovh.cloud_project.ContainerRegistryIPRestrictionsManagement("my-mgt-iprestrictions", + service_name=ovh_cloud_project_containerregistry["registry"]["service_name"], + registry_id=ovh_cloud_project_containerregistry["registry"]["id"], + ip_restrictions=[{ + "ip_block": "xxx.xxx.xxx.xxx/xx", + "description": "xxxxxxx", + }]) + ``` + + :param str resource_name: The name of the resource. + :param ContainerRegistryIPRestrictionsManagementArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(ContainerRegistryIPRestrictionsManagementArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]] = None, + registry_id: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = ContainerRegistryIPRestrictionsManagementArgs.__new__(ContainerRegistryIPRestrictionsManagementArgs) + + if ip_restrictions is None and not opts.urn: + raise TypeError("Missing required property 'ip_restrictions'") + __props__.__dict__["ip_restrictions"] = ip_restrictions + if registry_id is None and not opts.urn: + raise TypeError("Missing required property 'registry_id'") + __props__.__dict__["registry_id"] = registry_id + if service_name is None and not opts.urn: + raise TypeError("Missing required property 'service_name'") + __props__.__dict__["service_name"] = service_name + super(ContainerRegistryIPRestrictionsManagement, __self__).__init__( + 'ovh:CloudProject/containerRegistryIPRestrictionsManagement:ContainerRegistryIPRestrictionsManagement', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]] = None, + registry_id: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None) -> 'ContainerRegistryIPRestrictionsManagement': + """ + Get an existing ContainerRegistryIPRestrictionsManagement resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]] ip_restrictions: IP restrictions applied on Harbor UI and API. + :param pulumi.Input[str] registry_id: The id of the Managed Private Registry. + :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _ContainerRegistryIPRestrictionsManagementState.__new__(_ContainerRegistryIPRestrictionsManagementState) + + __props__.__dict__["ip_restrictions"] = ip_restrictions + __props__.__dict__["registry_id"] = registry_id + __props__.__dict__["service_name"] = service_name + return ContainerRegistryIPRestrictionsManagement(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="ipRestrictions") + def ip_restrictions(self) -> pulumi.Output[Sequence[Mapping[str, Any]]]: + """ + IP restrictions applied on Harbor UI and API. + """ + return pulumi.get(self, "ip_restrictions") + + @property + @pulumi.getter(name="registryId") + def registry_id(self) -> pulumi.Output[str]: + """ + The id of the Managed Private Registry. + """ + return pulumi.get(self, "registry_id") + + @property + @pulumi.getter(name="serviceName") + def service_name(self) -> pulumi.Output[str]: + """ + The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + """ + return pulumi.get(self, "service_name") + diff --git a/sdk/python/pulumi_ovh/cloudproject/container_registry_ip_restrictions_registry.py b/sdk/python/pulumi_ovh/cloudproject/container_registry_ip_restrictions_registry.py new file mode 100644 index 00000000..0780376a --- /dev/null +++ b/sdk/python/pulumi_ovh/cloudproject/container_registry_ip_restrictions_registry.py @@ -0,0 +1,276 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +__all__ = ['ContainerRegistryIPRestrictionsRegistryArgs', 'ContainerRegistryIPRestrictionsRegistry'] + +@pulumi.input_type +class ContainerRegistryIPRestrictionsRegistryArgs: + def __init__(__self__, *, + ip_restrictions: pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]], + registry_id: pulumi.Input[str], + service_name: pulumi.Input[str]): + """ + The set of arguments for constructing a ContainerRegistryIPRestrictionsRegistry resource. + :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]] ip_restrictions: IP restrictions applied on artifact manager component. + :param pulumi.Input[str] registry_id: The id of the Managed Private Registry. + :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + """ + pulumi.set(__self__, "ip_restrictions", ip_restrictions) + pulumi.set(__self__, "registry_id", registry_id) + pulumi.set(__self__, "service_name", service_name) + + @property + @pulumi.getter(name="ipRestrictions") + def ip_restrictions(self) -> pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]: + """ + IP restrictions applied on artifact manager component. + """ + return pulumi.get(self, "ip_restrictions") + + @ip_restrictions.setter + def ip_restrictions(self, value: pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]): + pulumi.set(self, "ip_restrictions", value) + + @property + @pulumi.getter(name="registryId") + def registry_id(self) -> pulumi.Input[str]: + """ + The id of the Managed Private Registry. + """ + return pulumi.get(self, "registry_id") + + @registry_id.setter + def registry_id(self, value: pulumi.Input[str]): + pulumi.set(self, "registry_id", value) + + @property + @pulumi.getter(name="serviceName") + def service_name(self) -> pulumi.Input[str]: + """ + The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + """ + return pulumi.get(self, "service_name") + + @service_name.setter + def service_name(self, value: pulumi.Input[str]): + pulumi.set(self, "service_name", value) + + +@pulumi.input_type +class _ContainerRegistryIPRestrictionsRegistryState: + def __init__(__self__, *, + ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]] = None, + registry_id: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering ContainerRegistryIPRestrictionsRegistry resources. + :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]] ip_restrictions: IP restrictions applied on artifact manager component. + :param pulumi.Input[str] registry_id: The id of the Managed Private Registry. + :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + """ + if ip_restrictions is not None: + pulumi.set(__self__, "ip_restrictions", ip_restrictions) + if registry_id is not None: + pulumi.set(__self__, "registry_id", registry_id) + if service_name is not None: + pulumi.set(__self__, "service_name", service_name) + + @property + @pulumi.getter(name="ipRestrictions") + def ip_restrictions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]]: + """ + IP restrictions applied on artifact manager component. + """ + return pulumi.get(self, "ip_restrictions") + + @ip_restrictions.setter + def ip_restrictions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]]): + pulumi.set(self, "ip_restrictions", value) + + @property + @pulumi.getter(name="registryId") + def registry_id(self) -> Optional[pulumi.Input[str]]: + """ + The id of the Managed Private Registry. + """ + return pulumi.get(self, "registry_id") + + @registry_id.setter + def registry_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "registry_id", value) + + @property + @pulumi.getter(name="serviceName") + def service_name(self) -> Optional[pulumi.Input[str]]: + """ + The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + """ + return pulumi.get(self, "service_name") + + @service_name.setter + def service_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "service_name", value) + + +class ContainerRegistryIPRestrictionsRegistry(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]] = None, + registry_id: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Apply IP restrictions container registry associated with a public cloud project on artifact manager component. + + ## Example Usage + + ```python + import pulumi + import pulumi_ovh as ovh + + registry = ovh.CloudProject.get_container_registry(service_name="XXXXXX", + registry_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx") + my_registry_iprestrictions = ovh.cloud_project.ContainerRegistryIPRestrictionsRegistry("my-registry-iprestrictions", + service_name=ovh_cloud_project_containerregistry["registry"]["service_name"], + registry_id=ovh_cloud_project_containerregistry["registry"]["id"], + ip_restrictions=[{ + "ip_block": "xxx.xxx.xxx.xxx/xx", + "description": "xxxxxxx", + }]) + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]] ip_restrictions: IP restrictions applied on artifact manager component. + :param pulumi.Input[str] registry_id: The id of the Managed Private Registry. + :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ContainerRegistryIPRestrictionsRegistryArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Apply IP restrictions container registry associated with a public cloud project on artifact manager component. + + ## Example Usage + + ```python + import pulumi + import pulumi_ovh as ovh + + registry = ovh.CloudProject.get_container_registry(service_name="XXXXXX", + registry_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx") + my_registry_iprestrictions = ovh.cloud_project.ContainerRegistryIPRestrictionsRegistry("my-registry-iprestrictions", + service_name=ovh_cloud_project_containerregistry["registry"]["service_name"], + registry_id=ovh_cloud_project_containerregistry["registry"]["id"], + ip_restrictions=[{ + "ip_block": "xxx.xxx.xxx.xxx/xx", + "description": "xxxxxxx", + }]) + ``` + + :param str resource_name: The name of the resource. + :param ContainerRegistryIPRestrictionsRegistryArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(ContainerRegistryIPRestrictionsRegistryArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]] = None, + registry_id: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = ContainerRegistryIPRestrictionsRegistryArgs.__new__(ContainerRegistryIPRestrictionsRegistryArgs) + + if ip_restrictions is None and not opts.urn: + raise TypeError("Missing required property 'ip_restrictions'") + __props__.__dict__["ip_restrictions"] = ip_restrictions + if registry_id is None and not opts.urn: + raise TypeError("Missing required property 'registry_id'") + __props__.__dict__["registry_id"] = registry_id + if service_name is None and not opts.urn: + raise TypeError("Missing required property 'service_name'") + __props__.__dict__["service_name"] = service_name + super(ContainerRegistryIPRestrictionsRegistry, __self__).__init__( + 'ovh:CloudProject/containerRegistryIPRestrictionsRegistry:ContainerRegistryIPRestrictionsRegistry', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]] = None, + registry_id: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None) -> 'ContainerRegistryIPRestrictionsRegistry': + """ + Get an existing ContainerRegistryIPRestrictionsRegistry resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]] ip_restrictions: IP restrictions applied on artifact manager component. + :param pulumi.Input[str] registry_id: The id of the Managed Private Registry. + :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _ContainerRegistryIPRestrictionsRegistryState.__new__(_ContainerRegistryIPRestrictionsRegistryState) + + __props__.__dict__["ip_restrictions"] = ip_restrictions + __props__.__dict__["registry_id"] = registry_id + __props__.__dict__["service_name"] = service_name + return ContainerRegistryIPRestrictionsRegistry(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="ipRestrictions") + def ip_restrictions(self) -> pulumi.Output[Sequence[Mapping[str, Any]]]: + """ + IP restrictions applied on artifact manager component. + """ + return pulumi.get(self, "ip_restrictions") + + @property + @pulumi.getter(name="registryId") + def registry_id(self) -> pulumi.Output[str]: + """ + The id of the Managed Private Registry. + """ + return pulumi.get(self, "registry_id") + + @property + @pulumi.getter(name="serviceName") + def service_name(self) -> pulumi.Output[str]: + """ + The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + """ + return pulumi.get(self, "service_name") + diff --git a/sdk/python/pulumi_ovh/cloudproject/container_registry_oidc.py b/sdk/python/pulumi_ovh/cloudproject/container_registry_oidc.py index 2600bab4..ca6f9d0c 100644 --- a/sdk/python/pulumi_ovh/cloudproject/container_registry_oidc.py +++ b/sdk/python/pulumi_ovh/cloudproject/container_registry_oidc.py @@ -483,10 +483,12 @@ def __init__(__self__, ## Import - OVHcloud Managed Private Registry OIDC can be imported using the tenant `service_name` and registry id `registry_id` separated by "/" E.g., bash + OVHcloud Managed Private Registry OIDC can be imported using the tenant `service_name` and registry id `registry_id` separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProject/containerRegistryOIDC:ContainerRegistryOIDC my-oidc service_name/registry_id + $ pulumi import ovh:CloudProject/containerRegistryOIDC:ContainerRegistryOIDC my-oidc service_name/registry_id ``` :param str resource_name: The name of the resource. @@ -539,10 +541,12 @@ def __init__(__self__, ## Import - OVHcloud Managed Private Registry OIDC can be imported using the tenant `service_name` and registry id `registry_id` separated by "/" E.g., bash + OVHcloud Managed Private Registry OIDC can be imported using the tenant `service_name` and registry id `registry_id` separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProject/containerRegistryOIDC:ContainerRegistryOIDC my-oidc service_name/registry_id + $ pulumi import ovh:CloudProject/containerRegistryOIDC:ContainerRegistryOIDC my-oidc service_name/registry_id ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/cloudproject/database.py b/sdk/python/pulumi_ovh/cloudproject/database.py index 7024b697..c218b527 100644 --- a/sdk/python/pulumi_ovh/cloudproject/database.py +++ b/sdk/python/pulumi_ovh/cloudproject/database.py @@ -23,6 +23,8 @@ def __init__(__self__, *, service_name: pulumi.Input[str], version: pulumi.Input[str], advanced_configuration: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + backup_regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + backup_time: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, disk_size: Optional[pulumi.Input[int]] = None, kafka_rest_api: Optional[pulumi.Input[bool]] = None, @@ -42,6 +44,8 @@ def __init__(__self__, *, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. :param pulumi.Input[str] version: The version of the engine in which the service should be deployed :param pulumi.Input[Mapping[str, pulumi.Input[str]]] advanced_configuration: Advanced configuration key / value. + :param pulumi.Input[Sequence[pulumi.Input[str]]] backup_regions: 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 + :param pulumi.Input[str] backup_time: Time on which backups start every day. :param pulumi.Input[str] description: Small description of the database service. :param pulumi.Input[int] disk_size: The disk size (in GB) of the database service. :param pulumi.Input[bool] kafka_rest_api: Defines whether the REST API is enabled on a kafka cluster @@ -55,6 +59,10 @@ def __init__(__self__, *, pulumi.set(__self__, "version", version) if advanced_configuration is not None: pulumi.set(__self__, "advanced_configuration", advanced_configuration) + if backup_regions is not None: + pulumi.set(__self__, "backup_regions", backup_regions) + if backup_time is not None: + pulumi.set(__self__, "backup_time", backup_time) if description is not None: pulumi.set(__self__, "description", description) if disk_size is not None: @@ -154,6 +162,30 @@ def advanced_configuration(self) -> Optional[pulumi.Input[Mapping[str, pulumi.In def advanced_configuration(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): pulumi.set(self, "advanced_configuration", value) + @property + @pulumi.getter(name="backupRegions") + def backup_regions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + 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 + """ + return pulumi.get(self, "backup_regions") + + @backup_regions.setter + def backup_regions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "backup_regions", value) + + @property + @pulumi.getter(name="backupTime") + def backup_time(self) -> Optional[pulumi.Input[str]]: + """ + Time on which backups start every day. + """ + return pulumi.get(self, "backup_time") + + @backup_time.setter + def backup_time(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "backup_time", value) + @property @pulumi.getter def description(self) -> Optional[pulumi.Input[str]]: @@ -207,6 +239,7 @@ def opensearch_acls_enabled(self, value: Optional[pulumi.Input[bool]]): class _DatabaseState: def __init__(__self__, *, advanced_configuration: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + backup_regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, backup_time: Optional[pulumi.Input[str]] = None, created_at: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, @@ -227,6 +260,7 @@ def __init__(__self__, *, """ Input properties used for looking up and filtering Database resources. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] advanced_configuration: Advanced configuration key / value. + :param pulumi.Input[Sequence[pulumi.Input[str]]] backup_regions: 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 :param pulumi.Input[str] backup_time: Time on which backups start every day. :param pulumi.Input[str] created_at: Date of the creation of the cluster. :param pulumi.Input[str] description: Small description of the database service. @@ -253,6 +287,8 @@ def __init__(__self__, *, """ if advanced_configuration is not None: pulumi.set(__self__, "advanced_configuration", advanced_configuration) + if backup_regions is not None: + pulumi.set(__self__, "backup_regions", backup_regions) if backup_time is not None: pulumi.set(__self__, "backup_time", backup_time) if created_at is not None: @@ -300,6 +336,18 @@ def advanced_configuration(self) -> Optional[pulumi.Input[Mapping[str, pulumi.In def advanced_configuration(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): pulumi.set(self, "advanced_configuration", value) + @property + @pulumi.getter(name="backupRegions") + def backup_regions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + 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 + """ + return pulumi.get(self, "backup_regions") + + @backup_regions.setter + def backup_regions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "backup_regions", value) + @property @pulumi.getter(name="backupTime") def backup_time(self) -> Optional[pulumi.Input[str]]: @@ -517,6 +565,8 @@ def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, advanced_configuration: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + backup_regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + backup_time: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, disk_size: Optional[pulumi.Input[int]] = None, engine: Optional[pulumi.Input[str]] = None, @@ -708,15 +758,19 @@ def __init__(__self__, ## Import - OVHcloud Managed database clusters can be imported using the `service_name`, `engine`, `id` of the cluster, separated by "/" E.g., bash + OVHcloud Managed database clusters can be imported using the `service_name`, `engine`, `id` of the cluster, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProject/database:Database my_database_cluster service_name/engine/id + $ pulumi import ovh:CloudProject/database:Database my_database_cluster service_name/engine/id ``` :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] advanced_configuration: Advanced configuration key / value. + :param pulumi.Input[Sequence[pulumi.Input[str]]] backup_regions: 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 + :param pulumi.Input[str] backup_time: Time on which backups start every day. :param pulumi.Input[str] description: Small description of the database service. :param pulumi.Input[int] disk_size: The disk size (in GB) of the database service. :param pulumi.Input[str] engine: The database engine you want to deploy. To get a full list of available engine visit. @@ -920,10 +974,12 @@ def __init__(__self__, ## Import - OVHcloud Managed database clusters can be imported using the `service_name`, `engine`, `id` of the cluster, separated by "/" E.g., bash + OVHcloud Managed database clusters can be imported using the `service_name`, `engine`, `id` of the cluster, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProject/database:Database my_database_cluster service_name/engine/id + $ pulumi import ovh:CloudProject/database:Database my_database_cluster service_name/engine/id ``` :param str resource_name: The name of the resource. @@ -942,6 +998,8 @@ def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, advanced_configuration: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + backup_regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + backup_time: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, disk_size: Optional[pulumi.Input[int]] = None, engine: Optional[pulumi.Input[str]] = None, @@ -962,6 +1020,8 @@ def _internal_init(__self__, __props__ = DatabaseArgs.__new__(DatabaseArgs) __props__.__dict__["advanced_configuration"] = advanced_configuration + __props__.__dict__["backup_regions"] = backup_regions + __props__.__dict__["backup_time"] = backup_time __props__.__dict__["description"] = description __props__.__dict__["disk_size"] = disk_size if engine is None and not opts.urn: @@ -984,7 +1044,6 @@ def _internal_init(__self__, if version is None and not opts.urn: raise TypeError("Missing required property 'version'") __props__.__dict__["version"] = version - __props__.__dict__["backup_time"] = None __props__.__dict__["created_at"] = None __props__.__dict__["disk_type"] = None __props__.__dict__["endpoints"] = None @@ -1002,6 +1061,7 @@ def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, advanced_configuration: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + backup_regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, backup_time: Optional[pulumi.Input[str]] = None, created_at: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, @@ -1027,6 +1087,7 @@ def get(resource_name: str, :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] advanced_configuration: Advanced configuration key / value. + :param pulumi.Input[Sequence[pulumi.Input[str]]] backup_regions: 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 :param pulumi.Input[str] backup_time: Time on which backups start every day. :param pulumi.Input[str] created_at: Date of the creation of the cluster. :param pulumi.Input[str] description: Small description of the database service. @@ -1056,6 +1117,7 @@ def get(resource_name: str, __props__ = _DatabaseState.__new__(_DatabaseState) __props__.__dict__["advanced_configuration"] = advanced_configuration + __props__.__dict__["backup_regions"] = backup_regions __props__.__dict__["backup_time"] = backup_time __props__.__dict__["created_at"] = created_at __props__.__dict__["description"] = description @@ -1083,6 +1145,14 @@ def advanced_configuration(self) -> pulumi.Output[Mapping[str, str]]: """ return pulumi.get(self, "advanced_configuration") + @property + @pulumi.getter(name="backupRegions") + def backup_regions(self) -> pulumi.Output[Sequence[str]]: + """ + 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 + """ + return pulumi.get(self, "backup_regions") + @property @pulumi.getter(name="backupTime") def backup_time(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_ovh/cloudproject/get_container_registry_ip_restrictions_management.py b/sdk/python/pulumi_ovh/cloudproject/get_container_registry_ip_restrictions_management.py new file mode 100644 index 00000000..ef16feca --- /dev/null +++ b/sdk/python/pulumi_ovh/cloudproject/get_container_registry_ip_restrictions_management.py @@ -0,0 +1,117 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +__all__ = [ + 'GetContainerRegistryIPRestrictionsManagementResult', + 'AwaitableGetContainerRegistryIPRestrictionsManagementResult', + 'get_container_registry_ip_restrictions_management', + 'get_container_registry_ip_restrictions_management_output', +] + +@pulumi.output_type +class GetContainerRegistryIPRestrictionsManagementResult: + """ + A collection of values returned by getContainerRegistryIPRestrictionsManagement. + """ + def __init__(__self__, id=None, ip_restrictions=None, registry_id=None, service_name=None): + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if ip_restrictions and not isinstance(ip_restrictions, list): + raise TypeError("Expected argument 'ip_restrictions' to be a list") + pulumi.set(__self__, "ip_restrictions", ip_restrictions) + if registry_id and not isinstance(registry_id, str): + raise TypeError("Expected argument 'registry_id' to be a str") + pulumi.set(__self__, "registry_id", registry_id) + if service_name and not isinstance(service_name, str): + raise TypeError("Expected argument 'service_name' to be a str") + pulumi.set(__self__, "service_name", service_name) + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="ipRestrictions") + def ip_restrictions(self) -> Sequence[Mapping[str, Any]]: + """ + IP restrictions applied on Harbor UI and API. + """ + return pulumi.get(self, "ip_restrictions") + + @property + @pulumi.getter(name="registryId") + def registry_id(self) -> str: + """ + The ID of the Managed Private Registry. + """ + return pulumi.get(self, "registry_id") + + @property + @pulumi.getter(name="serviceName") + def service_name(self) -> str: + """ + The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + """ + return pulumi.get(self, "service_name") + + +class AwaitableGetContainerRegistryIPRestrictionsManagementResult(GetContainerRegistryIPRestrictionsManagementResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetContainerRegistryIPRestrictionsManagementResult( + id=self.id, + ip_restrictions=self.ip_restrictions, + registry_id=self.registry_id, + service_name=self.service_name) + + +def get_container_registry_ip_restrictions_management(registry_id: Optional[str] = None, + service_name: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetContainerRegistryIPRestrictionsManagementResult: + """ + Use this data source to get the list of Management IP Restrictions of a container registry associated with a public cloud project. + + + :param str registry_id: The id of the Managed Private Registry. + :param str service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + """ + __args__ = dict() + __args__['registryId'] = registry_id + __args__['serviceName'] = service_name + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('ovh:CloudProject/getContainerRegistryIPRestrictionsManagement:getContainerRegistryIPRestrictionsManagement', __args__, opts=opts, typ=GetContainerRegistryIPRestrictionsManagementResult).value + + return AwaitableGetContainerRegistryIPRestrictionsManagementResult( + id=pulumi.get(__ret__, 'id'), + ip_restrictions=pulumi.get(__ret__, 'ip_restrictions'), + registry_id=pulumi.get(__ret__, 'registry_id'), + service_name=pulumi.get(__ret__, 'service_name')) + + +@_utilities.lift_output_func(get_container_registry_ip_restrictions_management) +def get_container_registry_ip_restrictions_management_output(registry_id: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetContainerRegistryIPRestrictionsManagementResult]: + """ + Use this data source to get the list of Management IP Restrictions of a container registry associated with a public cloud project. + + + :param str registry_id: The id of the Managed Private Registry. + :param str service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + """ + ... diff --git a/sdk/python/pulumi_ovh/cloudproject/get_container_registry_ip_restrictions_registry.py b/sdk/python/pulumi_ovh/cloudproject/get_container_registry_ip_restrictions_registry.py new file mode 100644 index 00000000..e90ba7fd --- /dev/null +++ b/sdk/python/pulumi_ovh/cloudproject/get_container_registry_ip_restrictions_registry.py @@ -0,0 +1,117 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +__all__ = [ + 'GetContainerRegistryIPRestrictionsRegistryResult', + 'AwaitableGetContainerRegistryIPRestrictionsRegistryResult', + 'get_container_registry_ip_restrictions_registry', + 'get_container_registry_ip_restrictions_registry_output', +] + +@pulumi.output_type +class GetContainerRegistryIPRestrictionsRegistryResult: + """ + A collection of values returned by getContainerRegistryIPRestrictionsRegistry. + """ + def __init__(__self__, id=None, ip_restrictions=None, registry_id=None, service_name=None): + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if ip_restrictions and not isinstance(ip_restrictions, list): + raise TypeError("Expected argument 'ip_restrictions' to be a list") + pulumi.set(__self__, "ip_restrictions", ip_restrictions) + if registry_id and not isinstance(registry_id, str): + raise TypeError("Expected argument 'registry_id' to be a str") + pulumi.set(__self__, "registry_id", registry_id) + if service_name and not isinstance(service_name, str): + raise TypeError("Expected argument 'service_name' to be a str") + pulumi.set(__self__, "service_name", service_name) + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="ipRestrictions") + def ip_restrictions(self) -> Sequence[Mapping[str, Any]]: + """ + IP restrictions applied on artifact manager component. + """ + return pulumi.get(self, "ip_restrictions") + + @property + @pulumi.getter(name="registryId") + def registry_id(self) -> str: + """ + The ID of the Managed Private Registry. + """ + return pulumi.get(self, "registry_id") + + @property + @pulumi.getter(name="serviceName") + def service_name(self) -> str: + """ + The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + """ + return pulumi.get(self, "service_name") + + +class AwaitableGetContainerRegistryIPRestrictionsRegistryResult(GetContainerRegistryIPRestrictionsRegistryResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetContainerRegistryIPRestrictionsRegistryResult( + id=self.id, + ip_restrictions=self.ip_restrictions, + registry_id=self.registry_id, + service_name=self.service_name) + + +def get_container_registry_ip_restrictions_registry(registry_id: Optional[str] = None, + service_name: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetContainerRegistryIPRestrictionsRegistryResult: + """ + Use this data source to get the list of Registry IP Restrictions of a container registry associated with a public cloud project. + + + :param str registry_id: The id of the Managed Private Registry. + :param str service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + """ + __args__ = dict() + __args__['registryId'] = registry_id + __args__['serviceName'] = service_name + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('ovh:CloudProject/getContainerRegistryIPRestrictionsRegistry:getContainerRegistryIPRestrictionsRegistry', __args__, opts=opts, typ=GetContainerRegistryIPRestrictionsRegistryResult).value + + return AwaitableGetContainerRegistryIPRestrictionsRegistryResult( + id=pulumi.get(__ret__, 'id'), + ip_restrictions=pulumi.get(__ret__, 'ip_restrictions'), + registry_id=pulumi.get(__ret__, 'registry_id'), + service_name=pulumi.get(__ret__, 'service_name')) + + +@_utilities.lift_output_func(get_container_registry_ip_restrictions_registry) +def get_container_registry_ip_restrictions_registry_output(registry_id: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetContainerRegistryIPRestrictionsRegistryResult]: + """ + Use this data source to get the list of Registry IP Restrictions of a container registry associated with a public cloud project. + + + :param str registry_id: The id of the Managed Private Registry. + :param str service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + """ + ... diff --git a/sdk/python/pulumi_ovh/cloudproject/get_kube_node_pool.py b/sdk/python/pulumi_ovh/cloudproject/get_kube_node_pool.py index 0af7b42e..7f354f8d 100644 --- a/sdk/python/pulumi_ovh/cloudproject/get_kube_node_pool.py +++ b/sdk/python/pulumi_ovh/cloudproject/get_kube_node_pool.py @@ -23,13 +23,22 @@ class GetKubeNodePoolResult: """ A collection of values returned by getKubeNodePool. """ - def __init__(__self__, anti_affinity=None, autoscale=None, available_nodes=None, created_at=None, current_nodes=None, desired_nodes=None, flavor=None, flavor_name=None, id=None, kube_id=None, max_nodes=None, min_nodes=None, monthly_billed=None, name=None, project_id=None, service_name=None, size_status=None, status=None, template=None, up_to_date_nodes=None, updated_at=None): + def __init__(__self__, anti_affinity=None, autoscale=None, autoscaling_scale_down_unneeded_time_seconds=None, autoscaling_scale_down_unready_time_seconds=None, autoscaling_scale_down_utilization_threshold=None, available_nodes=None, created_at=None, current_nodes=None, desired_nodes=None, flavor=None, flavor_name=None, id=None, kube_id=None, max_nodes=None, min_nodes=None, monthly_billed=None, name=None, project_id=None, service_name=None, size_status=None, status=None, template=None, up_to_date_nodes=None, updated_at=None): if anti_affinity and not isinstance(anti_affinity, bool): raise TypeError("Expected argument 'anti_affinity' to be a bool") pulumi.set(__self__, "anti_affinity", anti_affinity) if autoscale and not isinstance(autoscale, bool): raise TypeError("Expected argument 'autoscale' to be a bool") pulumi.set(__self__, "autoscale", autoscale) + if autoscaling_scale_down_unneeded_time_seconds and not isinstance(autoscaling_scale_down_unneeded_time_seconds, int): + raise TypeError("Expected argument 'autoscaling_scale_down_unneeded_time_seconds' to be a int") + pulumi.set(__self__, "autoscaling_scale_down_unneeded_time_seconds", autoscaling_scale_down_unneeded_time_seconds) + if autoscaling_scale_down_unready_time_seconds and not isinstance(autoscaling_scale_down_unready_time_seconds, int): + raise TypeError("Expected argument 'autoscaling_scale_down_unready_time_seconds' to be a int") + pulumi.set(__self__, "autoscaling_scale_down_unready_time_seconds", autoscaling_scale_down_unready_time_seconds) + if autoscaling_scale_down_utilization_threshold and not isinstance(autoscaling_scale_down_utilization_threshold, float): + raise TypeError("Expected argument 'autoscaling_scale_down_utilization_threshold' to be a float") + pulumi.set(__self__, "autoscaling_scale_down_utilization_threshold", autoscaling_scale_down_utilization_threshold) if available_nodes and not isinstance(available_nodes, int): raise TypeError("Expected argument 'available_nodes' to be a int") pulumi.set(__self__, "available_nodes", available_nodes) @@ -104,6 +113,33 @@ def autoscale(self) -> bool: """ return pulumi.get(self, "autoscale") + @property + @pulumi.getter(name="autoscalingScaleDownUnneededTimeSeconds") + def autoscaling_scale_down_unneeded_time_seconds(self) -> int: + """ + (Optional) scaleDownUnneededTimeSeconds autoscaling parameter + How long a node should be unneeded before it is eligible for scale down + """ + return pulumi.get(self, "autoscaling_scale_down_unneeded_time_seconds") + + @property + @pulumi.getter(name="autoscalingScaleDownUnreadyTimeSeconds") + def autoscaling_scale_down_unready_time_seconds(self) -> int: + """ + (Optional) scaleDownUnreadyTimeSeconds autoscaling parameter + How long an unready node should be unneeded before it is eligible for scale down + """ + return pulumi.get(self, "autoscaling_scale_down_unready_time_seconds") + + @property + @pulumi.getter(name="autoscalingScaleDownUtilizationThreshold") + def autoscaling_scale_down_utilization_threshold(self) -> float: + """ + (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 + """ + return pulumi.get(self, "autoscaling_scale_down_utilization_threshold") + @property @pulumi.getter(name="availableNodes") def available_nodes(self) -> int: @@ -268,6 +304,9 @@ def __await__(self): return GetKubeNodePoolResult( anti_affinity=self.anti_affinity, autoscale=self.autoscale, + autoscaling_scale_down_unneeded_time_seconds=self.autoscaling_scale_down_unneeded_time_seconds, + autoscaling_scale_down_unready_time_seconds=self.autoscaling_scale_down_unready_time_seconds, + autoscaling_scale_down_utilization_threshold=self.autoscaling_scale_down_utilization_threshold, available_nodes=self.available_nodes, created_at=self.created_at, current_nodes=self.current_nodes, @@ -326,6 +365,9 @@ def get_kube_node_pool(kube_id: Optional[str] = None, return AwaitableGetKubeNodePoolResult( anti_affinity=pulumi.get(__ret__, 'anti_affinity'), autoscale=pulumi.get(__ret__, 'autoscale'), + autoscaling_scale_down_unneeded_time_seconds=pulumi.get(__ret__, 'autoscaling_scale_down_unneeded_time_seconds'), + autoscaling_scale_down_unready_time_seconds=pulumi.get(__ret__, 'autoscaling_scale_down_unready_time_seconds'), + autoscaling_scale_down_utilization_threshold=pulumi.get(__ret__, 'autoscaling_scale_down_utilization_threshold'), available_nodes=pulumi.get(__ret__, 'available_nodes'), created_at=pulumi.get(__ret__, 'created_at'), current_nodes=pulumi.get(__ret__, 'current_nodes'), diff --git a/sdk/python/pulumi_ovh/cloudproject/kube.py b/sdk/python/pulumi_ovh/cloudproject/kube.py index 9c29e389..97be5045 100644 --- a/sdk/python/pulumi_ovh/cloudproject/kube.py +++ b/sdk/python/pulumi_ovh/cloudproject/kube.py @@ -547,10 +547,12 @@ def __init__(__self__, """ ## Import - OVHcloud Managed Kubernetes Service clusters can be imported using the `service_name` and the `id` of the cluster, separated by "/" E.g., bash + OVHcloud Managed Kubernetes Service clusters can be imported using the `service_name` and the `id` of the cluster, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProject/kube:Kube my_kube_cluster service_name/kube_id + $ pulumi import ovh:CloudProject/kube:Kube my_kube_cluster service_name/kube_id ``` :param str resource_name: The name of the resource. @@ -578,10 +580,12 @@ def __init__(__self__, """ ## Import - OVHcloud Managed Kubernetes Service clusters can be imported using the `service_name` and the `id` of the cluster, separated by "/" E.g., bash + OVHcloud Managed Kubernetes Service clusters can be imported using the `service_name` and the `id` of the cluster, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProject/kube:Kube my_kube_cluster service_name/kube_id + $ pulumi import ovh:CloudProject/kube:Kube my_kube_cluster service_name/kube_id ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/cloudproject/kube_ip_restrictions.py b/sdk/python/pulumi_ovh/cloudproject/kube_ip_restrictions.py index 58575f39..8bde3f0c 100644 --- a/sdk/python/pulumi_ovh/cloudproject/kube_ip_restrictions.py +++ b/sdk/python/pulumi_ovh/cloudproject/kube_ip_restrictions.py @@ -146,10 +146,12 @@ def __init__(__self__, ## Import - OVHcloud Managed Kubernetes Service cluster IP restrictions can be imported using the `service_name` and the `id` of the cluster, separated by "/" E.g., bash + OVHcloud Managed Kubernetes Service cluster IP restrictions can be imported using the `service_name` and the `id` of the cluster, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProject/kubeIpRestrictions:KubeIpRestrictions iprestrictions service_name/kube_id + $ pulumi import ovh:CloudProject/kubeIpRestrictions:KubeIpRestrictions iprestrictions service_name/kube_id ``` :param str resource_name: The name of the resource. @@ -181,10 +183,12 @@ def __init__(__self__, ## Import - OVHcloud Managed Kubernetes Service cluster IP restrictions can be imported using the `service_name` and the `id` of the cluster, separated by "/" E.g., bash + OVHcloud Managed Kubernetes Service cluster IP restrictions can be imported using the `service_name` and the `id` of the cluster, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProject/kubeIpRestrictions:KubeIpRestrictions iprestrictions service_name/kube_id + $ pulumi import ovh:CloudProject/kubeIpRestrictions:KubeIpRestrictions iprestrictions service_name/kube_id ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/cloudproject/kube_node_pool.py b/sdk/python/pulumi_ovh/cloudproject/kube_node_pool.py index 7728f639..98fa9191 100644 --- a/sdk/python/pulumi_ovh/cloudproject/kube_node_pool.py +++ b/sdk/python/pulumi_ovh/cloudproject/kube_node_pool.py @@ -21,6 +21,9 @@ def __init__(__self__, *, service_name: pulumi.Input[str], anti_affinity: Optional[pulumi.Input[bool]] = None, autoscale: Optional[pulumi.Input[bool]] = None, + autoscaling_scale_down_unneeded_time_seconds: Optional[pulumi.Input[int]] = None, + autoscaling_scale_down_unready_time_seconds: Optional[pulumi.Input[int]] = None, + autoscaling_scale_down_utilization_threshold: Optional[pulumi.Input[float]] = None, desired_nodes: Optional[pulumi.Input[int]] = None, max_nodes: Optional[pulumi.Input[int]] = None, min_nodes: Optional[pulumi.Input[int]] = None, @@ -35,6 +38,12 @@ def __init__(__self__, *, :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.** :param pulumi.Input[bool] anti_affinity: should the pool use the anti-affinity feature. Default to `false`. **Changing this value recreates the resource.** :param pulumi.Input[bool] autoscale: Enable auto-scaling for the pool. Default to `false`. + :param pulumi.Input[int] autoscaling_scale_down_unneeded_time_seconds: scaleDownUnneededTimeSeconds autoscaling parameter + How long a node should be unneeded before it is eligible for scale down + :param pulumi.Input[int] autoscaling_scale_down_unready_time_seconds: scaleDownUnreadyTimeSeconds autoscaling parameter + How long an unready node should be unneeded before it is eligible for scale down + :param pulumi.Input[float] autoscaling_scale_down_utilization_threshold: 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 * `template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: :param pulumi.Input[int] desired_nodes: number of nodes to start. :param pulumi.Input[int] max_nodes: maximum number of nodes allowed in the pool. Setting `desired_nodes` over this value will raise an error. @@ -50,6 +59,12 @@ def __init__(__self__, *, pulumi.set(__self__, "anti_affinity", anti_affinity) if autoscale is not None: pulumi.set(__self__, "autoscale", autoscale) + if autoscaling_scale_down_unneeded_time_seconds is not None: + pulumi.set(__self__, "autoscaling_scale_down_unneeded_time_seconds", autoscaling_scale_down_unneeded_time_seconds) + if autoscaling_scale_down_unready_time_seconds is not None: + pulumi.set(__self__, "autoscaling_scale_down_unready_time_seconds", autoscaling_scale_down_unready_time_seconds) + if autoscaling_scale_down_utilization_threshold is not None: + pulumi.set(__self__, "autoscaling_scale_down_utilization_threshold", autoscaling_scale_down_utilization_threshold) if desired_nodes is not None: pulumi.set(__self__, "desired_nodes", desired_nodes) if max_nodes is not None: @@ -117,7 +132,6 @@ def anti_affinity(self, value: Optional[pulumi.Input[bool]]): def autoscale(self) -> Optional[pulumi.Input[bool]]: """ Enable auto-scaling for the pool. Default to `false`. - * `template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: """ return pulumi.get(self, "autoscale") @@ -125,6 +139,46 @@ def autoscale(self) -> Optional[pulumi.Input[bool]]: def autoscale(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "autoscale", value) + @property + @pulumi.getter(name="autoscalingScaleDownUnneededTimeSeconds") + def autoscaling_scale_down_unneeded_time_seconds(self) -> Optional[pulumi.Input[int]]: + """ + scaleDownUnneededTimeSeconds autoscaling parameter + How long a node should be unneeded before it is eligible for scale down + """ + return pulumi.get(self, "autoscaling_scale_down_unneeded_time_seconds") + + @autoscaling_scale_down_unneeded_time_seconds.setter + def autoscaling_scale_down_unneeded_time_seconds(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "autoscaling_scale_down_unneeded_time_seconds", value) + + @property + @pulumi.getter(name="autoscalingScaleDownUnreadyTimeSeconds") + def autoscaling_scale_down_unready_time_seconds(self) -> Optional[pulumi.Input[int]]: + """ + scaleDownUnreadyTimeSeconds autoscaling parameter + How long an unready node should be unneeded before it is eligible for scale down + """ + return pulumi.get(self, "autoscaling_scale_down_unready_time_seconds") + + @autoscaling_scale_down_unready_time_seconds.setter + def autoscaling_scale_down_unready_time_seconds(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "autoscaling_scale_down_unready_time_seconds", value) + + @property + @pulumi.getter(name="autoscalingScaleDownUtilizationThreshold") + def autoscaling_scale_down_utilization_threshold(self) -> Optional[pulumi.Input[float]]: + """ + 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 + * `template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: + """ + return pulumi.get(self, "autoscaling_scale_down_utilization_threshold") + + @autoscaling_scale_down_utilization_threshold.setter + def autoscaling_scale_down_utilization_threshold(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "autoscaling_scale_down_utilization_threshold", value) + @property @pulumi.getter(name="desiredNodes") def desired_nodes(self) -> Optional[pulumi.Input[int]]: @@ -203,6 +257,9 @@ class _KubeNodePoolState: def __init__(__self__, *, anti_affinity: Optional[pulumi.Input[bool]] = None, autoscale: Optional[pulumi.Input[bool]] = None, + autoscaling_scale_down_unneeded_time_seconds: Optional[pulumi.Input[int]] = None, + autoscaling_scale_down_unready_time_seconds: Optional[pulumi.Input[int]] = None, + autoscaling_scale_down_utilization_threshold: Optional[pulumi.Input[float]] = None, available_nodes: Optional[pulumi.Input[int]] = None, created_at: Optional[pulumi.Input[str]] = None, current_nodes: Optional[pulumi.Input[int]] = None, @@ -225,6 +282,12 @@ def __init__(__self__, *, Input properties used for looking up and filtering KubeNodePool resources. :param pulumi.Input[bool] anti_affinity: should the pool use the anti-affinity feature. Default to `false`. **Changing this value recreates the resource.** :param pulumi.Input[bool] autoscale: Enable auto-scaling for the pool. Default to `false`. + :param pulumi.Input[int] autoscaling_scale_down_unneeded_time_seconds: scaleDownUnneededTimeSeconds autoscaling parameter + How long a node should be unneeded before it is eligible for scale down + :param pulumi.Input[int] autoscaling_scale_down_unready_time_seconds: scaleDownUnreadyTimeSeconds autoscaling parameter + How long an unready node should be unneeded before it is eligible for scale down + :param pulumi.Input[float] autoscaling_scale_down_utilization_threshold: 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 * `template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: :param pulumi.Input[int] available_nodes: Number of nodes which are actually ready in the pool :param pulumi.Input[str] created_at: Creation date @@ -250,6 +313,12 @@ def __init__(__self__, *, pulumi.set(__self__, "anti_affinity", anti_affinity) if autoscale is not None: pulumi.set(__self__, "autoscale", autoscale) + if autoscaling_scale_down_unneeded_time_seconds is not None: + pulumi.set(__self__, "autoscaling_scale_down_unneeded_time_seconds", autoscaling_scale_down_unneeded_time_seconds) + if autoscaling_scale_down_unready_time_seconds is not None: + pulumi.set(__self__, "autoscaling_scale_down_unready_time_seconds", autoscaling_scale_down_unready_time_seconds) + if autoscaling_scale_down_utilization_threshold is not None: + pulumi.set(__self__, "autoscaling_scale_down_utilization_threshold", autoscaling_scale_down_utilization_threshold) if available_nodes is not None: pulumi.set(__self__, "available_nodes", available_nodes) if created_at is not None: @@ -304,7 +373,6 @@ def anti_affinity(self, value: Optional[pulumi.Input[bool]]): def autoscale(self) -> Optional[pulumi.Input[bool]]: """ Enable auto-scaling for the pool. Default to `false`. - * `template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: """ return pulumi.get(self, "autoscale") @@ -312,6 +380,46 @@ def autoscale(self) -> Optional[pulumi.Input[bool]]: def autoscale(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "autoscale", value) + @property + @pulumi.getter(name="autoscalingScaleDownUnneededTimeSeconds") + def autoscaling_scale_down_unneeded_time_seconds(self) -> Optional[pulumi.Input[int]]: + """ + scaleDownUnneededTimeSeconds autoscaling parameter + How long a node should be unneeded before it is eligible for scale down + """ + return pulumi.get(self, "autoscaling_scale_down_unneeded_time_seconds") + + @autoscaling_scale_down_unneeded_time_seconds.setter + def autoscaling_scale_down_unneeded_time_seconds(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "autoscaling_scale_down_unneeded_time_seconds", value) + + @property + @pulumi.getter(name="autoscalingScaleDownUnreadyTimeSeconds") + def autoscaling_scale_down_unready_time_seconds(self) -> Optional[pulumi.Input[int]]: + """ + scaleDownUnreadyTimeSeconds autoscaling parameter + How long an unready node should be unneeded before it is eligible for scale down + """ + return pulumi.get(self, "autoscaling_scale_down_unready_time_seconds") + + @autoscaling_scale_down_unready_time_seconds.setter + def autoscaling_scale_down_unready_time_seconds(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "autoscaling_scale_down_unready_time_seconds", value) + + @property + @pulumi.getter(name="autoscalingScaleDownUtilizationThreshold") + def autoscaling_scale_down_utilization_threshold(self) -> Optional[pulumi.Input[float]]: + """ + 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 + * `template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: + """ + return pulumi.get(self, "autoscaling_scale_down_utilization_threshold") + + @autoscaling_scale_down_utilization_threshold.setter + def autoscaling_scale_down_utilization_threshold(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "autoscaling_scale_down_utilization_threshold", value) + @property @pulumi.getter(name="availableNodes") def available_nodes(self) -> Optional[pulumi.Input[int]]: @@ -537,6 +645,9 @@ def __init__(__self__, opts: Optional[pulumi.ResourceOptions] = None, anti_affinity: Optional[pulumi.Input[bool]] = None, autoscale: Optional[pulumi.Input[bool]] = None, + autoscaling_scale_down_unneeded_time_seconds: Optional[pulumi.Input[int]] = None, + autoscaling_scale_down_unready_time_seconds: Optional[pulumi.Input[int]] = None, + autoscaling_scale_down_utilization_threshold: Optional[pulumi.Input[float]] = None, desired_nodes: Optional[pulumi.Input[int]] = None, flavor_name: Optional[pulumi.Input[str]] = None, kube_id: Optional[pulumi.Input[str]] = None, @@ -608,16 +719,24 @@ def __init__(__self__, ## Import - OVHcloud 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., bash + OVHcloud 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., + + bash ```sh - $ pulumi import ovh:CloudProject/kubeNodePool:KubeNodePool pool service_name/kube_id/poolid + $ pulumi import ovh:CloudProject/kubeNodePool:KubeNodePool pool service_name/kube_id/poolid ``` :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[bool] anti_affinity: should the pool use the anti-affinity feature. Default to `false`. **Changing this value recreates the resource.** :param pulumi.Input[bool] autoscale: Enable auto-scaling for the pool. Default to `false`. + :param pulumi.Input[int] autoscaling_scale_down_unneeded_time_seconds: scaleDownUnneededTimeSeconds autoscaling parameter + How long a node should be unneeded before it is eligible for scale down + :param pulumi.Input[int] autoscaling_scale_down_unready_time_seconds: scaleDownUnreadyTimeSeconds autoscaling parameter + How long an unready node should be unneeded before it is eligible for scale down + :param pulumi.Input[float] autoscaling_scale_down_utilization_threshold: 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 * `template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: :param pulumi.Input[int] desired_nodes: number of nodes to start. :param pulumi.Input[str] flavor_name: 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/. @@ -697,10 +816,12 @@ def __init__(__self__, ## Import - OVHcloud 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., bash + OVHcloud 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., + + bash ```sh - $ pulumi import ovh:CloudProject/kubeNodePool:KubeNodePool pool service_name/kube_id/poolid + $ pulumi import ovh:CloudProject/kubeNodePool:KubeNodePool pool service_name/kube_id/poolid ``` :param str resource_name: The name of the resource. @@ -720,6 +841,9 @@ def _internal_init(__self__, opts: Optional[pulumi.ResourceOptions] = None, anti_affinity: Optional[pulumi.Input[bool]] = None, autoscale: Optional[pulumi.Input[bool]] = None, + autoscaling_scale_down_unneeded_time_seconds: Optional[pulumi.Input[int]] = None, + autoscaling_scale_down_unready_time_seconds: Optional[pulumi.Input[int]] = None, + autoscaling_scale_down_utilization_threshold: Optional[pulumi.Input[float]] = None, desired_nodes: Optional[pulumi.Input[int]] = None, flavor_name: Optional[pulumi.Input[str]] = None, kube_id: Optional[pulumi.Input[str]] = None, @@ -740,6 +864,9 @@ def _internal_init(__self__, __props__.__dict__["anti_affinity"] = anti_affinity __props__.__dict__["autoscale"] = autoscale + __props__.__dict__["autoscaling_scale_down_unneeded_time_seconds"] = autoscaling_scale_down_unneeded_time_seconds + __props__.__dict__["autoscaling_scale_down_unready_time_seconds"] = autoscaling_scale_down_unready_time_seconds + __props__.__dict__["autoscaling_scale_down_utilization_threshold"] = autoscaling_scale_down_utilization_threshold __props__.__dict__["desired_nodes"] = desired_nodes if flavor_name is None and not opts.urn: raise TypeError("Missing required property 'flavor_name'") @@ -776,6 +903,9 @@ def get(resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, anti_affinity: Optional[pulumi.Input[bool]] = None, autoscale: Optional[pulumi.Input[bool]] = None, + autoscaling_scale_down_unneeded_time_seconds: Optional[pulumi.Input[int]] = None, + autoscaling_scale_down_unready_time_seconds: Optional[pulumi.Input[int]] = None, + autoscaling_scale_down_utilization_threshold: Optional[pulumi.Input[float]] = None, available_nodes: Optional[pulumi.Input[int]] = None, created_at: Optional[pulumi.Input[str]] = None, current_nodes: Optional[pulumi.Input[int]] = None, @@ -803,6 +933,12 @@ def get(resource_name: str, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[bool] anti_affinity: should the pool use the anti-affinity feature. Default to `false`. **Changing this value recreates the resource.** :param pulumi.Input[bool] autoscale: Enable auto-scaling for the pool. Default to `false`. + :param pulumi.Input[int] autoscaling_scale_down_unneeded_time_seconds: scaleDownUnneededTimeSeconds autoscaling parameter + How long a node should be unneeded before it is eligible for scale down + :param pulumi.Input[int] autoscaling_scale_down_unready_time_seconds: scaleDownUnreadyTimeSeconds autoscaling parameter + How long an unready node should be unneeded before it is eligible for scale down + :param pulumi.Input[float] autoscaling_scale_down_utilization_threshold: 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 * `template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: :param pulumi.Input[int] available_nodes: Number of nodes which are actually ready in the pool :param pulumi.Input[str] created_at: Creation date @@ -830,6 +966,9 @@ def get(resource_name: str, __props__.__dict__["anti_affinity"] = anti_affinity __props__.__dict__["autoscale"] = autoscale + __props__.__dict__["autoscaling_scale_down_unneeded_time_seconds"] = autoscaling_scale_down_unneeded_time_seconds + __props__.__dict__["autoscaling_scale_down_unready_time_seconds"] = autoscaling_scale_down_unready_time_seconds + __props__.__dict__["autoscaling_scale_down_utilization_threshold"] = autoscaling_scale_down_utilization_threshold __props__.__dict__["available_nodes"] = available_nodes __props__.__dict__["created_at"] = created_at __props__.__dict__["current_nodes"] = current_nodes @@ -863,10 +1002,37 @@ def anti_affinity(self) -> pulumi.Output[bool]: def autoscale(self) -> pulumi.Output[bool]: """ Enable auto-scaling for the pool. Default to `false`. - * `template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: """ return pulumi.get(self, "autoscale") + @property + @pulumi.getter(name="autoscalingScaleDownUnneededTimeSeconds") + def autoscaling_scale_down_unneeded_time_seconds(self) -> pulumi.Output[int]: + """ + scaleDownUnneededTimeSeconds autoscaling parameter + How long a node should be unneeded before it is eligible for scale down + """ + return pulumi.get(self, "autoscaling_scale_down_unneeded_time_seconds") + + @property + @pulumi.getter(name="autoscalingScaleDownUnreadyTimeSeconds") + def autoscaling_scale_down_unready_time_seconds(self) -> pulumi.Output[int]: + """ + scaleDownUnreadyTimeSeconds autoscaling parameter + How long an unready node should be unneeded before it is eligible for scale down + """ + return pulumi.get(self, "autoscaling_scale_down_unready_time_seconds") + + @property + @pulumi.getter(name="autoscalingScaleDownUtilizationThreshold") + def autoscaling_scale_down_utilization_threshold(self) -> pulumi.Output[float]: + """ + 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 + * `template ` - (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects: + """ + return pulumi.get(self, "autoscaling_scale_down_utilization_threshold") + @property @pulumi.getter(name="availableNodes") def available_nodes(self) -> pulumi.Output[int]: diff --git a/sdk/python/pulumi_ovh/cloudproject/kube_oidc.py b/sdk/python/pulumi_ovh/cloudproject/kube_oidc.py index 6da0ecd5..d9a751a1 100644 --- a/sdk/python/pulumi_ovh/cloudproject/kube_oidc.py +++ b/sdk/python/pulumi_ovh/cloudproject/kube_oidc.py @@ -361,10 +361,12 @@ def __init__(__self__, ## Import - OVHcloud Managed Kubernetes Service cluster OIDC can be imported using the tenant `service_name` and cluster id `kube_id` separated by "/" E.g., bash + OVHcloud Managed Kubernetes Service cluster OIDC can be imported using the tenant `service_name` and cluster id `kube_id` separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProject/kubeOidc:KubeOidc my-oidc service_name/kube_id + $ pulumi import ovh:CloudProject/kubeOidc:KubeOidc my-oidc service_name/kube_id ``` :param str resource_name: The name of the resource. @@ -405,10 +407,12 @@ def __init__(__self__, ## Import - OVHcloud Managed Kubernetes Service cluster OIDC can be imported using the tenant `service_name` and cluster id `kube_id` separated by "/" E.g., bash + OVHcloud Managed Kubernetes Service cluster OIDC can be imported using the tenant `service_name` and cluster id `kube_id` separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProject/kubeOidc:KubeOidc my-oidc service_name/kube_id + $ pulumi import ovh:CloudProject/kubeOidc:KubeOidc my-oidc service_name/kube_id ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/cloudproject/network_private.py b/sdk/python/pulumi_ovh/cloudproject/network_private.py index d905b30c..4c7c4061 100644 --- a/sdk/python/pulumi_ovh/cloudproject/network_private.py +++ b/sdk/python/pulumi_ovh/cloudproject/network_private.py @@ -277,10 +277,12 @@ def __init__(__self__, ## Import - Private network in a public cloud project can be imported using the `service_name` and the `network_id`, separated by "/" E.g., bash + Private network in a public cloud project can be imported using the `service_name` and the `network_id`, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProject/networkPrivate:NetworkPrivate mynet ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678 + $ pulumi import ovh:CloudProject/networkPrivate:NetworkPrivate mynet ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678 ``` :param str resource_name: The name of the resource. @@ -318,10 +320,12 @@ def __init__(__self__, ## Import - Private network in a public cloud project can be imported using the `service_name` and the `network_id`, separated by "/" E.g., bash + Private network in a public cloud project can be imported using the `service_name` and the `network_id`, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProject/networkPrivate:NetworkPrivate mynet ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678 + $ pulumi import ovh:CloudProject/networkPrivate:NetworkPrivate mynet ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678 ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/cloudproject/network_private_subnet.py b/sdk/python/pulumi_ovh/cloudproject/network_private_subnet.py index bba55b24..831b3b28 100644 --- a/sdk/python/pulumi_ovh/cloudproject/network_private_subnet.py +++ b/sdk/python/pulumi_ovh/cloudproject/network_private_subnet.py @@ -409,10 +409,12 @@ def __init__(__self__, ## Import - Subnet in a private network of a public cloud project can be imported using the `service_name` , the `network_id` and the `subnet_id`, separated by "/" E.g., bash + Subnet in a private network of a public cloud project can be imported using the `service_name` , the `network_id` and the `subnet_id`, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProject/networkPrivateSubnet:NetworkPrivateSubnet mysubnet ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678/0f0b73a4-403b-45e4-86d0-b438f1291909 + $ pulumi import ovh:CloudProject/networkPrivateSubnet:NetworkPrivateSubnet mysubnet ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678/0f0b73a4-403b-45e4-86d0-b438f1291909 ``` :param str resource_name: The name of the resource. @@ -463,10 +465,12 @@ def __init__(__self__, ## Import - Subnet in a private network of a public cloud project can be imported using the `service_name` , the `network_id` and the `subnet_id`, separated by "/" E.g., bash + Subnet in a private network of a public cloud project can be imported using the `service_name` , the `network_id` and the `subnet_id`, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProject/networkPrivateSubnet:NetworkPrivateSubnet mysubnet ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678/0f0b73a4-403b-45e4-86d0-b438f1291909 + $ pulumi import ovh:CloudProject/networkPrivateSubnet:NetworkPrivateSubnet mysubnet ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678/0f0b73a4-403b-45e4-86d0-b438f1291909 ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/cloudproject/outputs.py b/sdk/python/pulumi_ovh/cloudproject/outputs.py index cba7e914..16c7c2de 100644 --- a/sdk/python/pulumi_ovh/cloudproject/outputs.py +++ b/sdk/python/pulumi_ovh/cloudproject/outputs.py @@ -835,7 +835,7 @@ def __init__(__self__, *, taints: Sequence[Mapping[str, Any]], unschedulable: bool): """ - :param Sequence[Mapping[str, Any]] taints: Taints to apply to each node + :param Sequence[Mapping[str, Any]] taints: Taints to apply to each node [NodeSpec kubernetes documentation](https://kubernetes.io/docs/reference/kubernetes-api/cluster-resources/node-v1/#NodeSpec) :param bool unschedulable: If true, set nodes as un-schedulable """ pulumi.set(__self__, "taints", taints) @@ -845,7 +845,7 @@ def __init__(__self__, *, @pulumi.getter def taints(self) -> Sequence[Mapping[str, Any]]: """ - Taints to apply to each node + Taints to apply to each node [NodeSpec kubernetes documentation](https://kubernetes.io/docs/reference/kubernetes-api/cluster-resources/node-v1/#NodeSpec) """ return pulumi.get(self, "taints") @@ -2191,6 +2191,10 @@ class GetKubeNodePoolTemplateResult(dict): def __init__(__self__, *, metadata: Optional['outputs.GetKubeNodePoolTemplateMetadataResult'] = None, spec: Optional['outputs.GetKubeNodePoolTemplateSpecResult'] = None): + """ + :param 'GetKubeNodePoolTemplateMetadataArgs' metadata: metadata + :param 'GetKubeNodePoolTemplateSpecArgs' spec: spec + """ if metadata is not None: pulumi.set(__self__, "metadata", metadata) if spec is not None: @@ -2199,11 +2203,17 @@ def __init__(__self__, *, @property @pulumi.getter def metadata(self) -> Optional['outputs.GetKubeNodePoolTemplateMetadataResult']: + """ + metadata + """ return pulumi.get(self, "metadata") @property @pulumi.getter def spec(self) -> Optional['outputs.GetKubeNodePoolTemplateSpecResult']: + """ + spec + """ return pulumi.get(self, "spec") @@ -2213,6 +2223,11 @@ def __init__(__self__, *, annotations: Optional[Mapping[str, str]] = None, finalizers: Optional[Sequence[str]] = None, labels: Optional[Mapping[str, str]] = None): + """ + :param Mapping[str, str] annotations: annotations + :param Sequence[str] finalizers: finalizers + :param Mapping[str, str] labels: labels + """ if annotations is not None: pulumi.set(__self__, "annotations", annotations) if finalizers is not None: @@ -2223,16 +2238,25 @@ def __init__(__self__, *, @property @pulumi.getter def annotations(self) -> Optional[Mapping[str, str]]: + """ + annotations + """ return pulumi.get(self, "annotations") @property @pulumi.getter def finalizers(self) -> Optional[Sequence[str]]: + """ + finalizers + """ return pulumi.get(self, "finalizers") @property @pulumi.getter def labels(self) -> Optional[Mapping[str, str]]: + """ + labels + """ return pulumi.get(self, "labels") @@ -2241,6 +2265,10 @@ class GetKubeNodePoolTemplateSpecResult(dict): def __init__(__self__, *, taints: Optional[Sequence[Mapping[str, Any]]] = None, unschedulable: Optional[bool] = None): + """ + :param Sequence[Mapping[str, Any]] taints: taints + :param bool unschedulable: unschedulable + """ if taints is not None: pulumi.set(__self__, "taints", taints) if unschedulable is not None: @@ -2249,11 +2277,17 @@ def __init__(__self__, *, @property @pulumi.getter def taints(self) -> Optional[Sequence[Mapping[str, Any]]]: + """ + taints + """ return pulumi.get(self, "taints") @property @pulumi.getter def unschedulable(self) -> Optional[bool]: + """ + unschedulable + """ return pulumi.get(self, "unschedulable") diff --git a/sdk/python/pulumi_ovh/cloudproject/project.py b/sdk/python/pulumi_ovh/cloudproject/project.py index 58e45968..73d4cc88 100644 --- a/sdk/python/pulumi_ovh/cloudproject/project.py +++ b/sdk/python/pulumi_ovh/cloudproject/project.py @@ -307,10 +307,10 @@ def __init__(__self__, Cloud project can be imported using the `order_id` that can be retrieved in the [order page](https://www.ovh.com/manager/#/dedicated/billing/orders/orders) at the creation time of the Public Cloud project. - bash + bash ```sh - $ pulumi import ovh:CloudProject/project:Project my_cloud_project order_id + $ pulumi import ovh:CloudProject/project:Project my_cloud_project order_id ``` :param str resource_name: The name of the resource. @@ -332,10 +332,10 @@ def __init__(__self__, Cloud project can be imported using the `order_id` that can be retrieved in the [order page](https://www.ovh.com/manager/#/dedicated/billing/orders/orders) at the creation time of the Public Cloud project. - bash + bash ```sh - $ pulumi import ovh:CloudProject/project:Project my_cloud_project order_id + $ pulumi import ovh:CloudProject/project:Project my_cloud_project order_id ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/cloudproject/s3_credential.py b/sdk/python/pulumi_ovh/cloudproject/s3_credential.py index 16968227..aa4b124e 100644 --- a/sdk/python/pulumi_ovh/cloudproject/s3_credential.py +++ b/sdk/python/pulumi_ovh/cloudproject/s3_credential.py @@ -150,10 +150,12 @@ def __init__(__self__, ## Import - OVHcloud User S3 Credentials can be imported using the `service_name`, `user_id` and `access_key_id` of the credential, separated by "/" E.g., bash + OVHcloud User S3 Credentials can be imported using the `service_name`, `user_id` and `access_key_id` of the credential, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProject/s3Credential:S3Credential s3_credential service_name/user_id/access_key_id + $ pulumi import ovh:CloudProject/s3Credential:S3Credential s3_credential service_name/user_id/access_key_id ``` :param str resource_name: The name of the resource. @@ -173,10 +175,12 @@ def __init__(__self__, ## Import - OVHcloud User S3 Credentials can be imported using the `service_name`, `user_id` and `access_key_id` of the credential, separated by "/" E.g., bash + OVHcloud User S3 Credentials can be imported using the `service_name`, `user_id` and `access_key_id` of the credential, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProject/s3Credential:S3Credential s3_credential service_name/user_id/access_key_id + $ pulumi import ovh:CloudProject/s3Credential:S3Credential s3_credential service_name/user_id/access_key_id ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/cloudproject/s3_policy.py b/sdk/python/pulumi_ovh/cloudproject/s3_policy.py index daa2b27d..3a3e45e1 100644 --- a/sdk/python/pulumi_ovh/cloudproject/s3_policy.py +++ b/sdk/python/pulumi_ovh/cloudproject/s3_policy.py @@ -177,10 +177,12 @@ def __init__(__self__, ## Import - OVHcloud User S3 Policy can be imported using the `service_name`, `user_id` of the policy, separated by "/" E.g., bash + OVHcloud User S3 Policy can be imported using the `service_name`, `user_id` of the policy, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProject/s3Policy:S3Policy policy service_name/user_id + $ pulumi import ovh:CloudProject/s3Policy:S3Policy policy service_name/user_id ``` :param str resource_name: The name of the resource. @@ -240,10 +242,12 @@ def __init__(__self__, ## Import - OVHcloud User S3 Policy can be imported using the `service_name`, `user_id` of the policy, separated by "/" E.g., bash + OVHcloud User S3 Policy can be imported using the `service_name`, `user_id` of the policy, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProject/s3Policy:S3Policy policy service_name/user_id + $ pulumi import ovh:CloudProject/s3Policy:S3Policy policy service_name/user_id ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/cloudprojectdatabase/__init__.py b/sdk/python/pulumi_ovh/cloudprojectdatabase/__init__.py index ccadd161..862b4f86 100644 --- a/sdk/python/pulumi_ovh/cloudprojectdatabase/__init__.py +++ b/sdk/python/pulumi_ovh/cloudprojectdatabase/__init__.py @@ -22,6 +22,7 @@ from .get_kafka_topic import * from .get_kafka_topics import * from .get_kafka_user_access import * +from .get_postgres_sql_connection_pool import * from .get_postgres_sql_user import * from .get_user import * from .get_users import * @@ -35,6 +36,7 @@ from .mongo_db_user import * from .opensearch_pattern import * from .opensearch_user import * +from .postgres_sql_connection_pool import * from .postgres_sql_user import * from .redis_user import * from .user import * diff --git a/sdk/python/pulumi_ovh/cloudprojectdatabase/database_instance.py b/sdk/python/pulumi_ovh/cloudprojectdatabase/database_instance.py index 8f3001de..19973fd6 100644 --- a/sdk/python/pulumi_ovh/cloudprojectdatabase/database_instance.py +++ b/sdk/python/pulumi_ovh/cloudprojectdatabase/database_instance.py @@ -211,10 +211,12 @@ def __init__(__self__, ## Import - OVHcloud Managed database clusters databases can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the database, separated by "/" E.g., bash + OVHcloud Managed database clusters databases can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the database, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProjectDatabase/databaseInstance:DatabaseInstance my_database service_name/engine/cluster_id/id + $ pulumi import ovh:CloudProjectDatabase/databaseInstance:DatabaseInstance my_database service_name/engine/cluster_id/id ``` :param str resource_name: The name of the resource. @@ -257,10 +259,12 @@ def __init__(__self__, ## Import - OVHcloud Managed database clusters databases can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the database, separated by "/" E.g., bash + OVHcloud Managed database clusters databases can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the database, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProjectDatabase/databaseInstance:DatabaseInstance my_database service_name/engine/cluster_id/id + $ pulumi import ovh:CloudProjectDatabase/databaseInstance:DatabaseInstance my_database service_name/engine/cluster_id/id ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/cloudprojectdatabase/get_database.py b/sdk/python/pulumi_ovh/cloudprojectdatabase/get_database.py index 8311013f..1c2ae50f 100644 --- a/sdk/python/pulumi_ovh/cloudprojectdatabase/get_database.py +++ b/sdk/python/pulumi_ovh/cloudprojectdatabase/get_database.py @@ -22,10 +22,13 @@ class GetDatabaseResult: """ A collection of values returned by getDatabase. """ - def __init__(__self__, advanced_configuration=None, backup_time=None, created_at=None, description=None, disk_size=None, disk_type=None, endpoints=None, engine=None, flavor=None, id=None, kafka_rest_api=None, maintenance_time=None, network_type=None, nodes=None, opensearch_acls_enabled=None, plan=None, service_name=None, status=None, version=None): + def __init__(__self__, advanced_configuration=None, backup_regions=None, backup_time=None, created_at=None, description=None, disk_size=None, disk_type=None, endpoints=None, engine=None, flavor=None, id=None, kafka_rest_api=None, maintenance_time=None, network_type=None, nodes=None, opensearch_acls_enabled=None, plan=None, service_name=None, status=None, version=None): if advanced_configuration and not isinstance(advanced_configuration, dict): raise TypeError("Expected argument 'advanced_configuration' to be a dict") pulumi.set(__self__, "advanced_configuration", advanced_configuration) + if backup_regions and not isinstance(backup_regions, list): + raise TypeError("Expected argument 'backup_regions' to be a list") + pulumi.set(__self__, "backup_regions", backup_regions) if backup_time and not isinstance(backup_time, str): raise TypeError("Expected argument 'backup_time' to be a str") pulumi.set(__self__, "backup_time", backup_time) @@ -89,6 +92,14 @@ def advanced_configuration(self) -> Mapping[str, str]: """ return pulumi.get(self, "advanced_configuration") + @property + @pulumi.getter(name="backupRegions") + def backup_regions(self) -> Sequence[str]: + """ + List of region where backups are pushed. + """ + return pulumi.get(self, "backup_regions") + @property @pulumi.getter(name="backupTime") def backup_time(self) -> str: @@ -238,6 +249,7 @@ def __await__(self): yield self return GetDatabaseResult( advanced_configuration=self.advanced_configuration, + backup_regions=self.backup_regions, backup_time=self.backup_time, created_at=self.created_at, description=self.description, @@ -295,6 +307,7 @@ def get_database(engine: Optional[str] = None, return AwaitableGetDatabaseResult( advanced_configuration=pulumi.get(__ret__, 'advanced_configuration'), + backup_regions=pulumi.get(__ret__, 'backup_regions'), backup_time=pulumi.get(__ret__, 'backup_time'), created_at=pulumi.get(__ret__, 'created_at'), description=pulumi.get(__ret__, 'description'), diff --git a/sdk/python/pulumi_ovh/cloudprojectdatabase/get_postgres_sql_connection_pool.py b/sdk/python/pulumi_ovh/cloudprojectdatabase/get_postgres_sql_connection_pool.py new file mode 100644 index 00000000..2e2f0994 --- /dev/null +++ b/sdk/python/pulumi_ovh/cloudprojectdatabase/get_postgres_sql_connection_pool.py @@ -0,0 +1,262 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +__all__ = [ + 'GetPostgresSqlConnectionPoolResult', + 'AwaitableGetPostgresSqlConnectionPoolResult', + 'get_postgres_sql_connection_pool', + 'get_postgres_sql_connection_pool_output', +] + +@pulumi.output_type +class GetPostgresSqlConnectionPoolResult: + """ + A collection of values returned by getPostgresSqlConnectionPool. + """ + def __init__(__self__, cluster_id=None, database_id=None, id=None, mode=None, name=None, port=None, service_name=None, size=None, ssl_mode=None, uri=None, user_id=None): + if cluster_id and not isinstance(cluster_id, str): + raise TypeError("Expected argument 'cluster_id' to be a str") + pulumi.set(__self__, "cluster_id", cluster_id) + if database_id and not isinstance(database_id, str): + raise TypeError("Expected argument 'database_id' to be a str") + pulumi.set(__self__, "database_id", database_id) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if mode and not isinstance(mode, str): + raise TypeError("Expected argument 'mode' to be a str") + pulumi.set(__self__, "mode", mode) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if port and not isinstance(port, int): + raise TypeError("Expected argument 'port' to be a int") + pulumi.set(__self__, "port", port) + if service_name and not isinstance(service_name, str): + raise TypeError("Expected argument 'service_name' to be a str") + pulumi.set(__self__, "service_name", service_name) + if size and not isinstance(size, int): + raise TypeError("Expected argument 'size' to be a int") + pulumi.set(__self__, "size", size) + if ssl_mode and not isinstance(ssl_mode, str): + raise TypeError("Expected argument 'ssl_mode' to be a str") + pulumi.set(__self__, "ssl_mode", ssl_mode) + if uri and not isinstance(uri, str): + raise TypeError("Expected argument 'uri' to be a str") + pulumi.set(__self__, "uri", uri) + if user_id and not isinstance(user_id, str): + raise TypeError("Expected argument 'user_id' to be a str") + pulumi.set(__self__, "user_id", user_id) + + @property + @pulumi.getter(name="clusterId") + def cluster_id(self) -> str: + """ + See Argument Reference above + """ + return pulumi.get(self, "cluster_id") + + @property + @pulumi.getter(name="databaseId") + def database_id(self) -> str: + """ + Database ID for a database that belongs to the Database cluster given above. + """ + return pulumi.get(self, "database_id") + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter + def mode(self) -> str: + """ + Connection mode to the connection pool + Available modes: + """ + return pulumi.get(self, "mode") + + @property + @pulumi.getter + def name(self) -> str: + """ + See Argument Reference above + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def port(self) -> int: + """ + Port of the connection pool. + """ + return pulumi.get(self, "port") + + @property + @pulumi.getter(name="serviceName") + def service_name(self) -> str: + """ + See Argument Reference above + """ + return pulumi.get(self, "service_name") + + @property + @pulumi.getter + def size(self) -> int: + """ + Size of the connection pool. + """ + return pulumi.get(self, "size") + + @property + @pulumi.getter(name="sslMode") + def ssl_mode(self) -> str: + """ + Ssl connection mode for the pool. + """ + return pulumi.get(self, "ssl_mode") + + @property + @pulumi.getter + def uri(self) -> str: + """ + Connection URI to the pool. + """ + return pulumi.get(self, "uri") + + @property + @pulumi.getter(name="userId") + def user_id(self) -> str: + """ + Database user authorized to connect to the pool, if none all the users are allowed. + """ + return pulumi.get(self, "user_id") + + +class AwaitableGetPostgresSqlConnectionPoolResult(GetPostgresSqlConnectionPoolResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetPostgresSqlConnectionPoolResult( + cluster_id=self.cluster_id, + database_id=self.database_id, + id=self.id, + mode=self.mode, + name=self.name, + port=self.port, + service_name=self.service_name, + size=self.size, + ssl_mode=self.ssl_mode, + uri=self.uri, + user_id=self.user_id) + + +def get_postgres_sql_connection_pool(cluster_id: Optional[str] = None, + name: Optional[str] = None, + service_name: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetPostgresSqlConnectionPoolResult: + """ + Use this data source to get information about a connection pool of a postgresql cluster associated with a public cloud project. + + ## Example Usage + + ```python + import pulumi + import pulumi_ovh as ovh + + test_pool_postgres_sql_connection_pool = ovh.CloudProjectDatabase.get_postgres_sql_connection_pool(service_name="XXX", + cluster_id="YYY", + name="ZZZ") + pulumi.export("testPool", { + "service_name": test_pool_postgres_sql_connection_pool.service_name, + "cluster_id": test_pool_postgres_sql_connection_pool.cluster_id, + "name": test_pool_postgres_sql_connection_pool.name, + "database_id": test_pool_postgres_sql_connection_pool.database_id, + "mode": test_pool_postgres_sql_connection_pool.mode, + "size": test_pool_postgres_sql_connection_pool.size, + "port": test_pool_postgres_sql_connection_pool.port, + "ssl_mode": test_pool_postgres_sql_connection_pool.ssl_mode, + "uri": test_pool_postgres_sql_connection_pool.uri, + "user_id": test_pool_postgres_sql_connection_pool.user_id, + }) + ``` + + + :param str cluster_id: Cluster ID. + :param str name: Name of the Connection pool. + :param str service_name: The id of the public cloud project. If omitted, + the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + """ + __args__ = dict() + __args__['clusterId'] = cluster_id + __args__['name'] = name + __args__['serviceName'] = service_name + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('ovh:CloudProjectDatabase/getPostgresSqlConnectionPool:getPostgresSqlConnectionPool', __args__, opts=opts, typ=GetPostgresSqlConnectionPoolResult).value + + return AwaitableGetPostgresSqlConnectionPoolResult( + cluster_id=pulumi.get(__ret__, 'cluster_id'), + database_id=pulumi.get(__ret__, 'database_id'), + id=pulumi.get(__ret__, 'id'), + mode=pulumi.get(__ret__, 'mode'), + name=pulumi.get(__ret__, 'name'), + port=pulumi.get(__ret__, 'port'), + service_name=pulumi.get(__ret__, 'service_name'), + size=pulumi.get(__ret__, 'size'), + ssl_mode=pulumi.get(__ret__, 'ssl_mode'), + uri=pulumi.get(__ret__, 'uri'), + user_id=pulumi.get(__ret__, 'user_id')) + + +@_utilities.lift_output_func(get_postgres_sql_connection_pool) +def get_postgres_sql_connection_pool_output(cluster_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetPostgresSqlConnectionPoolResult]: + """ + Use this data source to get information about a connection pool of a postgresql cluster associated with a public cloud project. + + ## Example Usage + + ```python + import pulumi + import pulumi_ovh as ovh + + test_pool_postgres_sql_connection_pool = ovh.CloudProjectDatabase.get_postgres_sql_connection_pool(service_name="XXX", + cluster_id="YYY", + name="ZZZ") + pulumi.export("testPool", { + "service_name": test_pool_postgres_sql_connection_pool.service_name, + "cluster_id": test_pool_postgres_sql_connection_pool.cluster_id, + "name": test_pool_postgres_sql_connection_pool.name, + "database_id": test_pool_postgres_sql_connection_pool.database_id, + "mode": test_pool_postgres_sql_connection_pool.mode, + "size": test_pool_postgres_sql_connection_pool.size, + "port": test_pool_postgres_sql_connection_pool.port, + "ssl_mode": test_pool_postgres_sql_connection_pool.ssl_mode, + "uri": test_pool_postgres_sql_connection_pool.uri, + "user_id": test_pool_postgres_sql_connection_pool.user_id, + }) + ``` + + + :param str cluster_id: Cluster ID. + :param str name: Name of the Connection pool. + :param str service_name: The id of the public cloud project. If omitted, + the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + """ + ... diff --git a/sdk/python/pulumi_ovh/cloudprojectdatabase/integration.py b/sdk/python/pulumi_ovh/cloudprojectdatabase/integration.py index 269e9dad..499d8abb 100644 --- a/sdk/python/pulumi_ovh/cloudprojectdatabase/integration.py +++ b/sdk/python/pulumi_ovh/cloudprojectdatabase/integration.py @@ -319,10 +319,12 @@ def __init__(__self__, ## Import - OVHcloud Managed database clusters users can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the user, separated by "/" E.g., bash + OVHcloud Managed database clusters users can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the user, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProjectDatabase/integration:Integration my_user service_name/engine/cluster_id/id + $ pulumi import ovh:CloudProjectDatabase/integration:Integration my_user service_name/engine/cluster_id/id ``` :param str resource_name: The name of the resource. @@ -376,10 +378,12 @@ def __init__(__self__, ## Import - OVHcloud Managed database clusters users can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the user, separated by "/" E.g., bash + OVHcloud Managed database clusters users can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the user, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProjectDatabase/integration:Integration my_user service_name/engine/cluster_id/id + $ pulumi import ovh:CloudProjectDatabase/integration:Integration my_user service_name/engine/cluster_id/id ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/cloudprojectdatabase/ip_restriction.py b/sdk/python/pulumi_ovh/cloudprojectdatabase/ip_restriction.py index e47c6f8a..35c5c1bf 100644 --- a/sdk/python/pulumi_ovh/cloudprojectdatabase/ip_restriction.py +++ b/sdk/python/pulumi_ovh/cloudprojectdatabase/ip_restriction.py @@ -239,10 +239,12 @@ def __init__(__self__, ## Import - OVHcloud Managed database cluster IP restrictions can be imported using the `service_name`, `engine`, `cluster_id` and the `ip`, separated by "/" E.g., bash + OVHcloud Managed database cluster IP restrictions can be imported using the `service_name`, `engine`, `cluster_id` and the `ip`, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProjectDatabase/ipRestriction:IpRestriction my_ip_restriction service_name/engine/cluster_id/178.97.6.0/24 + $ pulumi import ovh:CloudProjectDatabase/ipRestriction:IpRestriction my_ip_restriction service_name/engine/cluster_id/178.97.6.0/24 ``` :param str resource_name: The name of the resource. @@ -282,10 +284,12 @@ def __init__(__self__, ## Import - OVHcloud Managed database cluster IP restrictions can be imported using the `service_name`, `engine`, `cluster_id` and the `ip`, separated by "/" E.g., bash + OVHcloud Managed database cluster IP restrictions can be imported using the `service_name`, `engine`, `cluster_id` and the `ip`, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProjectDatabase/ipRestriction:IpRestriction my_ip_restriction service_name/engine/cluster_id/178.97.6.0/24 + $ pulumi import ovh:CloudProjectDatabase/ipRestriction:IpRestriction my_ip_restriction service_name/engine/cluster_id/178.97.6.0/24 ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/cloudprojectdatabase/kafka_acl.py b/sdk/python/pulumi_ovh/cloudprojectdatabase/kafka_acl.py index 6688be2e..ddcdfe40 100644 --- a/sdk/python/pulumi_ovh/cloudprojectdatabase/kafka_acl.py +++ b/sdk/python/pulumi_ovh/cloudprojectdatabase/kafka_acl.py @@ -223,10 +223,12 @@ def __init__(__self__, ## Import - OVHcloud Managed kafka clusters ACLs can be imported using the `service_name`, `cluster_id` and `id` of the acl, separated by "/" E.g., bash + OVHcloud Managed kafka clusters ACLs can be imported using the `service_name`, `cluster_id` and `id` of the acl, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProjectDatabase/kafkaAcl:KafkaAcl my_acl service_name/cluster_id/id + $ pulumi import ovh:CloudProjectDatabase/kafkaAcl:KafkaAcl my_acl service_name/cluster_id/id ``` :param str resource_name: The name of the resource. @@ -267,10 +269,12 @@ def __init__(__self__, ## Import - OVHcloud Managed kafka clusters ACLs can be imported using the `service_name`, `cluster_id` and `id` of the acl, separated by "/" E.g., bash + OVHcloud Managed kafka clusters ACLs can be imported using the `service_name`, `cluster_id` and `id` of the acl, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProjectDatabase/kafkaAcl:KafkaAcl my_acl service_name/cluster_id/id + $ pulumi import ovh:CloudProjectDatabase/kafkaAcl:KafkaAcl my_acl service_name/cluster_id/id ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/cloudprojectdatabase/kafka_schema_registry_acl.py b/sdk/python/pulumi_ovh/cloudprojectdatabase/kafka_schema_registry_acl.py index 96cfe04f..5c3482d7 100644 --- a/sdk/python/pulumi_ovh/cloudprojectdatabase/kafka_schema_registry_acl.py +++ b/sdk/python/pulumi_ovh/cloudprojectdatabase/kafka_schema_registry_acl.py @@ -223,10 +223,12 @@ def __init__(__self__, ## Import - OVHcloud 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., bash + OVHcloud 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., + + bash ```sh - $ pulumi import ovh:CloudProjectDatabase/kafkaSchemaRegistryAcl:KafkaSchemaRegistryAcl my_schemaRegistryAcl service_name/cluster_id/id + $ pulumi import ovh:CloudProjectDatabase/kafkaSchemaRegistryAcl:KafkaSchemaRegistryAcl my_schemaRegistryAcl service_name/cluster_id/id ``` :param str resource_name: The name of the resource. @@ -267,10 +269,12 @@ def __init__(__self__, ## Import - OVHcloud 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., bash + OVHcloud 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., + + bash ```sh - $ pulumi import ovh:CloudProjectDatabase/kafkaSchemaRegistryAcl:KafkaSchemaRegistryAcl my_schemaRegistryAcl service_name/cluster_id/id + $ pulumi import ovh:CloudProjectDatabase/kafkaSchemaRegistryAcl:KafkaSchemaRegistryAcl my_schemaRegistryAcl service_name/cluster_id/id ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/cloudprojectdatabase/kafka_topic.py b/sdk/python/pulumi_ovh/cloudprojectdatabase/kafka_topic.py index 74b3dede..c915fea5 100644 --- a/sdk/python/pulumi_ovh/cloudprojectdatabase/kafka_topic.py +++ b/sdk/python/pulumi_ovh/cloudprojectdatabase/kafka_topic.py @@ -323,10 +323,12 @@ def __init__(__self__, ## Import - OVHcloud Managed kafka clusters topics can be imported using the `service_name`, `cluster_id` and `id` of the topic, separated by "/" E.g., bash + OVHcloud Managed kafka clusters topics can be imported using the `service_name`, `cluster_id` and `id` of the topic, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProjectDatabase/kafkaTopic:KafkaTopic my_topic service_name/cluster_id/id + $ pulumi import ovh:CloudProjectDatabase/kafkaTopic:KafkaTopic my_topic service_name/cluster_id/id ``` :param str resource_name: The name of the resource. @@ -371,10 +373,12 @@ def __init__(__self__, ## Import - OVHcloud Managed kafka clusters topics can be imported using the `service_name`, `cluster_id` and `id` of the topic, separated by "/" E.g., bash + OVHcloud Managed kafka clusters topics can be imported using the `service_name`, `cluster_id` and `id` of the topic, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProjectDatabase/kafkaTopic:KafkaTopic my_topic service_name/cluster_id/id + $ pulumi import ovh:CloudProjectDatabase/kafkaTopic:KafkaTopic my_topic service_name/cluster_id/id ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/cloudprojectdatabase/m3_db_namespace.py b/sdk/python/pulumi_ovh/cloudprojectdatabase/m3_db_namespace.py index 95cef435..a0928dad 100644 --- a/sdk/python/pulumi_ovh/cloudprojectdatabase/m3_db_namespace.py +++ b/sdk/python/pulumi_ovh/cloudprojectdatabase/m3_db_namespace.py @@ -433,10 +433,12 @@ def __init__(__self__, ## Import - OVHcloud Managed M3DB clusters namespaces can be imported using the `service_name`, `cluster_id` and `id` of the namespace, separated by "/" E.g., bash + OVHcloud Managed M3DB clusters namespaces can be imported using the `service_name`, `cluster_id` and `id` of the namespace, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProjectDatabase/m3DbNamespace:M3DbNamespace my_namespace service_name/cluster_id/id + $ pulumi import ovh:CloudProjectDatabase/m3DbNamespace:M3DbNamespace my_namespace service_name/cluster_id/id ``` :param str resource_name: The name of the resource. @@ -481,10 +483,12 @@ def __init__(__self__, ## Import - OVHcloud Managed M3DB clusters namespaces can be imported using the `service_name`, `cluster_id` and `id` of the namespace, separated by "/" E.g., bash + OVHcloud Managed M3DB clusters namespaces can be imported using the `service_name`, `cluster_id` and `id` of the namespace, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProjectDatabase/m3DbNamespace:M3DbNamespace my_namespace service_name/cluster_id/id + $ pulumi import ovh:CloudProjectDatabase/m3DbNamespace:M3DbNamespace my_namespace service_name/cluster_id/id ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/cloudprojectdatabase/m3_db_user.py b/sdk/python/pulumi_ovh/cloudprojectdatabase/m3_db_user.py index dcd19129..f386e529 100644 --- a/sdk/python/pulumi_ovh/cloudprojectdatabase/m3_db_user.py +++ b/sdk/python/pulumi_ovh/cloudprojectdatabase/m3_db_user.py @@ -251,10 +251,12 @@ def __init__(__self__, """ ## Import - OVHcloud Managed M3DB clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., bash + OVHcloud Managed M3DB clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProjectDatabase/m3DbUser:M3DbUser my_user service_name/cluster_id/id + $ pulumi import ovh:CloudProjectDatabase/m3DbUser:M3DbUser my_user service_name/cluster_id/id ``` :param str resource_name: The name of the resource. @@ -275,10 +277,12 @@ def __init__(__self__, """ ## Import - OVHcloud Managed M3DB clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., bash + OVHcloud Managed M3DB clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProjectDatabase/m3DbUser:M3DbUser my_user service_name/cluster_id/id + $ pulumi import ovh:CloudProjectDatabase/m3DbUser:M3DbUser my_user service_name/cluster_id/id ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/cloudprojectdatabase/mongo_db_user.py b/sdk/python/pulumi_ovh/cloudprojectdatabase/mongo_db_user.py index 710717ed..e4f678cf 100644 --- a/sdk/python/pulumi_ovh/cloudprojectdatabase/mongo_db_user.py +++ b/sdk/python/pulumi_ovh/cloudprojectdatabase/mongo_db_user.py @@ -26,8 +26,25 @@ def __init__(__self__, *, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. :param pulumi.Input[str] name: Name of the user. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update - :param pulumi.Input[Sequence[pulumi.Input[str]]] roles: Roles the user belongs to. + :param pulumi.Input[Sequence[pulumi.Input[str]]] roles: Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles Available roles: + * `backup@admin` + * `clusterAdmin@admin` + * `clusterManager@admin` + * `clusterMonitor@admin` + * `dbAdmin@(defined db)` + * `dbAdminAnyDatabase@admin` + * `dbOwner@(defined db)` + * `enableSharding@(defined db)` + * `hostManager@admin` + * `read@(defined db)` + * `readAnyDatabase@admin` + * `readWrite@(defined db)` + * `readWriteAnyDatabase@admin` + * `restore@admin` + * `root@admin` + * `userAdmin@(defined db)` + * `userAdminAnyDatabase@admin` """ pulumi.set(__self__, "cluster_id", cluster_id) pulumi.set(__self__, "service_name", service_name) @@ -91,8 +108,25 @@ def password_reset(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def roles(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - Roles the user belongs to. + Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles Available roles: + * `backup@admin` + * `clusterAdmin@admin` + * `clusterManager@admin` + * `clusterMonitor@admin` + * `dbAdmin@(defined db)` + * `dbAdminAnyDatabase@admin` + * `dbOwner@(defined db)` + * `enableSharding@(defined db)` + * `hostManager@admin` + * `read@(defined db)` + * `readAnyDatabase@admin` + * `readWrite@(defined db)` + * `readWriteAnyDatabase@admin` + * `restore@admin` + * `root@admin` + * `userAdmin@(defined db)` + * `userAdminAnyDatabase@admin` """ return pulumi.get(self, "roles") @@ -119,8 +153,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the user. :param pulumi.Input[str] password: (Sensitive) Password of the user. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update - :param pulumi.Input[Sequence[pulumi.Input[str]]] roles: Roles the user belongs to. + :param pulumi.Input[Sequence[pulumi.Input[str]]] roles: Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles Available roles: + * `backup@admin` + * `clusterAdmin@admin` + * `clusterManager@admin` + * `clusterMonitor@admin` + * `dbAdmin@(defined db)` + * `dbAdminAnyDatabase@admin` + * `dbOwner@(defined db)` + * `enableSharding@(defined db)` + * `hostManager@admin` + * `read@(defined db)` + * `readAnyDatabase@admin` + * `readWrite@(defined db)` + * `readWriteAnyDatabase@admin` + * `restore@admin` + * `root@admin` + * `userAdmin@(defined db)` + * `userAdminAnyDatabase@admin` :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. :param pulumi.Input[str] status: Current status of the user. @@ -206,8 +257,25 @@ def password_reset(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def roles(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - Roles the user belongs to. + Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles Available roles: + * `backup@admin` + * `clusterAdmin@admin` + * `clusterManager@admin` + * `clusterMonitor@admin` + * `dbAdmin@(defined db)` + * `dbAdminAnyDatabase@admin` + * `dbOwner@(defined db)` + * `enableSharding@(defined db)` + * `hostManager@admin` + * `read@(defined db)` + * `readAnyDatabase@admin` + * `readWrite@(defined db)` + * `readWriteAnyDatabase@admin` + * `restore@admin` + * `root@admin` + * `userAdmin@(defined db)` + * `userAdminAnyDatabase@admin` """ return pulumi.get(self, "roles") @@ -255,10 +323,12 @@ def __init__(__self__, """ ## Import - OVHcloud Managed MongoDB clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., bash + OVHcloud Managed MongoDB clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProjectDatabase/mongoDbUser:MongoDbUser my_user service_name/cluster_id/id + $ pulumi import ovh:CloudProjectDatabase/mongoDbUser:MongoDbUser my_user service_name/cluster_id/id ``` :param str resource_name: The name of the resource. @@ -266,8 +336,25 @@ def __init__(__self__, :param pulumi.Input[str] cluster_id: Cluster ID. :param pulumi.Input[str] name: Name of the user. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update - :param pulumi.Input[Sequence[pulumi.Input[str]]] roles: Roles the user belongs to. + :param pulumi.Input[Sequence[pulumi.Input[str]]] roles: Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles Available roles: + * `backup@admin` + * `clusterAdmin@admin` + * `clusterManager@admin` + * `clusterMonitor@admin` + * `dbAdmin@(defined db)` + * `dbAdminAnyDatabase@admin` + * `dbOwner@(defined db)` + * `enableSharding@(defined db)` + * `hostManager@admin` + * `read@(defined db)` + * `readAnyDatabase@admin` + * `readWrite@(defined db)` + * `readWriteAnyDatabase@admin` + * `restore@admin` + * `root@admin` + * `userAdmin@(defined db)` + * `userAdminAnyDatabase@admin` :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. """ @@ -280,10 +367,12 @@ def __init__(__self__, """ ## Import - OVHcloud Managed MongoDB clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., bash + OVHcloud Managed MongoDB clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProjectDatabase/mongoDbUser:MongoDbUser my_user service_name/cluster_id/id + $ pulumi import ovh:CloudProjectDatabase/mongoDbUser:MongoDbUser my_user service_name/cluster_id/id ``` :param str resource_name: The name of the resource. @@ -359,8 +448,25 @@ def get(resource_name: str, :param pulumi.Input[str] name: Name of the user. :param pulumi.Input[str] password: (Sensitive) Password of the user. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update - :param pulumi.Input[Sequence[pulumi.Input[str]]] roles: Roles the user belongs to. + :param pulumi.Input[Sequence[pulumi.Input[str]]] roles: Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles Available roles: + * `backup@admin` + * `clusterAdmin@admin` + * `clusterManager@admin` + * `clusterMonitor@admin` + * `dbAdmin@(defined db)` + * `dbAdminAnyDatabase@admin` + * `dbOwner@(defined db)` + * `enableSharding@(defined db)` + * `hostManager@admin` + * `read@(defined db)` + * `readAnyDatabase@admin` + * `readWrite@(defined db)` + * `readWriteAnyDatabase@admin` + * `restore@admin` + * `root@admin` + * `userAdmin@(defined db)` + * `userAdminAnyDatabase@admin` :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. :param pulumi.Input[str] status: Current status of the user. @@ -423,8 +529,25 @@ def password_reset(self) -> pulumi.Output[Optional[str]]: @pulumi.getter def roles(self) -> pulumi.Output[Optional[Sequence[str]]]: """ - Roles the user belongs to. + Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles Available roles: + * `backup@admin` + * `clusterAdmin@admin` + * `clusterManager@admin` + * `clusterMonitor@admin` + * `dbAdmin@(defined db)` + * `dbAdminAnyDatabase@admin` + * `dbOwner@(defined db)` + * `enableSharding@(defined db)` + * `hostManager@admin` + * `read@(defined db)` + * `readAnyDatabase@admin` + * `readWrite@(defined db)` + * `readWriteAnyDatabase@admin` + * `restore@admin` + * `root@admin` + * `userAdmin@(defined db)` + * `userAdminAnyDatabase@admin` """ return pulumi.get(self, "roles") diff --git a/sdk/python/pulumi_ovh/cloudprojectdatabase/opensearch_pattern.py b/sdk/python/pulumi_ovh/cloudprojectdatabase/opensearch_pattern.py index db725761..17911194 100644 --- a/sdk/python/pulumi_ovh/cloudprojectdatabase/opensearch_pattern.py +++ b/sdk/python/pulumi_ovh/cloudprojectdatabase/opensearch_pattern.py @@ -187,10 +187,12 @@ def __init__(__self__, ## Import - OVHcloud Managed opensearch clusters patterns can be imported using the `service_name`, `cluster_id` and `id` of the pattern, separated by "/" E.g., bash + OVHcloud Managed opensearch clusters patterns can be imported using the `service_name`, `cluster_id` and `id` of the pattern, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProjectDatabase/opensearchPattern:OpensearchPattern my_pattern service_name/cluster_id/id + $ pulumi import ovh:CloudProjectDatabase/opensearchPattern:OpensearchPattern my_pattern service_name/cluster_id/id ``` :param str resource_name: The name of the resource. @@ -228,10 +230,12 @@ def __init__(__self__, ## Import - OVHcloud Managed opensearch clusters patterns can be imported using the `service_name`, `cluster_id` and `id` of the pattern, separated by "/" E.g., bash + OVHcloud Managed opensearch clusters patterns can be imported using the `service_name`, `cluster_id` and `id` of the pattern, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProjectDatabase/opensearchPattern:OpensearchPattern my_pattern service_name/cluster_id/id + $ pulumi import ovh:CloudProjectDatabase/opensearchPattern:OpensearchPattern my_pattern service_name/cluster_id/id ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/cloudprojectdatabase/opensearch_user.py b/sdk/python/pulumi_ovh/cloudprojectdatabase/opensearch_user.py index b7e38931..c7cdd1fb 100644 --- a/sdk/python/pulumi_ovh/cloudprojectdatabase/opensearch_user.py +++ b/sdk/python/pulumi_ovh/cloudprojectdatabase/opensearch_user.py @@ -253,10 +253,12 @@ def __init__(__self__, """ ## Import - OVHcloud Managed OpenSearch clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., bash + OVHcloud Managed OpenSearch clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProjectDatabase/opensearchUser:OpensearchUser my_user service_name/cluster_id/id + $ pulumi import ovh:CloudProjectDatabase/opensearchUser:OpensearchUser my_user service_name/cluster_id/id ``` :param str resource_name: The name of the resource. @@ -277,10 +279,12 @@ def __init__(__self__, """ ## Import - OVHcloud Managed OpenSearch clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., bash + OVHcloud Managed OpenSearch clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProjectDatabase/opensearchUser:OpensearchUser my_user service_name/cluster_id/id + $ pulumi import ovh:CloudProjectDatabase/opensearchUser:OpensearchUser my_user service_name/cluster_id/id ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/cloudprojectdatabase/postgres_sql_connection_pool.py b/sdk/python/pulumi_ovh/cloudprojectdatabase/postgres_sql_connection_pool.py new file mode 100644 index 00000000..ffa9f080 --- /dev/null +++ b/sdk/python/pulumi_ovh/cloudprojectdatabase/postgres_sql_connection_pool.py @@ -0,0 +1,546 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +__all__ = ['PostgresSqlConnectionPoolArgs', 'PostgresSqlConnectionPool'] + +@pulumi.input_type +class PostgresSqlConnectionPoolArgs: + def __init__(__self__, *, + cluster_id: pulumi.Input[str], + database_id: pulumi.Input[str], + mode: pulumi.Input[str], + service_name: pulumi.Input[str], + size: pulumi.Input[int], + name: Optional[pulumi.Input[str]] = None, + user_id: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a PostgresSqlConnectionPool resource. + :param pulumi.Input[str] cluster_id: Cluster ID. + :param pulumi.Input[str] database_id: Database ID for a database that belongs to the Database cluster given above. + :param pulumi.Input[str] mode: Connection mode to the connection pool + Available modes: + :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, + the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + :param pulumi.Input[int] size: Size of the connection pool. + :param pulumi.Input[str] name: Name of the connection pool. + :param pulumi.Input[str] user_id: Database user authorized to connect to the pool, if none all the users are allowed. + """ + pulumi.set(__self__, "cluster_id", cluster_id) + pulumi.set(__self__, "database_id", database_id) + pulumi.set(__self__, "mode", mode) + pulumi.set(__self__, "service_name", service_name) + pulumi.set(__self__, "size", size) + if name is not None: + pulumi.set(__self__, "name", name) + if user_id is not None: + pulumi.set(__self__, "user_id", user_id) + + @property + @pulumi.getter(name="clusterId") + def cluster_id(self) -> pulumi.Input[str]: + """ + Cluster ID. + """ + return pulumi.get(self, "cluster_id") + + @cluster_id.setter + def cluster_id(self, value: pulumi.Input[str]): + pulumi.set(self, "cluster_id", value) + + @property + @pulumi.getter(name="databaseId") + def database_id(self) -> pulumi.Input[str]: + """ + Database ID for a database that belongs to the Database cluster given above. + """ + return pulumi.get(self, "database_id") + + @database_id.setter + def database_id(self, value: pulumi.Input[str]): + pulumi.set(self, "database_id", value) + + @property + @pulumi.getter + def mode(self) -> pulumi.Input[str]: + """ + Connection mode to the connection pool + Available modes: + """ + return pulumi.get(self, "mode") + + @mode.setter + def mode(self, value: pulumi.Input[str]): + pulumi.set(self, "mode", value) + + @property + @pulumi.getter(name="serviceName") + def service_name(self) -> pulumi.Input[str]: + """ + The id of the public cloud project. If omitted, + the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + """ + return pulumi.get(self, "service_name") + + @service_name.setter + def service_name(self, value: pulumi.Input[str]): + pulumi.set(self, "service_name", value) + + @property + @pulumi.getter + def size(self) -> pulumi.Input[int]: + """ + Size of the connection pool. + """ + return pulumi.get(self, "size") + + @size.setter + def size(self, value: pulumi.Input[int]): + pulumi.set(self, "size", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the connection pool. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="userId") + def user_id(self) -> Optional[pulumi.Input[str]]: + """ + Database user authorized to connect to the pool, if none all the users are allowed. + """ + return pulumi.get(self, "user_id") + + @user_id.setter + def user_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "user_id", value) + + +@pulumi.input_type +class _PostgresSqlConnectionPoolState: + def __init__(__self__, *, + cluster_id: Optional[pulumi.Input[str]] = None, + database_id: Optional[pulumi.Input[str]] = None, + mode: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + service_name: Optional[pulumi.Input[str]] = None, + size: Optional[pulumi.Input[int]] = None, + ssl_mode: Optional[pulumi.Input[str]] = None, + uri: Optional[pulumi.Input[str]] = None, + user_id: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering PostgresSqlConnectionPool resources. + :param pulumi.Input[str] cluster_id: Cluster ID. + :param pulumi.Input[str] database_id: Database ID for a database that belongs to the Database cluster given above. + :param pulumi.Input[str] mode: Connection mode to the connection pool + Available modes: + :param pulumi.Input[str] name: Name of the connection pool. + :param pulumi.Input[int] port: Port of the connection pool. + :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, + the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + :param pulumi.Input[int] size: Size of the connection pool. + :param pulumi.Input[str] ssl_mode: Ssl connection mode for the pool. + :param pulumi.Input[str] uri: Connection URI to the pool. + :param pulumi.Input[str] user_id: Database user authorized to connect to the pool, if none all the users are allowed. + """ + if cluster_id is not None: + pulumi.set(__self__, "cluster_id", cluster_id) + if database_id is not None: + pulumi.set(__self__, "database_id", database_id) + if mode is not None: + pulumi.set(__self__, "mode", mode) + if name is not None: + pulumi.set(__self__, "name", name) + if port is not None: + pulumi.set(__self__, "port", port) + if service_name is not None: + pulumi.set(__self__, "service_name", service_name) + if size is not None: + pulumi.set(__self__, "size", size) + if ssl_mode is not None: + pulumi.set(__self__, "ssl_mode", ssl_mode) + if uri is not None: + pulumi.set(__self__, "uri", uri) + if user_id is not None: + pulumi.set(__self__, "user_id", user_id) + + @property + @pulumi.getter(name="clusterId") + def cluster_id(self) -> Optional[pulumi.Input[str]]: + """ + Cluster ID. + """ + return pulumi.get(self, "cluster_id") + + @cluster_id.setter + def cluster_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "cluster_id", value) + + @property + @pulumi.getter(name="databaseId") + def database_id(self) -> Optional[pulumi.Input[str]]: + """ + Database ID for a database that belongs to the Database cluster given above. + """ + return pulumi.get(self, "database_id") + + @database_id.setter + def database_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "database_id", value) + + @property + @pulumi.getter + def mode(self) -> Optional[pulumi.Input[str]]: + """ + Connection mode to the connection pool + Available modes: + """ + return pulumi.get(self, "mode") + + @mode.setter + def mode(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "mode", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the connection pool. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def port(self) -> Optional[pulumi.Input[int]]: + """ + Port of the connection pool. + """ + return pulumi.get(self, "port") + + @port.setter + def port(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "port", value) + + @property + @pulumi.getter(name="serviceName") + def service_name(self) -> Optional[pulumi.Input[str]]: + """ + The id of the public cloud project. If omitted, + the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + """ + return pulumi.get(self, "service_name") + + @service_name.setter + def service_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "service_name", value) + + @property + @pulumi.getter + def size(self) -> Optional[pulumi.Input[int]]: + """ + Size of the connection pool. + """ + return pulumi.get(self, "size") + + @size.setter + def size(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "size", value) + + @property + @pulumi.getter(name="sslMode") + def ssl_mode(self) -> Optional[pulumi.Input[str]]: + """ + Ssl connection mode for the pool. + """ + return pulumi.get(self, "ssl_mode") + + @ssl_mode.setter + def ssl_mode(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ssl_mode", value) + + @property + @pulumi.getter + def uri(self) -> Optional[pulumi.Input[str]]: + """ + Connection URI to the pool. + """ + return pulumi.get(self, "uri") + + @uri.setter + def uri(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "uri", value) + + @property + @pulumi.getter(name="userId") + def user_id(self) -> Optional[pulumi.Input[str]]: + """ + Database user authorized to connect to the pool, if none all the users are allowed. + """ + return pulumi.get(self, "user_id") + + @user_id.setter + def user_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "user_id", value) + + +class PostgresSqlConnectionPool(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + cluster_id: Optional[pulumi.Input[str]] = None, + database_id: Optional[pulumi.Input[str]] = None, + mode: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None, + size: Optional[pulumi.Input[int]] = None, + user_id: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + ## Import + + OVHcloud Managed PostgreSQL clusters connection pools can be imported using the `service_name`, `cluster_id` and `id` of the connection pool, separated by "/" E.g., + + bash + + ```sh + $ pulumi import ovh:CloudProjectDatabase/postgresSqlConnectionPool:PostgresSqlConnectionPool my_connection_pool service_name/cluster_id/id + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] cluster_id: Cluster ID. + :param pulumi.Input[str] database_id: Database ID for a database that belongs to the Database cluster given above. + :param pulumi.Input[str] mode: Connection mode to the connection pool + Available modes: + :param pulumi.Input[str] name: Name of the connection pool. + :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, + the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + :param pulumi.Input[int] size: Size of the connection pool. + :param pulumi.Input[str] user_id: Database user authorized to connect to the pool, if none all the users are allowed. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: PostgresSqlConnectionPoolArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ## Import + + OVHcloud Managed PostgreSQL clusters connection pools can be imported using the `service_name`, `cluster_id` and `id` of the connection pool, separated by "/" E.g., + + bash + + ```sh + $ pulumi import ovh:CloudProjectDatabase/postgresSqlConnectionPool:PostgresSqlConnectionPool my_connection_pool service_name/cluster_id/id + ``` + + :param str resource_name: The name of the resource. + :param PostgresSqlConnectionPoolArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(PostgresSqlConnectionPoolArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + cluster_id: Optional[pulumi.Input[str]] = None, + database_id: Optional[pulumi.Input[str]] = None, + mode: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None, + size: Optional[pulumi.Input[int]] = None, + user_id: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = PostgresSqlConnectionPoolArgs.__new__(PostgresSqlConnectionPoolArgs) + + if cluster_id is None and not opts.urn: + raise TypeError("Missing required property 'cluster_id'") + __props__.__dict__["cluster_id"] = cluster_id + if database_id is None and not opts.urn: + raise TypeError("Missing required property 'database_id'") + __props__.__dict__["database_id"] = database_id + if mode is None and not opts.urn: + raise TypeError("Missing required property 'mode'") + __props__.__dict__["mode"] = mode + __props__.__dict__["name"] = name + if service_name is None and not opts.urn: + raise TypeError("Missing required property 'service_name'") + __props__.__dict__["service_name"] = service_name + if size is None and not opts.urn: + raise TypeError("Missing required property 'size'") + __props__.__dict__["size"] = size + __props__.__dict__["user_id"] = user_id + __props__.__dict__["port"] = None + __props__.__dict__["ssl_mode"] = None + __props__.__dict__["uri"] = None + super(PostgresSqlConnectionPool, __self__).__init__( + 'ovh:CloudProjectDatabase/postgresSqlConnectionPool:PostgresSqlConnectionPool', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + cluster_id: Optional[pulumi.Input[str]] = None, + database_id: Optional[pulumi.Input[str]] = None, + mode: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + service_name: Optional[pulumi.Input[str]] = None, + size: Optional[pulumi.Input[int]] = None, + ssl_mode: Optional[pulumi.Input[str]] = None, + uri: Optional[pulumi.Input[str]] = None, + user_id: Optional[pulumi.Input[str]] = None) -> 'PostgresSqlConnectionPool': + """ + Get an existing PostgresSqlConnectionPool resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] cluster_id: Cluster ID. + :param pulumi.Input[str] database_id: Database ID for a database that belongs to the Database cluster given above. + :param pulumi.Input[str] mode: Connection mode to the connection pool + Available modes: + :param pulumi.Input[str] name: Name of the connection pool. + :param pulumi.Input[int] port: Port of the connection pool. + :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, + the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + :param pulumi.Input[int] size: Size of the connection pool. + :param pulumi.Input[str] ssl_mode: Ssl connection mode for the pool. + :param pulumi.Input[str] uri: Connection URI to the pool. + :param pulumi.Input[str] user_id: Database user authorized to connect to the pool, if none all the users are allowed. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _PostgresSqlConnectionPoolState.__new__(_PostgresSqlConnectionPoolState) + + __props__.__dict__["cluster_id"] = cluster_id + __props__.__dict__["database_id"] = database_id + __props__.__dict__["mode"] = mode + __props__.__dict__["name"] = name + __props__.__dict__["port"] = port + __props__.__dict__["service_name"] = service_name + __props__.__dict__["size"] = size + __props__.__dict__["ssl_mode"] = ssl_mode + __props__.__dict__["uri"] = uri + __props__.__dict__["user_id"] = user_id + return PostgresSqlConnectionPool(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="clusterId") + def cluster_id(self) -> pulumi.Output[str]: + """ + Cluster ID. + """ + return pulumi.get(self, "cluster_id") + + @property + @pulumi.getter(name="databaseId") + def database_id(self) -> pulumi.Output[str]: + """ + Database ID for a database that belongs to the Database cluster given above. + """ + return pulumi.get(self, "database_id") + + @property + @pulumi.getter + def mode(self) -> pulumi.Output[str]: + """ + Connection mode to the connection pool + Available modes: + """ + return pulumi.get(self, "mode") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Name of the connection pool. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def port(self) -> pulumi.Output[int]: + """ + Port of the connection pool. + """ + return pulumi.get(self, "port") + + @property + @pulumi.getter(name="serviceName") + def service_name(self) -> pulumi.Output[str]: + """ + The id of the public cloud project. If omitted, + the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. + """ + return pulumi.get(self, "service_name") + + @property + @pulumi.getter + def size(self) -> pulumi.Output[int]: + """ + Size of the connection pool. + """ + return pulumi.get(self, "size") + + @property + @pulumi.getter(name="sslMode") + def ssl_mode(self) -> pulumi.Output[str]: + """ + Ssl connection mode for the pool. + """ + return pulumi.get(self, "ssl_mode") + + @property + @pulumi.getter + def uri(self) -> pulumi.Output[str]: + """ + Connection URI to the pool. + """ + return pulumi.get(self, "uri") + + @property + @pulumi.getter(name="userId") + def user_id(self) -> pulumi.Output[Optional[str]]: + """ + Database user authorized to connect to the pool, if none all the users are allowed. + """ + return pulumi.get(self, "user_id") + diff --git a/sdk/python/pulumi_ovh/cloudprojectdatabase/postgres_sql_user.py b/sdk/python/pulumi_ovh/cloudprojectdatabase/postgres_sql_user.py index 866b405c..a84c541c 100644 --- a/sdk/python/pulumi_ovh/cloudprojectdatabase/postgres_sql_user.py +++ b/sdk/python/pulumi_ovh/cloudprojectdatabase/postgres_sql_user.py @@ -255,10 +255,12 @@ def __init__(__self__, """ ## Import - OVHcloud Managed PostgreSQL clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., bash + OVHcloud Managed PostgreSQL clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProjectDatabase/postgresSqlUser:PostgresSqlUser my_user service_name/cluster_id/id + $ pulumi import ovh:CloudProjectDatabase/postgresSqlUser:PostgresSqlUser my_user service_name/cluster_id/id ``` :param str resource_name: The name of the resource. @@ -280,10 +282,12 @@ def __init__(__self__, """ ## Import - OVHcloud Managed PostgreSQL clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., bash + OVHcloud Managed PostgreSQL clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProjectDatabase/postgresSqlUser:PostgresSqlUser my_user service_name/cluster_id/id + $ pulumi import ovh:CloudProjectDatabase/postgresSqlUser:PostgresSqlUser my_user service_name/cluster_id/id ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/cloudprojectdatabase/redis_user.py b/sdk/python/pulumi_ovh/cloudprojectdatabase/redis_user.py index 5e2ca46a..c959dd86 100644 --- a/sdk/python/pulumi_ovh/cloudprojectdatabase/redis_user.py +++ b/sdk/python/pulumi_ovh/cloudprojectdatabase/redis_user.py @@ -350,10 +350,12 @@ def __init__(__self__, """ ## Import - OVHcloud Managed Redis clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., bash + OVHcloud Managed Redis clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProjectDatabase/redisUser:RedisUser my_user service_name/cluster_id/id + $ pulumi import ovh:CloudProjectDatabase/redisUser:RedisUser my_user service_name/cluster_id/id ``` :param str resource_name: The name of the resource. @@ -377,10 +379,12 @@ def __init__(__self__, """ ## Import - OVHcloud Managed Redis clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., bash + OVHcloud Managed Redis clusters users can be imported using the `service_name`, `cluster_id` and `id` of the user, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProjectDatabase/redisUser:RedisUser my_user service_name/cluster_id/id + $ pulumi import ovh:CloudProjectDatabase/redisUser:RedisUser my_user service_name/cluster_id/id ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/cloudprojectdatabase/user.py b/sdk/python/pulumi_ovh/cloudprojectdatabase/user.py index dad87582..f6a4a57f 100644 --- a/sdk/python/pulumi_ovh/cloudprojectdatabase/user.py +++ b/sdk/python/pulumi_ovh/cloudprojectdatabase/user.py @@ -254,10 +254,12 @@ def __init__(__self__, """ ## Import - OVHcloud Managed database clusters users can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the user, separated by "/" E.g., bash + OVHcloud Managed database clusters users can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the user, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProjectDatabase/user:User my_user service_name/engine/cluster_id/id + $ pulumi import ovh:CloudProjectDatabase/user:User my_user service_name/engine/cluster_id/id ``` :param str resource_name: The name of the resource. @@ -279,10 +281,12 @@ def __init__(__self__, """ ## Import - OVHcloud Managed database clusters users can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the user, separated by "/" E.g., bash + OVHcloud Managed database clusters users can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the user, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:CloudProjectDatabase/user:User my_user service_name/engine/cluster_id/id + $ pulumi import ovh:CloudProjectDatabase/user:User my_user service_name/engine/cluster_id/id ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/dbaas/get_logs_cluster.py b/sdk/python/pulumi_ovh/dbaas/get_logs_cluster.py index f62c7641..dd8fd3b9 100644 --- a/sdk/python/pulumi_ovh/dbaas/get_logs_cluster.py +++ b/sdk/python/pulumi_ovh/dbaas/get_logs_cluster.py @@ -21,10 +21,7 @@ class GetLogsClusterResult: """ A collection of values returned by getLogsCluster. """ - def __init__(__self__, d_baas_urn=None, archive_allowed_networks=None, cluster_id=None, cluster_type=None, dedicated_input_pem=None, direct_input_allowed_networks=None, direct_input_pem=None, hostname=None, id=None, is_default=None, is_unlocked=None, query_allowed_networks=None, region=None, service_name=None): - if d_baas_urn and not isinstance(d_baas_urn, str): - raise TypeError("Expected argument 'd_baas_urn' to be a str") - pulumi.set(__self__, "d_baas_urn", d_baas_urn) + def __init__(__self__, archive_allowed_networks=None, cluster_id=None, cluster_type=None, dedicated_input_pem=None, direct_input_allowed_networks=None, direct_input_pem=None, hostname=None, id=None, is_default=None, is_unlocked=None, query_allowed_networks=None, region=None, service_name=None, urn=None): if archive_allowed_networks and not isinstance(archive_allowed_networks, list): raise TypeError("Expected argument 'archive_allowed_networks' to be a list") pulumi.set(__self__, "archive_allowed_networks", archive_allowed_networks) @@ -64,14 +61,9 @@ def __init__(__self__, d_baas_urn=None, archive_allowed_networks=None, cluster_i if service_name and not isinstance(service_name, str): raise TypeError("Expected argument 'service_name' to be a str") pulumi.set(__self__, "service_name", service_name) - - @property - @pulumi.getter(name="DBaasURN") - def d_baas_urn(self) -> str: - """ - is the URN of the DBaas logs instance - """ - return pulumi.get(self, "d_baas_urn") + if urn and not isinstance(urn, str): + raise TypeError("Expected argument 'urn' to be a str") + pulumi.set(__self__, "urn", urn) @property @pulumi.getter(name="archiveAllowedNetworks") @@ -171,6 +163,14 @@ def region(self) -> str: def service_name(self) -> str: return pulumi.get(self, "service_name") + @property + @pulumi.getter + def urn(self) -> str: + """ + is the URN of the DBaas logs instance + """ + return pulumi.get(self, "urn") + class AwaitableGetLogsClusterResult(GetLogsClusterResult): # pylint: disable=using-constant-test @@ -178,7 +178,6 @@ def __await__(self): if False: yield self return GetLogsClusterResult( - d_baas_urn=self.d_baas_urn, archive_allowed_networks=self.archive_allowed_networks, cluster_id=self.cluster_id, cluster_type=self.cluster_type, @@ -191,7 +190,8 @@ def __await__(self): is_unlocked=self.is_unlocked, query_allowed_networks=self.query_allowed_networks, region=self.region, - service_name=self.service_name) + service_name=self.service_name, + urn=self.urn) def get_logs_cluster(cluster_id: Optional[str] = None, @@ -221,7 +221,6 @@ def get_logs_cluster(cluster_id: Optional[str] = None, __ret__ = pulumi.runtime.invoke('ovh:Dbaas/getLogsCluster:getLogsCluster', __args__, opts=opts, typ=GetLogsClusterResult).value return AwaitableGetLogsClusterResult( - d_baas_urn=pulumi.get(__ret__, 'd_baas_urn'), archive_allowed_networks=pulumi.get(__ret__, 'archive_allowed_networks'), cluster_id=pulumi.get(__ret__, 'cluster_id'), cluster_type=pulumi.get(__ret__, 'cluster_type'), @@ -234,7 +233,8 @@ def get_logs_cluster(cluster_id: Optional[str] = None, is_unlocked=pulumi.get(__ret__, 'is_unlocked'), query_allowed_networks=pulumi.get(__ret__, 'query_allowed_networks'), region=pulumi.get(__ret__, 'region'), - service_name=pulumi.get(__ret__, 'service_name')) + service_name=pulumi.get(__ret__, 'service_name'), + urn=pulumi.get(__ret__, 'urn')) @_utilities.lift_output_func(get_logs_cluster) diff --git a/sdk/python/pulumi_ovh/dbaas/logs_cluster.py b/sdk/python/pulumi_ovh/dbaas/logs_cluster.py index fda7d96a..c4dfef84 100644 --- a/sdk/python/pulumi_ovh/dbaas/logs_cluster.py +++ b/sdk/python/pulumi_ovh/dbaas/logs_cluster.py @@ -374,10 +374,12 @@ def __init__(__self__, ## Import - OVHcloud DBaaS Log Data Platform clusters can be imported using the `service_name` and `cluster_id` of the cluster, separated by "/" E.g., bash + OVHcloud DBaaS Log Data Platform clusters can be imported using the `service_name` and `cluster_id` of the cluster, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:Dbaas/logsCluster:LogsCluster ldp service_name/cluster_id + $ pulumi import ovh:Dbaas/logsCluster:LogsCluster ldp service_name/cluster_id ``` :param str resource_name: The name of the resource. @@ -411,10 +413,12 @@ def __init__(__self__, ## Import - OVHcloud DBaaS Log Data Platform clusters can be imported using the `service_name` and `cluster_id` of the cluster, separated by "/" E.g., bash + OVHcloud DBaaS Log Data Platform clusters can be imported using the `service_name` and `cluster_id` of the cluster, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:Dbaas/logsCluster:LogsCluster ldp service_name/cluster_id + $ pulumi import ovh:Dbaas/logsCluster:LogsCluster ldp service_name/cluster_id ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/dedicated/_inputs.py b/sdk/python/pulumi_ovh/dedicated/_inputs.py index aa947fd2..7dbb0eb0 100644 --- a/sdk/python/pulumi_ovh/dedicated/_inputs.py +++ b/sdk/python/pulumi_ovh/dedicated/_inputs.py @@ -256,12 +256,19 @@ class ServerNetworkingInterfaceArgs: def __init__(__self__, *, macs: pulumi.Input[Sequence[pulumi.Input[str]]], type: pulumi.Input[str]): + """ + :param pulumi.Input[Sequence[pulumi.Input[str]]] macs: Interface Mac address + :param pulumi.Input[str] type: Interface type + """ pulumi.set(__self__, "macs", macs) pulumi.set(__self__, "type", type) @property @pulumi.getter def macs(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: + """ + Interface Mac address + """ return pulumi.get(self, "macs") @macs.setter @@ -271,6 +278,9 @@ def macs(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): @property @pulumi.getter def type(self) -> pulumi.Input[str]: + """ + Interface type + """ return pulumi.get(self, "type") @type.setter diff --git a/sdk/python/pulumi_ovh/dedicated/nas_ha_partition.py b/sdk/python/pulumi_ovh/dedicated/nas_ha_partition.py index 58cf6052..a37b86d4 100644 --- a/sdk/python/pulumi_ovh/dedicated/nas_ha_partition.py +++ b/sdk/python/pulumi_ovh/dedicated/nas_ha_partition.py @@ -247,7 +247,7 @@ def __init__(__self__, HA-NAS can be imported using the `{service_name}/{name}`, e.g. ```sh - $ pulumi import ovh:Dedicated/nasHAPartition:NasHAPartition my-partition zpool-12345/my-partition` + $ pulumi import ovh:Dedicated/nasHAPartition:NasHAPartition my-partition zpool-12345/my-partition` ``` :param str resource_name: The name of the resource. @@ -284,7 +284,7 @@ def __init__(__self__, HA-NAS can be imported using the `{service_name}/{name}`, e.g. ```sh - $ pulumi import ovh:Dedicated/nasHAPartition:NasHAPartition my-partition zpool-12345/my-partition` + $ pulumi import ovh:Dedicated/nasHAPartition:NasHAPartition my-partition zpool-12345/my-partition` ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/dedicated/nas_ha_partition_access.py b/sdk/python/pulumi_ovh/dedicated/nas_ha_partition_access.py index 16453ccd..e86a6784 100644 --- a/sdk/python/pulumi_ovh/dedicated/nas_ha_partition_access.py +++ b/sdk/python/pulumi_ovh/dedicated/nas_ha_partition_access.py @@ -183,7 +183,7 @@ def __init__(__self__, HA-NAS partition access can be imported using the `{service_name}/{partition_name}/{ip}`, e.g. ```sh - $ pulumi import ovh:Dedicated/nasHAPartitionAccess:NasHAPartitionAccess my-partition zpool-12345/my-partition/123.123.123.123%2F32` + $ pulumi import ovh:Dedicated/nasHAPartitionAccess:NasHAPartitionAccess my-partition zpool-12345/my-partition/123.123.123.123%2F32` ``` :param str resource_name: The name of the resource. @@ -220,7 +220,7 @@ def __init__(__self__, HA-NAS partition access can be imported using the `{service_name}/{partition_name}/{ip}`, e.g. ```sh - $ pulumi import ovh:Dedicated/nasHAPartitionAccess:NasHAPartitionAccess my-partition zpool-12345/my-partition/123.123.123.123%2F32` + $ pulumi import ovh:Dedicated/nasHAPartitionAccess:NasHAPartitionAccess my-partition zpool-12345/my-partition/123.123.123.123%2F32` ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/dedicated/nas_ha_partition_snapshot.py b/sdk/python/pulumi_ovh/dedicated/nas_ha_partition_snapshot.py index c494a0ec..f9e416a1 100644 --- a/sdk/python/pulumi_ovh/dedicated/nas_ha_partition_snapshot.py +++ b/sdk/python/pulumi_ovh/dedicated/nas_ha_partition_snapshot.py @@ -149,7 +149,7 @@ def __init__(__self__, HA-NAS partition snapshot can be imported using the `{service_name}/{partition_name}/{type}`, e.g. ```sh - $ pulumi import ovh:Dedicated/nasHAPartitionSnapshot:NasHAPartitionSnapshot my-partition zpool-12345/my-partition/day-3` + $ pulumi import ovh:Dedicated/nasHAPartitionSnapshot:NasHAPartitionSnapshot my-partition zpool-12345/my-partition/day-3` ``` :param str resource_name: The name of the resource. @@ -184,7 +184,7 @@ def __init__(__self__, HA-NAS partition snapshot can be imported using the `{service_name}/{partition_name}/{type}`, e.g. ```sh - $ pulumi import ovh:Dedicated/nasHAPartitionSnapshot:NasHAPartitionSnapshot my-partition zpool-12345/my-partition/day-3` + $ pulumi import ovh:Dedicated/nasHAPartitionSnapshot:NasHAPartitionSnapshot my-partition zpool-12345/my-partition/day-3` ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/dedicated/outputs.py b/sdk/python/pulumi_ovh/dedicated/outputs.py index dbeff742..a7968ea7 100644 --- a/sdk/python/pulumi_ovh/dedicated/outputs.py +++ b/sdk/python/pulumi_ovh/dedicated/outputs.py @@ -238,17 +238,27 @@ class ServerNetworkingInterface(dict): def __init__(__self__, *, macs: Sequence[str], type: str): + """ + :param Sequence[str] macs: Interface Mac address + :param str type: Interface type + """ pulumi.set(__self__, "macs", macs) pulumi.set(__self__, "type", type) @property @pulumi.getter def macs(self) -> Sequence[str]: + """ + Interface Mac address + """ return pulumi.get(self, "macs") @property @pulumi.getter def type(self) -> str: + """ + Interface type + """ return pulumi.get(self, "type") diff --git a/sdk/python/pulumi_ovh/dedicated/server_install_task.py b/sdk/python/pulumi_ovh/dedicated/server_install_task.py index 54441580..14a70b05 100644 --- a/sdk/python/pulumi_ovh/dedicated/server_install_task.py +++ b/sdk/python/pulumi_ovh/dedicated/server_install_task.py @@ -326,10 +326,12 @@ def __init__(__self__, Installation task can be imported using the `service_name` (`nsXXXX.ip...`) of the baremetal server, the `template_name` used - and ths `task_id`, separated by "/" E.g., bash + and ths `task_id`, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:Dedicated/serverInstallTask:ServerInstallTask ovh_dedicated_server_install_task nsXXXX.ipXXXX/template_name/12345 + $ pulumi import ovh:Dedicated/serverInstallTask:ServerInstallTask ovh_dedicated_server_install_task nsXXXX.ipXXXX/template_name/12345 ``` :param str resource_name: The name of the resource. @@ -378,10 +380,12 @@ def __init__(__self__, Installation task can be imported using the `service_name` (`nsXXXX.ip...`) of the baremetal server, the `template_name` used - and ths `task_id`, separated by "/" E.g., bash + and ths `task_id`, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:Dedicated/serverInstallTask:ServerInstallTask ovh_dedicated_server_install_task nsXXXX.ipXXXX/template_name/12345 + $ pulumi import ovh:Dedicated/serverInstallTask:ServerInstallTask ovh_dedicated_server_install_task nsXXXX.ipXXXX/template_name/12345 ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/dedicated/server_update.py b/sdk/python/pulumi_ovh/dedicated/server_update.py index 22bdf7c8..c6bf2c04 100644 --- a/sdk/python/pulumi_ovh/dedicated/server_update.py +++ b/sdk/python/pulumi_ovh/dedicated/server_update.py @@ -16,18 +16,22 @@ class ServerUpdateArgs: def __init__(__self__, *, service_name: pulumi.Input[str], boot_id: Optional[pulumi.Input[int]] = None, + boot_script: Optional[pulumi.Input[str]] = None, monitoring: Optional[pulumi.Input[bool]] = None, state: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a ServerUpdate resource. :param pulumi.Input[str] service_name: The service_name of your dedicated server. :param pulumi.Input[int] boot_id: boot id of the server + :param pulumi.Input[str] boot_script: boot script of the server :param pulumi.Input[bool] monitoring: Icmp monitoring state :param pulumi.Input[str] state: error, hacked, hackedBlocked, ok """ pulumi.set(__self__, "service_name", service_name) if boot_id is not None: pulumi.set(__self__, "boot_id", boot_id) + if boot_script is not None: + pulumi.set(__self__, "boot_script", boot_script) if monitoring is not None: pulumi.set(__self__, "monitoring", monitoring) if state is not None: @@ -57,6 +61,18 @@ def boot_id(self) -> Optional[pulumi.Input[int]]: def boot_id(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "boot_id", value) + @property + @pulumi.getter(name="bootScript") + def boot_script(self) -> Optional[pulumi.Input[str]]: + """ + boot script of the server + """ + return pulumi.get(self, "boot_script") + + @boot_script.setter + def boot_script(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "boot_script", value) + @property @pulumi.getter def monitoring(self) -> Optional[pulumi.Input[bool]]: @@ -86,18 +102,22 @@ def state(self, value: Optional[pulumi.Input[str]]): class _ServerUpdateState: def __init__(__self__, *, boot_id: Optional[pulumi.Input[int]] = None, + boot_script: Optional[pulumi.Input[str]] = None, monitoring: Optional[pulumi.Input[bool]] = None, service_name: Optional[pulumi.Input[str]] = None, state: Optional[pulumi.Input[str]] = None): """ Input properties used for looking up and filtering ServerUpdate resources. :param pulumi.Input[int] boot_id: boot id of the server + :param pulumi.Input[str] boot_script: boot script of the server :param pulumi.Input[bool] monitoring: Icmp monitoring state :param pulumi.Input[str] service_name: The service_name of your dedicated server. :param pulumi.Input[str] state: error, hacked, hackedBlocked, ok """ if boot_id is not None: pulumi.set(__self__, "boot_id", boot_id) + if boot_script is not None: + pulumi.set(__self__, "boot_script", boot_script) if monitoring is not None: pulumi.set(__self__, "monitoring", monitoring) if service_name is not None: @@ -117,6 +137,18 @@ def boot_id(self) -> Optional[pulumi.Input[int]]: def boot_id(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "boot_id", value) + @property + @pulumi.getter(name="bootScript") + def boot_script(self) -> Optional[pulumi.Input[str]]: + """ + boot script of the server + """ + return pulumi.get(self, "boot_script") + + @boot_script.setter + def boot_script(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "boot_script", value) + @property @pulumi.getter def monitoring(self) -> Optional[pulumi.Input[bool]]: @@ -160,6 +192,7 @@ def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, boot_id: Optional[pulumi.Input[int]] = None, + boot_script: Optional[pulumi.Input[str]] = None, monitoring: Optional[pulumi.Input[bool]] = None, service_name: Optional[pulumi.Input[str]] = None, state: Optional[pulumi.Input[str]] = None, @@ -184,6 +217,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[int] boot_id: boot id of the server + :param pulumi.Input[str] boot_script: boot script of the server :param pulumi.Input[bool] monitoring: Icmp monitoring state :param pulumi.Input[str] service_name: The service_name of your dedicated server. :param pulumi.Input[str] state: error, hacked, hackedBlocked, ok @@ -227,6 +261,7 @@ def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, boot_id: Optional[pulumi.Input[int]] = None, + boot_script: Optional[pulumi.Input[str]] = None, monitoring: Optional[pulumi.Input[bool]] = None, service_name: Optional[pulumi.Input[str]] = None, state: Optional[pulumi.Input[str]] = None, @@ -240,6 +275,7 @@ def _internal_init(__self__, __props__ = ServerUpdateArgs.__new__(ServerUpdateArgs) __props__.__dict__["boot_id"] = boot_id + __props__.__dict__["boot_script"] = boot_script __props__.__dict__["monitoring"] = monitoring if service_name is None and not opts.urn: raise TypeError("Missing required property 'service_name'") @@ -256,6 +292,7 @@ def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, boot_id: Optional[pulumi.Input[int]] = None, + boot_script: Optional[pulumi.Input[str]] = None, monitoring: Optional[pulumi.Input[bool]] = None, service_name: Optional[pulumi.Input[str]] = None, state: Optional[pulumi.Input[str]] = None) -> 'ServerUpdate': @@ -267,6 +304,7 @@ def get(resource_name: str, :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[int] boot_id: boot id of the server + :param pulumi.Input[str] boot_script: boot script of the server :param pulumi.Input[bool] monitoring: Icmp monitoring state :param pulumi.Input[str] service_name: The service_name of your dedicated server. :param pulumi.Input[str] state: error, hacked, hackedBlocked, ok @@ -276,6 +314,7 @@ def get(resource_name: str, __props__ = _ServerUpdateState.__new__(_ServerUpdateState) __props__.__dict__["boot_id"] = boot_id + __props__.__dict__["boot_script"] = boot_script __props__.__dict__["monitoring"] = monitoring __props__.__dict__["service_name"] = service_name __props__.__dict__["state"] = state @@ -289,6 +328,14 @@ def boot_id(self) -> pulumi.Output[int]: """ return pulumi.get(self, "boot_id") + @property + @pulumi.getter(name="bootScript") + def boot_script(self) -> pulumi.Output[Optional[str]]: + """ + boot script of the server + """ + return pulumi.get(self, "boot_script") + @property @pulumi.getter def monitoring(self) -> pulumi.Output[bool]: diff --git a/sdk/python/pulumi_ovh/domain/zone.py b/sdk/python/pulumi_ovh/domain/zone.py index 775c9e2d..16517005 100644 --- a/sdk/python/pulumi_ovh/domain/zone.py +++ b/sdk/python/pulumi_ovh/domain/zone.py @@ -321,10 +321,10 @@ def __init__(__self__, Zone can be imported using the `order_id` that can be retrieved in the [order page](https://www.ovh.com/manager/#/dedicated/billing/orders/orders) at the creation time of the zone. - bash + bash ```sh - $ pulumi import ovh:Domain/zone:Zone zone order_id + $ pulumi import ovh:Domain/zone:Zone zone order_id ``` :param str resource_name: The name of the resource. @@ -376,10 +376,10 @@ def __init__(__self__, Zone can be imported using the `order_id` that can be retrieved in the [order page](https://www.ovh.com/manager/#/dedicated/billing/orders/orders) at the creation time of the zone. - bash + bash ```sh - $ pulumi import ovh:Domain/zone:Zone zone order_id + $ pulumi import ovh:Domain/zone:Zone zone order_id ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/domain/zone_record.py b/sdk/python/pulumi_ovh/domain/zone_record.py index f2d71f26..9227e7f1 100644 --- a/sdk/python/pulumi_ovh/domain/zone_record.py +++ b/sdk/python/pulumi_ovh/domain/zone_record.py @@ -213,10 +213,12 @@ def __init__(__self__, ## Import - OVHcloud 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., bash + OVHcloud 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., + + bash ```sh - $ pulumi import ovh:Domain/zoneRecord:ZoneRecord test id.zone + $ pulumi import ovh:Domain/zoneRecord:ZoneRecord test id.zone ``` :param str resource_name: The name of the resource. @@ -251,10 +253,12 @@ def __init__(__self__, ## Import - OVHcloud 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., bash + OVHcloud 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., + + bash ```sh - $ pulumi import ovh:Domain/zoneRecord:ZoneRecord test id.zone + $ pulumi import ovh:Domain/zoneRecord:ZoneRecord test id.zone ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/get_server.py b/sdk/python/pulumi_ovh/get_server.py index 6394b23c..5e3a2574 100644 --- a/sdk/python/pulumi_ovh/get_server.py +++ b/sdk/python/pulumi_ovh/get_server.py @@ -22,13 +22,16 @@ class GetServerResult: """ A collection of values returned by getServer. """ - def __init__(__self__, server_urn=None, boot_id=None, commercial_range=None, datacenter=None, enabled_public_vnis=None, enabled_vrack_aggregation_vnis=None, enabled_vrack_vnis=None, id=None, ip=None, ips=None, link_speed=None, monitoring=None, name=None, os=None, professional_use=None, rack=None, rescue_mail=None, reverse=None, root_device=None, server_id=None, service_name=None, state=None, support_level=None, vnis=None): + def __init__(__self__, server_urn=None, boot_id=None, boot_script=None, commercial_range=None, datacenter=None, enabled_public_vnis=None, enabled_vrack_aggregation_vnis=None, enabled_vrack_vnis=None, id=None, ip=None, ips=None, link_speed=None, monitoring=None, name=None, os=None, professional_use=None, rack=None, rescue_mail=None, reverse=None, root_device=None, server_id=None, service_name=None, state=None, support_level=None, vnis=None): if server_urn and not isinstance(server_urn, str): raise TypeError("Expected argument 'server_urn' to be a str") pulumi.set(__self__, "server_urn", server_urn) if boot_id and not isinstance(boot_id, int): raise TypeError("Expected argument 'boot_id' to be a int") pulumi.set(__self__, "boot_id", boot_id) + if boot_script and not isinstance(boot_script, str): + raise TypeError("Expected argument 'boot_script' to be a str") + pulumi.set(__self__, "boot_script", boot_script) if commercial_range and not isinstance(commercial_range, str): raise TypeError("Expected argument 'commercial_range' to be a str") pulumi.set(__self__, "commercial_range", commercial_range) @@ -112,6 +115,14 @@ def boot_id(self) -> int: """ return pulumi.get(self, "boot_id") + @property + @pulumi.getter(name="bootScript") + def boot_script(self) -> str: + """ + boot script of the server + """ + return pulumi.get(self, "boot_script") + @property @pulumi.getter(name="commercialRange") def commercial_range(self) -> str: @@ -294,6 +305,7 @@ def __await__(self): return GetServerResult( server_urn=self.server_urn, boot_id=self.boot_id, + boot_script=self.boot_script, commercial_range=self.commercial_range, datacenter=self.datacenter, enabled_public_vnis=self.enabled_public_vnis, @@ -343,6 +355,7 @@ def get_server(service_name: Optional[str] = None, return AwaitableGetServerResult( server_urn=pulumi.get(__ret__, 'server_urn'), boot_id=pulumi.get(__ret__, 'boot_id'), + boot_script=pulumi.get(__ret__, 'boot_script'), commercial_range=pulumi.get(__ret__, 'commercial_range'), datacenter=pulumi.get(__ret__, 'datacenter'), enabled_public_vnis=pulumi.get(__ret__, 'enabled_public_vnis'), diff --git a/sdk/python/pulumi_ovh/iam/__init__.py b/sdk/python/pulumi_ovh/iam/__init__.py index 0acae063..bf3ba568 100644 --- a/sdk/python/pulumi_ovh/iam/__init__.py +++ b/sdk/python/pulumi_ovh/iam/__init__.py @@ -5,12 +5,15 @@ from .. import _utilities import typing # Export this package's modules as members: +from .get_permissions_group import * +from .get_permissions_groups import * from .get_policies import * from .get_policy import * from .get_reference_actions import * from .get_reference_resource_type import * from .get_resource_group import * from .get_resource_groups import * +from .permissions_group import * from .policy import * from .resource_group import * from . import outputs diff --git a/sdk/python/pulumi_ovh/iam/get_permissions_group.py b/sdk/python/pulumi_ovh/iam/get_permissions_group.py new file mode 100644 index 00000000..ff1b3d4f --- /dev/null +++ b/sdk/python/pulumi_ovh/iam/get_permissions_group.py @@ -0,0 +1,169 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +__all__ = [ + 'GetPermissionsGroupResult', + 'AwaitableGetPermissionsGroupResult', + 'get_permissions_group', + 'get_permissions_group_output', +] + +@pulumi.output_type +class GetPermissionsGroupResult: + """ + A collection of values returned by getPermissionsGroup. + """ + def __init__(__self__, allows=None, created_at=None, denies=None, description=None, excepts=None, id=None, name=None, owner=None, updated_at=None, urn=None): + if allows and not isinstance(allows, list): + raise TypeError("Expected argument 'allows' to be a list") + pulumi.set(__self__, "allows", allows) + if created_at and not isinstance(created_at, str): + raise TypeError("Expected argument 'created_at' to be a str") + pulumi.set(__self__, "created_at", created_at) + if denies and not isinstance(denies, list): + raise TypeError("Expected argument 'denies' to be a list") + pulumi.set(__self__, "denies", denies) + if description and not isinstance(description, str): + raise TypeError("Expected argument 'description' to be a str") + pulumi.set(__self__, "description", description) + if excepts and not isinstance(excepts, list): + raise TypeError("Expected argument 'excepts' to be a list") + pulumi.set(__self__, "excepts", excepts) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if owner and not isinstance(owner, str): + raise TypeError("Expected argument 'owner' to be a str") + pulumi.set(__self__, "owner", owner) + if updated_at and not isinstance(updated_at, str): + raise TypeError("Expected argument 'updated_at' to be a str") + pulumi.set(__self__, "updated_at", updated_at) + if urn and not isinstance(urn, str): + raise TypeError("Expected argument 'urn' to be a str") + pulumi.set(__self__, "urn", urn) + + @property + @pulumi.getter + def allows(self) -> Optional[Sequence[str]]: + return pulumi.get(self, "allows") + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> str: + return pulumi.get(self, "created_at") + + @property + @pulumi.getter + def denies(self) -> Optional[Sequence[str]]: + return pulumi.get(self, "denies") + + @property + @pulumi.getter + def description(self) -> Optional[str]: + return pulumi.get(self, "description") + + @property + @pulumi.getter + def excepts(self) -> Optional[Sequence[str]]: + return pulumi.get(self, "excepts") + + @property + @pulumi.getter + def id(self) -> str: + return pulumi.get(self, "id") + + @property + @pulumi.getter + def name(self) -> str: + return pulumi.get(self, "name") + + @property + @pulumi.getter + def owner(self) -> str: + return pulumi.get(self, "owner") + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> str: + return pulumi.get(self, "updated_at") + + @property + @pulumi.getter + def urn(self) -> str: + return pulumi.get(self, "urn") + + +class AwaitableGetPermissionsGroupResult(GetPermissionsGroupResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetPermissionsGroupResult( + allows=self.allows, + created_at=self.created_at, + denies=self.denies, + description=self.description, + excepts=self.excepts, + id=self.id, + name=self.name, + owner=self.owner, + updated_at=self.updated_at, + urn=self.urn) + + +def get_permissions_group(allows: Optional[Sequence[str]] = None, + denies: Optional[Sequence[str]] = None, + description: Optional[str] = None, + excepts: Optional[Sequence[str]] = None, + updated_at: Optional[str] = None, + urn: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetPermissionsGroupResult: + """ + Use this data source to access information about an existing resource. + """ + __args__ = dict() + __args__['allows'] = allows + __args__['denies'] = denies + __args__['description'] = description + __args__['excepts'] = excepts + __args__['updatedAt'] = updated_at + __args__['urn'] = urn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('ovh:Iam/getPermissionsGroup:getPermissionsGroup', __args__, opts=opts, typ=GetPermissionsGroupResult).value + + return AwaitableGetPermissionsGroupResult( + allows=pulumi.get(__ret__, 'allows'), + created_at=pulumi.get(__ret__, 'created_at'), + denies=pulumi.get(__ret__, 'denies'), + description=pulumi.get(__ret__, 'description'), + excepts=pulumi.get(__ret__, 'excepts'), + id=pulumi.get(__ret__, 'id'), + name=pulumi.get(__ret__, 'name'), + owner=pulumi.get(__ret__, 'owner'), + updated_at=pulumi.get(__ret__, 'updated_at'), + urn=pulumi.get(__ret__, 'urn')) + + +@_utilities.lift_output_func(get_permissions_group) +def get_permissions_group_output(allows: Optional[pulumi.Input[Optional[Sequence[str]]]] = None, + denies: Optional[pulumi.Input[Optional[Sequence[str]]]] = None, + description: Optional[pulumi.Input[Optional[str]]] = None, + excepts: Optional[pulumi.Input[Optional[Sequence[str]]]] = None, + updated_at: Optional[pulumi.Input[Optional[str]]] = None, + urn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetPermissionsGroupResult]: + """ + Use this data source to access information about an existing resource. + """ + ... diff --git a/sdk/python/pulumi_ovh/iam/get_permissions_groups.py b/sdk/python/pulumi_ovh/iam/get_permissions_groups.py new file mode 100644 index 00000000..0229a752 --- /dev/null +++ b/sdk/python/pulumi_ovh/iam/get_permissions_groups.py @@ -0,0 +1,92 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +__all__ = [ + 'GetPermissionsGroupsResult', + 'AwaitableGetPermissionsGroupsResult', + 'get_permissions_groups', + 'get_permissions_groups_output', +] + +@pulumi.output_type +class GetPermissionsGroupsResult: + """ + A collection of values returned by getPermissionsGroups. + """ + def __init__(__self__, id=None, urns=None): + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if urns and not isinstance(urns, list): + raise TypeError("Expected argument 'urns' to be a list") + pulumi.set(__self__, "urns", urns) + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter + def urns(self) -> Sequence[str]: + return pulumi.get(self, "urns") + + +class AwaitableGetPermissionsGroupsResult(GetPermissionsGroupsResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetPermissionsGroupsResult( + id=self.id, + urns=self.urns) + + +def get_permissions_groups(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetPermissionsGroupsResult: + """ + Use this data source to retrieve an IAM permissions group. + + ## Example Usage + + ```python + import pulumi + import pulumi_ovh as ovh + + website = ovh.Iam.get_permissions_group(urn="urn:v1:eu:permissionsGroup:ovh:controlPanelAccess") + ``` + """ + __args__ = dict() + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('ovh:Iam/getPermissionsGroups:getPermissionsGroups', __args__, opts=opts, typ=GetPermissionsGroupsResult).value + + return AwaitableGetPermissionsGroupsResult( + id=pulumi.get(__ret__, 'id'), + urns=pulumi.get(__ret__, 'urns')) + + +@_utilities.lift_output_func(get_permissions_groups) +def get_permissions_groups_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetPermissionsGroupsResult]: + """ + Use this data source to retrieve an IAM permissions group. + + ## Example Usage + + ```python + import pulumi + import pulumi_ovh as ovh + + website = ovh.Iam.get_permissions_group(urn="urn:v1:eu:permissionsGroup:ovh:controlPanelAccess") + ``` + """ + ... diff --git a/sdk/python/pulumi_ovh/iam/get_policy.py b/sdk/python/pulumi_ovh/iam/get_policy.py index 99433d99..1741a646 100644 --- a/sdk/python/pulumi_ovh/iam/get_policy.py +++ b/sdk/python/pulumi_ovh/iam/get_policy.py @@ -21,7 +21,7 @@ class GetPolicyResult: """ A collection of values returned by getPolicy. """ - def __init__(__self__, allows=None, created_at=None, denies=None, description=None, excepts=None, id=None, identities=None, name=None, owner=None, read_only=None, resources=None, updated_at=None): + def __init__(__self__, allows=None, created_at=None, denies=None, description=None, excepts=None, id=None, identities=None, name=None, owner=None, permissions_groups=None, read_only=None, resources=None, updated_at=None): if allows and not isinstance(allows, list): raise TypeError("Expected argument 'allows' to be a list") pulumi.set(__self__, "allows", allows) @@ -49,6 +49,9 @@ def __init__(__self__, allows=None, created_at=None, denies=None, description=No if owner and not isinstance(owner, str): raise TypeError("Expected argument 'owner' to be a str") pulumi.set(__self__, "owner", owner) + if permissions_groups and not isinstance(permissions_groups, list): + raise TypeError("Expected argument 'permissions_groups' to be a list") + pulumi.set(__self__, "permissions_groups", permissions_groups) if read_only and not isinstance(read_only, bool): raise TypeError("Expected argument 'read_only' to be a bool") pulumi.set(__self__, "read_only", read_only) @@ -63,7 +66,7 @@ def __init__(__self__, allows=None, created_at=None, denies=None, description=No @pulumi.getter def allows(self) -> Optional[Sequence[str]]: """ - List of actions allowed by the policy. + Set of actions allowed by the policy. """ return pulumi.get(self, "allows") @@ -79,7 +82,7 @@ def created_at(self) -> str: @pulumi.getter def denies(self) -> Optional[Sequence[str]]: """ - List of actions that will be denied no matter what policy exists. + Set of actions that will be denied no matter what policy exists. """ return pulumi.get(self, "denies") @@ -95,7 +98,7 @@ def description(self) -> Optional[str]: @pulumi.getter def excepts(self) -> Optional[Sequence[str]]: """ - List of actions that will be subtracted from the `allow` list. + Set of actions that will be subtracted from the `allow` list. """ return pulumi.get(self, "excepts") @@ -108,7 +111,7 @@ def id(self) -> str: @pulumi.getter def identities(self) -> Sequence[str]: """ - List of identities affected by the policy. + Set of identities affected by the policy. """ return pulumi.get(self, "identities") @@ -128,6 +131,14 @@ def owner(self) -> str: """ return pulumi.get(self, "owner") + @property + @pulumi.getter(name="permissionsGroups") + def permissions_groups(self) -> Optional[Sequence[str]]: + """ + Set of permissions groups that apply to the policy. + """ + return pulumi.get(self, "permissions_groups") + @property @pulumi.getter(name="readOnly") def read_only(self) -> bool: @@ -140,7 +151,7 @@ def read_only(self) -> bool: @pulumi.getter def resources(self) -> Sequence[str]: """ - List of resources affected by the policy. + Set of resources affected by the policy. """ return pulumi.get(self, "resources") @@ -168,6 +179,7 @@ def __await__(self): identities=self.identities, name=self.name, owner=self.owner, + permissions_groups=self.permissions_groups, read_only=self.read_only, resources=self.resources, updated_at=self.updated_at) @@ -178,6 +190,7 @@ def get_policy(allows: Optional[Sequence[str]] = None, description: Optional[str] = None, excepts: Optional[Sequence[str]] = None, id: Optional[str] = None, + permissions_groups: Optional[Sequence[str]] = None, opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetPolicyResult: """ Use this data source to retrieve am IAM policy. @@ -192,11 +205,12 @@ def get_policy(allows: Optional[Sequence[str]] = None, ``` - :param Sequence[str] allows: List of actions allowed by the policy. - :param Sequence[str] denies: List of actions that will be denied no matter what policy exists. + :param Sequence[str] allows: Set of actions allowed by the policy. + :param Sequence[str] denies: Set of actions that will be denied no matter what policy exists. :param str description: Group description. - :param Sequence[str] excepts: List of actions that will be subtracted from the `allow` list. + :param Sequence[str] excepts: Set of actions that will be subtracted from the `allow` list. :param str id: UUID of the policy. + :param Sequence[str] permissions_groups: Set of permissions groups that apply to the policy. """ __args__ = dict() __args__['allows'] = allows @@ -204,6 +218,7 @@ def get_policy(allows: Optional[Sequence[str]] = None, __args__['description'] = description __args__['excepts'] = excepts __args__['id'] = id + __args__['permissionsGroups'] = permissions_groups opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke('ovh:Iam/getPolicy:getPolicy', __args__, opts=opts, typ=GetPolicyResult).value @@ -217,6 +232,7 @@ def get_policy(allows: Optional[Sequence[str]] = None, identities=pulumi.get(__ret__, 'identities'), name=pulumi.get(__ret__, 'name'), owner=pulumi.get(__ret__, 'owner'), + permissions_groups=pulumi.get(__ret__, 'permissions_groups'), read_only=pulumi.get(__ret__, 'read_only'), resources=pulumi.get(__ret__, 'resources'), updated_at=pulumi.get(__ret__, 'updated_at')) @@ -228,6 +244,7 @@ def get_policy_output(allows: Optional[pulumi.Input[Optional[Sequence[str]]]] = description: Optional[pulumi.Input[Optional[str]]] = None, excepts: Optional[pulumi.Input[Optional[Sequence[str]]]] = None, id: Optional[pulumi.Input[str]] = None, + permissions_groups: Optional[pulumi.Input[Optional[Sequence[str]]]] = None, opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetPolicyResult]: """ Use this data source to retrieve am IAM policy. @@ -242,10 +259,11 @@ def get_policy_output(allows: Optional[pulumi.Input[Optional[Sequence[str]]]] = ``` - :param Sequence[str] allows: List of actions allowed by the policy. - :param Sequence[str] denies: List of actions that will be denied no matter what policy exists. + :param Sequence[str] allows: Set of actions allowed by the policy. + :param Sequence[str] denies: Set of actions that will be denied no matter what policy exists. :param str description: Group description. - :param Sequence[str] excepts: List of actions that will be subtracted from the `allow` list. + :param Sequence[str] excepts: Set of actions that will be subtracted from the `allow` list. :param str id: UUID of the policy. + :param Sequence[str] permissions_groups: Set of permissions groups that apply to the policy. """ ... diff --git a/sdk/python/pulumi_ovh/iam/permissions_group.py b/sdk/python/pulumi_ovh/iam/permissions_group.py new file mode 100644 index 00000000..492d509d --- /dev/null +++ b/sdk/python/pulumi_ovh/iam/permissions_group.py @@ -0,0 +1,465 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +__all__ = ['PermissionsGroupArgs', 'PermissionsGroup'] + +@pulumi.input_type +class PermissionsGroupArgs: + def __init__(__self__, *, + description: pulumi.Input[str], + allows: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + denies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + excepts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + updated_at: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a PermissionsGroup resource. + :param pulumi.Input[str] description: Group description. + :param pulumi.Input[Sequence[pulumi.Input[str]]] allows: Set of actions allowed by the permissions group. + :param pulumi.Input[Sequence[pulumi.Input[str]]] denies: Set of actions that will be denied no matter what permissions group exists. + :param pulumi.Input[Sequence[pulumi.Input[str]]] excepts: Set of actions that will be subtracted from the `allow` list. + :param pulumi.Input[str] name: Name of the permissions group. + :param pulumi.Input[str] updated_at: Date of the last update of this group. + """ + pulumi.set(__self__, "description", description) + if allows is not None: + pulumi.set(__self__, "allows", allows) + if denies is not None: + pulumi.set(__self__, "denies", denies) + if excepts is not None: + pulumi.set(__self__, "excepts", excepts) + if name is not None: + pulumi.set(__self__, "name", name) + if updated_at is not None: + pulumi.set(__self__, "updated_at", updated_at) + + @property + @pulumi.getter + def description(self) -> pulumi.Input[str]: + """ + Group description. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: pulumi.Input[str]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def allows(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Set of actions allowed by the permissions group. + """ + return pulumi.get(self, "allows") + + @allows.setter + def allows(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "allows", value) + + @property + @pulumi.getter + def denies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Set of actions that will be denied no matter what permissions group exists. + """ + return pulumi.get(self, "denies") + + @denies.setter + def denies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "denies", value) + + @property + @pulumi.getter + def excepts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Set of actions that will be subtracted from the `allow` list. + """ + return pulumi.get(self, "excepts") + + @excepts.setter + def excepts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "excepts", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the permissions group. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> Optional[pulumi.Input[str]]: + """ + Date of the last update of this group. + """ + return pulumi.get(self, "updated_at") + + @updated_at.setter + def updated_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "updated_at", value) + + +@pulumi.input_type +class _PermissionsGroupState: + def __init__(__self__, *, + allows: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + created_at: Optional[pulumi.Input[str]] = None, + denies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + excepts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + owner: Optional[pulumi.Input[str]] = None, + updated_at: Optional[pulumi.Input[str]] = None, + urn: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering PermissionsGroup resources. + :param pulumi.Input[Sequence[pulumi.Input[str]]] allows: Set of actions allowed by the permissions group. + :param pulumi.Input[str] created_at: Creation date of this group. + :param pulumi.Input[Sequence[pulumi.Input[str]]] denies: Set of actions that will be denied no matter what permissions group exists. + :param pulumi.Input[str] description: Group description. + :param pulumi.Input[Sequence[pulumi.Input[str]]] excepts: Set of actions that will be subtracted from the `allow` list. + :param pulumi.Input[str] name: Name of the permissions group. + :param pulumi.Input[str] owner: Owner of the permissions group. + :param pulumi.Input[str] updated_at: Date of the last update of this group. + :param pulumi.Input[str] urn: URN of the permissions group. + """ + if allows is not None: + pulumi.set(__self__, "allows", allows) + if created_at is not None: + pulumi.set(__self__, "created_at", created_at) + if denies is not None: + pulumi.set(__self__, "denies", denies) + if description is not None: + pulumi.set(__self__, "description", description) + if excepts is not None: + pulumi.set(__self__, "excepts", excepts) + if name is not None: + pulumi.set(__self__, "name", name) + if owner is not None: + pulumi.set(__self__, "owner", owner) + if updated_at is not None: + pulumi.set(__self__, "updated_at", updated_at) + if urn is not None: + pulumi.set(__self__, "urn", urn) + + @property + @pulumi.getter + def allows(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Set of actions allowed by the permissions group. + """ + return pulumi.get(self, "allows") + + @allows.setter + def allows(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "allows", value) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> Optional[pulumi.Input[str]]: + """ + Creation date of this group. + """ + return pulumi.get(self, "created_at") + + @created_at.setter + def created_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "created_at", value) + + @property + @pulumi.getter + def denies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Set of actions that will be denied no matter what permissions group exists. + """ + return pulumi.get(self, "denies") + + @denies.setter + def denies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "denies", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Group description. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def excepts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Set of actions that will be subtracted from the `allow` list. + """ + return pulumi.get(self, "excepts") + + @excepts.setter + def excepts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "excepts", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the permissions group. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def owner(self) -> Optional[pulumi.Input[str]]: + """ + Owner of the permissions group. + """ + return pulumi.get(self, "owner") + + @owner.setter + def owner(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "owner", value) + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> Optional[pulumi.Input[str]]: + """ + Date of the last update of this group. + """ + return pulumi.get(self, "updated_at") + + @updated_at.setter + def updated_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "updated_at", value) + + @property + @pulumi.getter + def urn(self) -> Optional[pulumi.Input[str]]: + """ + URN of the permissions group. + """ + return pulumi.get(self, "urn") + + @urn.setter + def urn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "urn", value) + + +class PermissionsGroup(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + allows: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + denies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + excepts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + updated_at: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Create am IAM permissions group. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[str]]] allows: Set of actions allowed by the permissions group. + :param pulumi.Input[Sequence[pulumi.Input[str]]] denies: Set of actions that will be denied no matter what permissions group exists. + :param pulumi.Input[str] description: Group description. + :param pulumi.Input[Sequence[pulumi.Input[str]]] excepts: Set of actions that will be subtracted from the `allow` list. + :param pulumi.Input[str] name: Name of the permissions group. + :param pulumi.Input[str] updated_at: Date of the last update of this group. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: PermissionsGroupArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Create am IAM permissions group. + + :param str resource_name: The name of the resource. + :param PermissionsGroupArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(PermissionsGroupArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + allows: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + denies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + excepts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + updated_at: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = PermissionsGroupArgs.__new__(PermissionsGroupArgs) + + __props__.__dict__["allows"] = allows + __props__.__dict__["denies"] = denies + if description is None and not opts.urn: + raise TypeError("Missing required property 'description'") + __props__.__dict__["description"] = description + __props__.__dict__["excepts"] = excepts + __props__.__dict__["name"] = name + __props__.__dict__["updated_at"] = updated_at + __props__.__dict__["created_at"] = None + __props__.__dict__["owner"] = None + __props__.__dict__["urn"] = None + super(PermissionsGroup, __self__).__init__( + 'ovh:Iam/permissionsGroup:PermissionsGroup', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + allows: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + created_at: Optional[pulumi.Input[str]] = None, + denies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + excepts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + owner: Optional[pulumi.Input[str]] = None, + updated_at: Optional[pulumi.Input[str]] = None, + urn: Optional[pulumi.Input[str]] = None) -> 'PermissionsGroup': + """ + Get an existing PermissionsGroup resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[str]]] allows: Set of actions allowed by the permissions group. + :param pulumi.Input[str] created_at: Creation date of this group. + :param pulumi.Input[Sequence[pulumi.Input[str]]] denies: Set of actions that will be denied no matter what permissions group exists. + :param pulumi.Input[str] description: Group description. + :param pulumi.Input[Sequence[pulumi.Input[str]]] excepts: Set of actions that will be subtracted from the `allow` list. + :param pulumi.Input[str] name: Name of the permissions group. + :param pulumi.Input[str] owner: Owner of the permissions group. + :param pulumi.Input[str] updated_at: Date of the last update of this group. + :param pulumi.Input[str] urn: URN of the permissions group. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _PermissionsGroupState.__new__(_PermissionsGroupState) + + __props__.__dict__["allows"] = allows + __props__.__dict__["created_at"] = created_at + __props__.__dict__["denies"] = denies + __props__.__dict__["description"] = description + __props__.__dict__["excepts"] = excepts + __props__.__dict__["name"] = name + __props__.__dict__["owner"] = owner + __props__.__dict__["updated_at"] = updated_at + __props__.__dict__["urn"] = urn + return PermissionsGroup(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def allows(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + Set of actions allowed by the permissions group. + """ + return pulumi.get(self, "allows") + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> pulumi.Output[str]: + """ + Creation date of this group. + """ + return pulumi.get(self, "created_at") + + @property + @pulumi.getter + def denies(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + Set of actions that will be denied no matter what permissions group exists. + """ + return pulumi.get(self, "denies") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[str]: + """ + Group description. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter + def excepts(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + Set of actions that will be subtracted from the `allow` list. + """ + return pulumi.get(self, "excepts") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Name of the permissions group. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def owner(self) -> pulumi.Output[str]: + """ + Owner of the permissions group. + """ + return pulumi.get(self, "owner") + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> pulumi.Output[str]: + """ + Date of the last update of this group. + """ + return pulumi.get(self, "updated_at") + + @property + @pulumi.getter + def urn(self) -> pulumi.Output[str]: + """ + URN of the permissions group. + """ + return pulumi.get(self, "urn") + diff --git a/sdk/python/pulumi_ovh/iam/policy.py b/sdk/python/pulumi_ovh/iam/policy.py index b417d84d..e170ebaa 100644 --- a/sdk/python/pulumi_ovh/iam/policy.py +++ b/sdk/python/pulumi_ovh/iam/policy.py @@ -20,16 +20,18 @@ def __init__(__self__, *, denies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, description: Optional[pulumi.Input[str]] = None, excepts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - name: Optional[pulumi.Input[str]] = None): + name: Optional[pulumi.Input[str]] = None, + permissions_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ The set of arguments for constructing a Policy resource. :param pulumi.Input[Sequence[pulumi.Input[str]]] identities: List of identities affected by the policy :param pulumi.Input[Sequence[pulumi.Input[str]]] resources: List of resources affected by the policy :param pulumi.Input[Sequence[pulumi.Input[str]]] allows: List of actions allowed on resources by identities - :param pulumi.Input[Sequence[pulumi.Input[str]]] denies: List of actions that will be denied no matter what policy exists. + :param pulumi.Input[Sequence[pulumi.Input[str]]] denies: List of actions that will always be denied even if also allowed by this policy or another one. :param pulumi.Input[str] description: Description of the policy :param pulumi.Input[Sequence[pulumi.Input[str]]] excepts: List of overrides of action that must not be allowed even if they are caught by allow. Only makes sens if allow contains wildcards. :param pulumi.Input[str] name: Name of the policy, must be unique + :param pulumi.Input[Sequence[pulumi.Input[str]]] permissions_groups: 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). """ pulumi.set(__self__, "identities", identities) pulumi.set(__self__, "resources", resources) @@ -43,6 +45,8 @@ def __init__(__self__, *, pulumi.set(__self__, "excepts", excepts) if name is not None: pulumi.set(__self__, "name", name) + if permissions_groups is not None: + pulumi.set(__self__, "permissions_groups", permissions_groups) @property @pulumi.getter @@ -84,7 +88,7 @@ def allows(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): @pulumi.getter def denies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - List of actions that will be denied no matter what policy exists. + List of actions that will always be denied even if also allowed by this policy or another one. """ return pulumi.get(self, "denies") @@ -128,6 +132,18 @@ def name(self) -> Optional[pulumi.Input[str]]: def name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "name", value) + @property + @pulumi.getter(name="permissionsGroups") + def permissions_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + 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). + """ + return pulumi.get(self, "permissions_groups") + + @permissions_groups.setter + def permissions_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "permissions_groups", value) + @pulumi.input_type class _PolicyState: @@ -140,6 +156,7 @@ def __init__(__self__, *, identities: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, owner: Optional[pulumi.Input[str]] = None, + permissions_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, read_only: Optional[pulumi.Input[bool]] = None, resources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, updated_at: Optional[pulumi.Input[str]] = None): @@ -147,12 +164,13 @@ def __init__(__self__, *, Input properties used for looking up and filtering Policy resources. :param pulumi.Input[Sequence[pulumi.Input[str]]] allows: List of actions allowed on resources by identities :param pulumi.Input[str] created_at: Creation date of this group. - :param pulumi.Input[Sequence[pulumi.Input[str]]] denies: List of actions that will be denied no matter what policy exists. + :param pulumi.Input[Sequence[pulumi.Input[str]]] denies: List of actions that will always be denied even if also allowed by this policy or another one. :param pulumi.Input[str] description: Description of the policy :param pulumi.Input[Sequence[pulumi.Input[str]]] excepts: List of overrides of action that must not be allowed even if they are caught by allow. Only makes sens if allow contains wildcards. :param pulumi.Input[Sequence[pulumi.Input[str]]] identities: List of identities affected by the policy :param pulumi.Input[str] name: Name of the policy, must be unique :param pulumi.Input[str] owner: Owner of the policy. + :param pulumi.Input[Sequence[pulumi.Input[str]]] permissions_groups: 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). :param pulumi.Input[bool] read_only: Indicates that the policy is a default one. :param pulumi.Input[Sequence[pulumi.Input[str]]] resources: List of resources affected by the policy :param pulumi.Input[str] updated_at: Date of the last update of this group. @@ -173,6 +191,8 @@ def __init__(__self__, *, pulumi.set(__self__, "name", name) if owner is not None: pulumi.set(__self__, "owner", owner) + if permissions_groups is not None: + pulumi.set(__self__, "permissions_groups", permissions_groups) if read_only is not None: pulumi.set(__self__, "read_only", read_only) if resources is not None: @@ -208,7 +228,7 @@ def created_at(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def denies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - List of actions that will be denied no matter what policy exists. + List of actions that will always be denied even if also allowed by this policy or another one. """ return pulumi.get(self, "denies") @@ -276,6 +296,18 @@ def owner(self) -> Optional[pulumi.Input[str]]: def owner(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "owner", value) + @property + @pulumi.getter(name="permissionsGroups") + def permissions_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + 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). + """ + return pulumi.get(self, "permissions_groups") + + @permissions_groups.setter + def permissions_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "permissions_groups", value) + @property @pulumi.getter(name="readOnly") def read_only(self) -> Optional[pulumi.Input[bool]]: @@ -324,6 +356,7 @@ def __init__(__self__, excepts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, identities: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, + permissions_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, resources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, __props__=None): """ @@ -354,11 +387,12 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[Sequence[pulumi.Input[str]]] allows: List of actions allowed on resources by identities - :param pulumi.Input[Sequence[pulumi.Input[str]]] denies: List of actions that will be denied no matter what policy exists. + :param pulumi.Input[Sequence[pulumi.Input[str]]] denies: List of actions that will always be denied even if also allowed by this policy or another one. :param pulumi.Input[str] description: Description of the policy :param pulumi.Input[Sequence[pulumi.Input[str]]] excepts: List of overrides of action that must not be allowed even if they are caught by allow. Only makes sens if allow contains wildcards. :param pulumi.Input[Sequence[pulumi.Input[str]]] identities: List of identities affected by the policy :param pulumi.Input[str] name: Name of the policy, must be unique + :param pulumi.Input[Sequence[pulumi.Input[str]]] permissions_groups: 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). :param pulumi.Input[Sequence[pulumi.Input[str]]] resources: List of resources affected by the policy """ ... @@ -413,6 +447,7 @@ def _internal_init(__self__, excepts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, identities: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, + permissions_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, resources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) @@ -431,6 +466,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'identities'") __props__.__dict__["identities"] = identities __props__.__dict__["name"] = name + __props__.__dict__["permissions_groups"] = permissions_groups if resources is None and not opts.urn: raise TypeError("Missing required property 'resources'") __props__.__dict__["resources"] = resources @@ -456,6 +492,7 @@ def get(resource_name: str, identities: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, owner: Optional[pulumi.Input[str]] = None, + permissions_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, read_only: Optional[pulumi.Input[bool]] = None, resources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, updated_at: Optional[pulumi.Input[str]] = None) -> 'Policy': @@ -468,12 +505,13 @@ def get(resource_name: str, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[Sequence[pulumi.Input[str]]] allows: List of actions allowed on resources by identities :param pulumi.Input[str] created_at: Creation date of this group. - :param pulumi.Input[Sequence[pulumi.Input[str]]] denies: List of actions that will be denied no matter what policy exists. + :param pulumi.Input[Sequence[pulumi.Input[str]]] denies: List of actions that will always be denied even if also allowed by this policy or another one. :param pulumi.Input[str] description: Description of the policy :param pulumi.Input[Sequence[pulumi.Input[str]]] excepts: List of overrides of action that must not be allowed even if they are caught by allow. Only makes sens if allow contains wildcards. :param pulumi.Input[Sequence[pulumi.Input[str]]] identities: List of identities affected by the policy :param pulumi.Input[str] name: Name of the policy, must be unique :param pulumi.Input[str] owner: Owner of the policy. + :param pulumi.Input[Sequence[pulumi.Input[str]]] permissions_groups: 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). :param pulumi.Input[bool] read_only: Indicates that the policy is a default one. :param pulumi.Input[Sequence[pulumi.Input[str]]] resources: List of resources affected by the policy :param pulumi.Input[str] updated_at: Date of the last update of this group. @@ -490,6 +528,7 @@ def get(resource_name: str, __props__.__dict__["identities"] = identities __props__.__dict__["name"] = name __props__.__dict__["owner"] = owner + __props__.__dict__["permissions_groups"] = permissions_groups __props__.__dict__["read_only"] = read_only __props__.__dict__["resources"] = resources __props__.__dict__["updated_at"] = updated_at @@ -515,7 +554,7 @@ def created_at(self) -> pulumi.Output[str]: @pulumi.getter def denies(self) -> pulumi.Output[Optional[Sequence[str]]]: """ - List of actions that will be denied no matter what policy exists. + List of actions that will always be denied even if also allowed by this policy or another one. """ return pulumi.get(self, "denies") @@ -559,6 +598,14 @@ def owner(self) -> pulumi.Output[str]: """ return pulumi.get(self, "owner") + @property + @pulumi.getter(name="permissionsGroups") + def permissions_groups(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + 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). + """ + return pulumi.get(self, "permissions_groups") + @property @pulumi.getter(name="readOnly") def read_only(self) -> pulumi.Output[bool]: diff --git a/sdk/python/pulumi_ovh/ip/reverse.py b/sdk/python/pulumi_ovh/ip/reverse.py index 41839b80..b97f4398 100644 --- a/sdk/python/pulumi_ovh/ip/reverse.py +++ b/sdk/python/pulumi_ovh/ip/reverse.py @@ -147,10 +147,12 @@ def __init__(__self__, ## Import - The resource can be imported using the `ip`, `ip_reverse` of the address, separated by "|" E.g., bash + The resource can be imported using the `ip`, `ip_reverse` of the address, separated by "|" E.g., + + bash ```sh - $ pulumi import ovh:Ip/reverse:Reverse my_reverse '2001:0db8:c0ff:ee::/64|2001:0db8:c0ff:ee::42' + $ pulumi import ovh:Ip/reverse:Reverse my_reverse '2001:0db8:c0ff:ee::/64|2001:0db8:c0ff:ee::42' ``` :param str resource_name: The name of the resource. @@ -183,10 +185,12 @@ def __init__(__self__, ## Import - The resource can be imported using the `ip`, `ip_reverse` of the address, separated by "|" E.g., bash + The resource can be imported using the `ip`, `ip_reverse` of the address, separated by "|" E.g., + + bash ```sh - $ pulumi import ovh:Ip/reverse:Reverse my_reverse '2001:0db8:c0ff:ee::/64|2001:0db8:c0ff:ee::42' + $ pulumi import ovh:Ip/reverse:Reverse my_reverse '2001:0db8:c0ff:ee::/64|2001:0db8:c0ff:ee::42' ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/me/apio_auth2_client.py b/sdk/python/pulumi_ovh/me/apio_auth2_client.py index e91e76e4..1cbcee5c 100644 --- a/sdk/python/pulumi_ovh/me/apio_auth2_client.py +++ b/sdk/python/pulumi_ovh/me/apio_auth2_client.py @@ -241,16 +241,20 @@ def __init__(__self__, ## Import - OAuth2 clients can be imported using their `client_id`bash + OAuth2 clients can be imported using their `client_id`: + + bash ```sh - $ pulumi import ovh:Me/aPIOAuth2Client:APIOAuth2Client my_oauth2_client client_id + $ pulumi import ovh:Me/aPIOAuth2Client:APIOAuth2Client my_oauth2_client client_id ``` - Because 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 separatorbash + Because 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: + + bash ```sh - $ pulumi import ovh:Me/aPIOAuth2Client:APIOAuth2Client my_oauth2_client 'client_id|client_secret' + $ pulumi import ovh:Me/aPIOAuth2Client:APIOAuth2Client my_oauth2_client 'client_id|client_secret' ``` :param str resource_name: The name of the resource. @@ -296,16 +300,20 @@ def __init__(__self__, ## Import - OAuth2 clients can be imported using their `client_id`bash + OAuth2 clients can be imported using their `client_id`: + + bash ```sh - $ pulumi import ovh:Me/aPIOAuth2Client:APIOAuth2Client my_oauth2_client client_id + $ pulumi import ovh:Me/aPIOAuth2Client:APIOAuth2Client my_oauth2_client client_id ``` - Because 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 separatorbash + Because 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: + + bash ```sh - $ pulumi import ovh:Me/aPIOAuth2Client:APIOAuth2Client my_oauth2_client 'client_id|client_secret' + $ pulumi import ovh:Me/aPIOAuth2Client:APIOAuth2Client my_oauth2_client 'client_id|client_secret' ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/me/installation_template.py b/sdk/python/pulumi_ovh/me/installation_template.py index 0ace5798..ce08c86d 100644 --- a/sdk/python/pulumi_ovh/me/installation_template.py +++ b/sdk/python/pulumi_ovh/me/installation_template.py @@ -446,10 +446,12 @@ def __init__(__self__, ## Import - Custom installation template available for dedicated servers can be imported using the `base_template_name`, `template_name` of the cluster, separated by "/" E.g., bash + Custom installation template available for dedicated servers can be imported using the `base_template_name`, `template_name` of the cluster, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:Me/installationTemplate:InstallationTemplate mytemplate base_template_name/template_name + $ pulumi import ovh:Me/installationTemplate:InstallationTemplate mytemplate base_template_name/template_name ``` :param str resource_name: The name of the resource. @@ -482,10 +484,12 @@ def __init__(__self__, ## Import - Custom installation template available for dedicated servers can be imported using the `base_template_name`, `template_name` of the cluster, separated by "/" E.g., bash + Custom installation template available for dedicated servers can be imported using the `base_template_name`, `template_name` of the cluster, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:Me/installationTemplate:InstallationTemplate mytemplate base_template_name/template_name + $ pulumi import ovh:Me/installationTemplate:InstallationTemplate mytemplate base_template_name/template_name ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/me/installation_template_partition_scheme.py b/sdk/python/pulumi_ovh/me/installation_template_partition_scheme.py index 1606a6b9..972e27a4 100644 --- a/sdk/python/pulumi_ovh/me/installation_template_partition_scheme.py +++ b/sdk/python/pulumi_ovh/me/installation_template_partition_scheme.py @@ -150,10 +150,12 @@ def __init__(__self__, ## Import - The resource can be imported using the `template_name`, `name` of the cluster, separated by "/" E.g., bash + The resource can be imported using the `template_name`, `name` of the cluster, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:Me/installationTemplatePartitionScheme:InstallationTemplatePartitionScheme scheme template_name/name + $ pulumi import ovh:Me/installationTemplatePartitionScheme:InstallationTemplatePartitionScheme scheme template_name/name ``` :param str resource_name: The name of the resource. @@ -188,10 +190,12 @@ def __init__(__self__, ## Import - The resource can be imported using the `template_name`, `name` of the cluster, separated by "/" E.g., bash + The resource can be imported using the `template_name`, `name` of the cluster, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:Me/installationTemplatePartitionScheme:InstallationTemplatePartitionScheme scheme template_name/name + $ pulumi import ovh:Me/installationTemplatePartitionScheme:InstallationTemplatePartitionScheme scheme template_name/name ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/me/installation_template_partition_scheme_hardware_raid.py b/sdk/python/pulumi_ovh/me/installation_template_partition_scheme_hardware_raid.py index 25e1ae07..c11cedf5 100644 --- a/sdk/python/pulumi_ovh/me/installation_template_partition_scheme_hardware_raid.py +++ b/sdk/python/pulumi_ovh/me/installation_template_partition_scheme_hardware_raid.py @@ -255,10 +255,12 @@ def __init__(__self__, ## Import - The resource can be imported using the `template_name`, `scheme_name`, `name` of the cluster, separated by "/" E.g., bash + The resource can be imported using the `template_name`, `scheme_name`, `name` of the cluster, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:Me/installationTemplatePartitionSchemeHardwareRaid:InstallationTemplatePartitionSchemeHardwareRaid group1 template_name/scheme_name/name + $ pulumi import ovh:Me/installationTemplatePartitionSchemeHardwareRaid:InstallationTemplatePartitionSchemeHardwareRaid group1 template_name/scheme_name/name ``` :param str resource_name: The name of the resource. @@ -305,10 +307,12 @@ def __init__(__self__, ## Import - The resource can be imported using the `template_name`, `scheme_name`, `name` of the cluster, separated by "/" E.g., bash + The resource can be imported using the `template_name`, `scheme_name`, `name` of the cluster, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:Me/installationTemplatePartitionSchemeHardwareRaid:InstallationTemplatePartitionSchemeHardwareRaid group1 template_name/scheme_name/name + $ pulumi import ovh:Me/installationTemplatePartitionSchemeHardwareRaid:InstallationTemplatePartitionSchemeHardwareRaid group1 template_name/scheme_name/name ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/me/installation_template_partition_scheme_partition.py b/sdk/python/pulumi_ovh/me/installation_template_partition_scheme_partition.py index 43e2ac87..4c8ba323 100644 --- a/sdk/python/pulumi_ovh/me/installation_template_partition_scheme_partition.py +++ b/sdk/python/pulumi_ovh/me/installation_template_partition_scheme_partition.py @@ -419,10 +419,12 @@ def __init__(__self__, ## Import - The resource can be imported using the `template_name`, `scheme_name`, `mountpoint` of the cluster, separated by "/" E.g., bash + The resource can be imported using the `template_name`, `scheme_name`, `mountpoint` of the cluster, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:Me/installationTemplatePartitionSchemePartition:InstallationTemplatePartitionSchemePartition root template_name/scheme_name/mountpoint + $ pulumi import ovh:Me/installationTemplatePartitionSchemePartition:InstallationTemplatePartitionSchemePartition root template_name/scheme_name/mountpoint ``` :param str resource_name: The name of the resource. @@ -488,10 +490,12 @@ def __init__(__self__, ## Import - The resource can be imported using the `template_name`, `scheme_name`, `mountpoint` of the cluster, separated by "/" E.g., bash + The resource can be imported using the `template_name`, `scheme_name`, `mountpoint` of the cluster, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:Me/installationTemplatePartitionSchemePartition:InstallationTemplatePartitionSchemePartition root template_name/scheme_name/mountpoint + $ pulumi import ovh:Me/installationTemplatePartitionSchemePartition:InstallationTemplatePartitionSchemePartition root template_name/scheme_name/mountpoint ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/vrack/cloud_project.py b/sdk/python/pulumi_ovh/vrack/cloud_project.py index 331b32e3..b0176eec 100644 --- a/sdk/python/pulumi_ovh/vrack/cloud_project.py +++ b/sdk/python/pulumi_ovh/vrack/cloud_project.py @@ -121,10 +121,12 @@ def __init__(__self__, ## Import - Attachment of a public cloud project and a VRack can be imported using the `project_id`, the `service_name` (vRackID) and the `attach_id`, separated by "/" E.g., bash + Attachment of a public cloud project and a VRack can be imported using the `project_id`, the `service_name` (vRackID) and the `attach_id`, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:Vrack/cloudProject:CloudProject myattach ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678/vrack_pn-12345678-cloudproject_ookie9mee8Shaeghaeleeju7Xeghohv6e-attach + $ pulumi import ovh:Vrack/cloudProject:CloudProject myattach ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678/vrack_pn-12345678-cloudproject_ookie9mee8Shaeghaeleeju7Xeghohv6e-attach ``` :param str resource_name: The name of the resource. @@ -156,10 +158,12 @@ def __init__(__self__, ## Import - Attachment of a public cloud project and a VRack can be imported using the `project_id`, the `service_name` (vRackID) and the `attach_id`, separated by "/" E.g., bash + Attachment of a public cloud project and a VRack can be imported using the `project_id`, the `service_name` (vRackID) and the `attach_id`, separated by "/" E.g., + + bash ```sh - $ pulumi import ovh:Vrack/cloudProject:CloudProject myattach ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678/vrack_pn-12345678-cloudproject_ookie9mee8Shaeghaeleeju7Xeghohv6e-attach + $ pulumi import ovh:Vrack/cloudProject:CloudProject myattach ookie9mee8Shaeghaeleeju7Xeghohv6e/pn-12345678/vrack_pn-12345678-cloudproject_ookie9mee8Shaeghaeleeju7Xeghohv6e-attach ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_ovh/vrack/vrack.py b/sdk/python/pulumi_ovh/vrack/vrack.py index 78c472f7..f1d6e28e 100644 --- a/sdk/python/pulumi_ovh/vrack/vrack.py +++ b/sdk/python/pulumi_ovh/vrack/vrack.py @@ -318,10 +318,10 @@ def __init__(__self__, vRack can be imported using the `order_id` that can be retrieved in the [order page](https://www.ovh.com/manager/#/dedicated/billing/orders/orders). - bash + bash ```sh - $ pulumi import ovh:Vrack/vrack:Vrack vrack order_id + $ pulumi import ovh:Vrack/vrack:Vrack vrack order_id ``` :param str resource_name: The name of the resource. @@ -366,10 +366,10 @@ def __init__(__self__, vRack can be imported using the `order_id` that can be retrieved in the [order page](https://www.ovh.com/manager/#/dedicated/billing/orders/orders). - bash + bash ```sh - $ pulumi import ovh:Vrack/vrack:Vrack vrack order_id + $ pulumi import ovh:Vrack/vrack:Vrack vrack order_id ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/setup.py b/sdk/python/setup.py index db578b6e..b9bc7f85 100644 --- a/sdk/python/setup.py +++ b/sdk/python/setup.py @@ -3,12 +3,13 @@ # *** Do not edit by hand unless you're certain you know what you are doing! *** import errno +import os from setuptools import setup, find_packages from setuptools.command.install import install from subprocess import check_call -VERSION = "0.0.0" +VERSION = os.getenv("PULUMI_PYTHON_VERSION", "0.0.0") def readme(): try: with open('README.md', encoding='utf-8') as f: @@ -18,7 +19,7 @@ def readme(): setup(name='pulumi_ovh', - python_requires='>=3.7', + python_requires='>=3.8', version=VERSION, description="A Pulumi package for creating and managing OVH resources.", long_description=readme(),