Resource Directory
Provides a Resource Manager Resource Directory resource. Resource Directory enables you to establish an organizational structure for the resources used by applications of your enterprise. You can plan, build, and manage the resources in a centralized manner by using only one resource directory. For information about Resource Manager Resource Directory and how to use it, see What is Resource Manager Resource Directory.
NOTE: Available since v1.84.0. NOTE: An account can only be used to enable a resource directory after it passes enterprise real-name verification. An account that only passed individual real-name verification cannot be used to enable a resource directory. NOTE: Before you destroy the resource, make sure that the following requirements are met:
All member accounts must be removed from the resource directory.
All folders except the root folder must be deleted from the resource directory.
Example Usage
Basic Usage
import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
const _default = alicloud.resourcemanager.getResourceDirectories({});
const defaultResourceDirectory: alicloud.resourcemanager.ResourceDirectory[] = [];
_default.then(_default => _default.directories).length.apply(length => {
for (const range = {value: 0}; range.value < (length 0 ? 0 : 1); range.value++) {
defaultResourceDirectory.push(new alicloud.resourcemanager.ResourceDirectory(`default-${range.value}`, {status: "Enabled"}));
}
});
import pulumi
import pulumi_alicloud as alicloud
default = alicloud.resourcemanager.get_resource_directories()
default_resource_directory = []
def create_default(range_body):
for range in [{"value": i} for i in range(0, range_body)]:
default_resource_directory.append(alicloud.resourcemanager.ResourceDirectory(f"default-{range['value']}", status="Enabled"))
len(default.directories).apply(lambda resolved_outputs: create_default(0 if resolved_outputs['length'] 0 else 1))
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
return await Deployment.RunAsync(() =>
{
var @default = AliCloud.ResourceManager.GetResourceDirectories.Invoke();
var defaultResourceDirectory = new List<AliCloud.ResourceManager.ResourceDirectory>();
for (var rangeIndex = 0; rangeIndex < @default.Apply(@default => @default.Apply(getResourceDirectoriesResult => getResourceDirectoriesResult.Directories)).Length.Apply(length => length 0 ? 0 : 1); rangeIndex++)
{
var range = new { Value = rangeIndex };
defaultResourceDirectory.Add(new AliCloud.ResourceManager.ResourceDirectory($"default-{range.Value}", new()
{
Status = "Enabled",
}));
}
});
package main
import (
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_default, err := resourcemanager.GetResourceDirectories(ctx, &resourcemanager.GetResourceDirectoriesArgs{}, nil)
if err != nil {
return err
}
var tmp0 float64
if length 0 {
tmp0 = 0
} else {
tmp0 = 1
}
var defaultResourceDirectory []*resourcemanager.ResourceDirectory
for index := 0; index < float64(len(_default.Directories).ApplyT(func(length int) (float64, error) {
return tmp0, nil
}).(pulumi.Float64Output)); index++ {
key0 := index
_ := index
__res, err := resourcemanager.NewResourceDirectory(ctx, fmt.Sprintf("default-%v", key0), &resourcemanager.ResourceDirectoryArgs{
Status: pulumi.String("Enabled"),
})
if err != nil {
return err
}
defaultResourceDirectory = append(defaultResourceDirectory, __res)
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;
import com.pulumi.alicloud.resourcemanager.inputs.GetResourceDirectoriesArgs;
import com.pulumi.alicloud.resourcemanager.ResourceDirectory;
import com.pulumi.alicloud.resourcemanager.ResourceDirectoryArgs;
import com.pulumi.codegen.internal.KeyedValue;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var default = ResourcemanagerFunctions.getResourceDirectories(GetResourceDirectoriesArgs.builder()
.build());
for (var i = 0; i < default_.directories().length().applyValue(_length -> _length 0 ? 0 : 1); i++) {
new ResourceDirectory("defaultResourceDirectory-" + i, ResourceDirectoryArgs.builder()
.status("Enabled")
.build());
}
}
}
resources:
defaultResourceDirectory:
type: alicloud:resourcemanager:ResourceDirectory
name: default
properties:
status: Enabled
options: {}
variables:
default:
fn::invoke:
function: alicloud:resourcemanager:getResourceDirectories
arguments: {}
Import
Resource Manager Resource Directory can be imported using the id, e.g.
$ pulumi import alicloud:resourcemanager/resourceDirectory:ResourceDirectory example rd-s3****
Properties
The ID of the master account.
The name of the master account.
Specifies whether to enable the member deletion feature. Valid values:Enabled
and Disabled
.
The ID of the root folder.