Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.aws.directoryservice.kotlin.DirectoryArgs.kt Maven / Gradle / Ivy
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.aws.directoryservice.kotlin
import com.pulumi.aws.directoryservice.DirectoryArgs.builder
import com.pulumi.aws.directoryservice.kotlin.inputs.DirectoryConnectSettingsArgs
import com.pulumi.aws.directoryservice.kotlin.inputs.DirectoryConnectSettingsArgsBuilder
import com.pulumi.aws.directoryservice.kotlin.inputs.DirectoryVpcSettingsArgs
import com.pulumi.aws.directoryservice.kotlin.inputs.DirectoryVpcSettingsArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.Int
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.Map
import kotlin.jvm.JvmName
/**
* Provides a Simple or Managed Microsoft directory in AWS Directory Service.
* ## Example Usage
* ### SimpleAD
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
* const main = new aws.ec2.Vpc("main", {cidrBlock: "10.0.0.0/16"});
* const foo = new aws.ec2.Subnet("foo", {
* vpcId: main.id,
* availabilityZone: "us-west-2a",
* cidrBlock: "10.0.1.0/24",
* });
* const barSubnet = new aws.ec2.Subnet("bar", {
* vpcId: main.id,
* availabilityZone: "us-west-2b",
* cidrBlock: "10.0.2.0/24",
* });
* const bar = new aws.directoryservice.Directory("bar", {
* name: "corp.notexample.com",
* password: "SuperSecretPassw0rd",
* size: "Small",
* vpcSettings: {
* vpcId: main.id,
* subnetIds: [
* foo.id,
* barSubnet.id,
* ],
* },
* tags: {
* Project: "foo",
* },
* });
* ```
* ```python
* import pulumi
* import pulumi_aws as aws
* main = aws.ec2.Vpc("main", cidr_block="10.0.0.0/16")
* foo = aws.ec2.Subnet("foo",
* vpc_id=main.id,
* availability_zone="us-west-2a",
* cidr_block="10.0.1.0/24")
* bar_subnet = aws.ec2.Subnet("bar",
* vpc_id=main.id,
* availability_zone="us-west-2b",
* cidr_block="10.0.2.0/24")
* bar = aws.directoryservice.Directory("bar",
* name="corp.notexample.com",
* password="SuperSecretPassw0rd",
* size="Small",
* vpc_settings={
* "vpc_id": main.id,
* "subnet_ids": [
* foo.id,
* bar_subnet.id,
* ],
* },
* tags={
* "Project": "foo",
* })
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using Aws = Pulumi.Aws;
* return await Deployment.RunAsync(() =>
* {
* var main = new Aws.Ec2.Vpc("main", new()
* {
* CidrBlock = "10.0.0.0/16",
* });
* var foo = new Aws.Ec2.Subnet("foo", new()
* {
* VpcId = main.Id,
* AvailabilityZone = "us-west-2a",
* CidrBlock = "10.0.1.0/24",
* });
* var barSubnet = new Aws.Ec2.Subnet("bar", new()
* {
* VpcId = main.Id,
* AvailabilityZone = "us-west-2b",
* CidrBlock = "10.0.2.0/24",
* });
* var bar = new Aws.DirectoryService.Directory("bar", new()
* {
* Name = "corp.notexample.com",
* Password = "SuperSecretPassw0rd",
* Size = "Small",
* VpcSettings = new Aws.DirectoryService.Inputs.DirectoryVpcSettingsArgs
* {
* VpcId = main.Id,
* SubnetIds = new[]
* {
* foo.Id,
* barSubnet.Id,
* },
* },
* Tags =
* {
* { "Project", "foo" },
* },
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/directoryservice"
* "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* main, err := ec2.NewVpc(ctx, "main", &ec2.VpcArgs{
* CidrBlock: pulumi.String("10.0.0.0/16"),
* })
* if err != nil {
* return err
* }
* foo, err := ec2.NewSubnet(ctx, "foo", &ec2.SubnetArgs{
* VpcId: main.ID(),
* AvailabilityZone: pulumi.String("us-west-2a"),
* CidrBlock: pulumi.String("10.0.1.0/24"),
* })
* if err != nil {
* return err
* }
* barSubnet, err := ec2.NewSubnet(ctx, "bar", &ec2.SubnetArgs{
* VpcId: main.ID(),
* AvailabilityZone: pulumi.String("us-west-2b"),
* CidrBlock: pulumi.String("10.0.2.0/24"),
* })
* if err != nil {
* return err
* }
* _, err = directoryservice.NewDirectory(ctx, "bar", &directoryservice.DirectoryArgs{
* Name: pulumi.String("corp.notexample.com"),
* Password: pulumi.String("SuperSecretPassw0rd"),
* Size: pulumi.String("Small"),
* VpcSettings: &directoryservice.DirectoryVpcSettingsArgs{
* VpcId: main.ID(),
* SubnetIds: pulumi.StringArray{
* foo.ID(),
* barSubnet.ID(),
* },
* },
* Tags: pulumi.StringMap{
* "Project": pulumi.String("foo"),
* },
* })
* if err != nil {
* return err
* }
* return nil
* })
* }
* ```
* ```java
* package generated_program;
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.aws.ec2.Vpc;
* import com.pulumi.aws.ec2.VpcArgs;
* import com.pulumi.aws.ec2.Subnet;
* import com.pulumi.aws.ec2.SubnetArgs;
* import com.pulumi.aws.directoryservice.Directory;
* import com.pulumi.aws.directoryservice.DirectoryArgs;
* import com.pulumi.aws.directoryservice.inputs.DirectoryVpcSettingsArgs;
* 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) {
* var main = new Vpc("main", VpcArgs.builder()
* .cidrBlock("10.0.0.0/16")
* .build());
* var foo = new Subnet("foo", SubnetArgs.builder()
* .vpcId(main.id())
* .availabilityZone("us-west-2a")
* .cidrBlock("10.0.1.0/24")
* .build());
* var barSubnet = new Subnet("barSubnet", SubnetArgs.builder()
* .vpcId(main.id())
* .availabilityZone("us-west-2b")
* .cidrBlock("10.0.2.0/24")
* .build());
* var bar = new Directory("bar", DirectoryArgs.builder()
* .name("corp.notexample.com")
* .password("SuperSecretPassw0rd")
* .size("Small")
* .vpcSettings(DirectoryVpcSettingsArgs.builder()
* .vpcId(main.id())
* .subnetIds(
* foo.id(),
* barSubnet.id())
* .build())
* .tags(Map.of("Project", "foo"))
* .build());
* }
* }
* ```
* ```yaml
* resources:
* bar:
* type: aws:directoryservice:Directory
* properties:
* name: corp.notexample.com
* password: SuperSecretPassw0rd
* size: Small
* vpcSettings:
* vpcId: ${main.id}
* subnetIds:
* - ${foo.id}
* - ${barSubnet.id}
* tags:
* Project: foo
* main:
* type: aws:ec2:Vpc
* properties:
* cidrBlock: 10.0.0.0/16
* foo:
* type: aws:ec2:Subnet
* properties:
* vpcId: ${main.id}
* availabilityZone: us-west-2a
* cidrBlock: 10.0.1.0/24
* barSubnet:
* type: aws:ec2:Subnet
* name: bar
* properties:
* vpcId: ${main.id}
* availabilityZone: us-west-2b
* cidrBlock: 10.0.2.0/24
* ```
*
* ### Microsoft Active Directory (MicrosoftAD)
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
* const main = new aws.ec2.Vpc("main", {cidrBlock: "10.0.0.0/16"});
* const foo = new aws.ec2.Subnet("foo", {
* vpcId: main.id,
* availabilityZone: "us-west-2a",
* cidrBlock: "10.0.1.0/24",
* });
* const barSubnet = new aws.ec2.Subnet("bar", {
* vpcId: main.id,
* availabilityZone: "us-west-2b",
* cidrBlock: "10.0.2.0/24",
* });
* const bar = new aws.directoryservice.Directory("bar", {
* name: "corp.notexample.com",
* password: "SuperSecretPassw0rd",
* edition: "Standard",
* type: "MicrosoftAD",
* vpcSettings: {
* vpcId: main.id,
* subnetIds: [
* foo.id,
* barSubnet.id,
* ],
* },
* tags: {
* Project: "foo",
* },
* });
* ```
* ```python
* import pulumi
* import pulumi_aws as aws
* main = aws.ec2.Vpc("main", cidr_block="10.0.0.0/16")
* foo = aws.ec2.Subnet("foo",
* vpc_id=main.id,
* availability_zone="us-west-2a",
* cidr_block="10.0.1.0/24")
* bar_subnet = aws.ec2.Subnet("bar",
* vpc_id=main.id,
* availability_zone="us-west-2b",
* cidr_block="10.0.2.0/24")
* bar = aws.directoryservice.Directory("bar",
* name="corp.notexample.com",
* password="SuperSecretPassw0rd",
* edition="Standard",
* type="MicrosoftAD",
* vpc_settings={
* "vpc_id": main.id,
* "subnet_ids": [
* foo.id,
* bar_subnet.id,
* ],
* },
* tags={
* "Project": "foo",
* })
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using Aws = Pulumi.Aws;
* return await Deployment.RunAsync(() =>
* {
* var main = new Aws.Ec2.Vpc("main", new()
* {
* CidrBlock = "10.0.0.0/16",
* });
* var foo = new Aws.Ec2.Subnet("foo", new()
* {
* VpcId = main.Id,
* AvailabilityZone = "us-west-2a",
* CidrBlock = "10.0.1.0/24",
* });
* var barSubnet = new Aws.Ec2.Subnet("bar", new()
* {
* VpcId = main.Id,
* AvailabilityZone = "us-west-2b",
* CidrBlock = "10.0.2.0/24",
* });
* var bar = new Aws.DirectoryService.Directory("bar", new()
* {
* Name = "corp.notexample.com",
* Password = "SuperSecretPassw0rd",
* Edition = "Standard",
* Type = "MicrosoftAD",
* VpcSettings = new Aws.DirectoryService.Inputs.DirectoryVpcSettingsArgs
* {
* VpcId = main.Id,
* SubnetIds = new[]
* {
* foo.Id,
* barSubnet.Id,
* },
* },
* Tags =
* {
* { "Project", "foo" },
* },
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/directoryservice"
* "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* main, err := ec2.NewVpc(ctx, "main", &ec2.VpcArgs{
* CidrBlock: pulumi.String("10.0.0.0/16"),
* })
* if err != nil {
* return err
* }
* foo, err := ec2.NewSubnet(ctx, "foo", &ec2.SubnetArgs{
* VpcId: main.ID(),
* AvailabilityZone: pulumi.String("us-west-2a"),
* CidrBlock: pulumi.String("10.0.1.0/24"),
* })
* if err != nil {
* return err
* }
* barSubnet, err := ec2.NewSubnet(ctx, "bar", &ec2.SubnetArgs{
* VpcId: main.ID(),
* AvailabilityZone: pulumi.String("us-west-2b"),
* CidrBlock: pulumi.String("10.0.2.0/24"),
* })
* if err != nil {
* return err
* }
* _, err = directoryservice.NewDirectory(ctx, "bar", &directoryservice.DirectoryArgs{
* Name: pulumi.String("corp.notexample.com"),
* Password: pulumi.String("SuperSecretPassw0rd"),
* Edition: pulumi.String("Standard"),
* Type: pulumi.String("MicrosoftAD"),
* VpcSettings: &directoryservice.DirectoryVpcSettingsArgs{
* VpcId: main.ID(),
* SubnetIds: pulumi.StringArray{
* foo.ID(),
* barSubnet.ID(),
* },
* },
* Tags: pulumi.StringMap{
* "Project": pulumi.String("foo"),
* },
* })
* if err != nil {
* return err
* }
* return nil
* })
* }
* ```
* ```java
* package generated_program;
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.aws.ec2.Vpc;
* import com.pulumi.aws.ec2.VpcArgs;
* import com.pulumi.aws.ec2.Subnet;
* import com.pulumi.aws.ec2.SubnetArgs;
* import com.pulumi.aws.directoryservice.Directory;
* import com.pulumi.aws.directoryservice.DirectoryArgs;
* import com.pulumi.aws.directoryservice.inputs.DirectoryVpcSettingsArgs;
* 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) {
* var main = new Vpc("main", VpcArgs.builder()
* .cidrBlock("10.0.0.0/16")
* .build());
* var foo = new Subnet("foo", SubnetArgs.builder()
* .vpcId(main.id())
* .availabilityZone("us-west-2a")
* .cidrBlock("10.0.1.0/24")
* .build());
* var barSubnet = new Subnet("barSubnet", SubnetArgs.builder()
* .vpcId(main.id())
* .availabilityZone("us-west-2b")
* .cidrBlock("10.0.2.0/24")
* .build());
* var bar = new Directory("bar", DirectoryArgs.builder()
* .name("corp.notexample.com")
* .password("SuperSecretPassw0rd")
* .edition("Standard")
* .type("MicrosoftAD")
* .vpcSettings(DirectoryVpcSettingsArgs.builder()
* .vpcId(main.id())
* .subnetIds(
* foo.id(),
* barSubnet.id())
* .build())
* .tags(Map.of("Project", "foo"))
* .build());
* }
* }
* ```
* ```yaml
* resources:
* bar:
* type: aws:directoryservice:Directory
* properties:
* name: corp.notexample.com
* password: SuperSecretPassw0rd
* edition: Standard
* type: MicrosoftAD
* vpcSettings:
* vpcId: ${main.id}
* subnetIds:
* - ${foo.id}
* - ${barSubnet.id}
* tags:
* Project: foo
* main:
* type: aws:ec2:Vpc
* properties:
* cidrBlock: 10.0.0.0/16
* foo:
* type: aws:ec2:Subnet
* properties:
* vpcId: ${main.id}
* availabilityZone: us-west-2a
* cidrBlock: 10.0.1.0/24
* barSubnet:
* type: aws:ec2:Subnet
* name: bar
* properties:
* vpcId: ${main.id}
* availabilityZone: us-west-2b
* cidrBlock: 10.0.2.0/24
* ```
*
* ### Microsoft Active Directory Connector (ADConnector)
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
* const main = new aws.ec2.Vpc("main", {cidrBlock: "10.0.0.0/16"});
* const foo = new aws.ec2.Subnet("foo", {
* vpcId: main.id,
* availabilityZone: "us-west-2a",
* cidrBlock: "10.0.1.0/24",
* });
* const bar = new aws.ec2.Subnet("bar", {
* vpcId: main.id,
* availabilityZone: "us-west-2b",
* cidrBlock: "10.0.2.0/24",
* });
* const connector = new aws.directoryservice.Directory("connector", {
* name: "corp.notexample.com",
* password: "SuperSecretPassw0rd",
* size: "Small",
* type: "ADConnector",
* connectSettings: {
* customerDnsIps: ["A.B.C.D"],
* customerUsername: "Admin",
* subnetIds: [
* foo.id,
* bar.id,
* ],
* vpcId: main.id,
* },
* });
* ```
* ```python
* import pulumi
* import pulumi_aws as aws
* main = aws.ec2.Vpc("main", cidr_block="10.0.0.0/16")
* foo = aws.ec2.Subnet("foo",
* vpc_id=main.id,
* availability_zone="us-west-2a",
* cidr_block="10.0.1.0/24")
* bar = aws.ec2.Subnet("bar",
* vpc_id=main.id,
* availability_zone="us-west-2b",
* cidr_block="10.0.2.0/24")
* connector = aws.directoryservice.Directory("connector",
* name="corp.notexample.com",
* password="SuperSecretPassw0rd",
* size="Small",
* type="ADConnector",
* connect_settings={
* "customer_dns_ips": ["A.B.C.D"],
* "customer_username": "Admin",
* "subnet_ids": [
* foo.id,
* bar.id,
* ],
* "vpc_id": main.id,
* })
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using Aws = Pulumi.Aws;
* return await Deployment.RunAsync(() =>
* {
* var main = new Aws.Ec2.Vpc("main", new()
* {
* CidrBlock = "10.0.0.0/16",
* });
* var foo = new Aws.Ec2.Subnet("foo", new()
* {
* VpcId = main.Id,
* AvailabilityZone = "us-west-2a",
* CidrBlock = "10.0.1.0/24",
* });
* var bar = new Aws.Ec2.Subnet("bar", new()
* {
* VpcId = main.Id,
* AvailabilityZone = "us-west-2b",
* CidrBlock = "10.0.2.0/24",
* });
* var connector = new Aws.DirectoryService.Directory("connector", new()
* {
* Name = "corp.notexample.com",
* Password = "SuperSecretPassw0rd",
* Size = "Small",
* Type = "ADConnector",
* ConnectSettings = new Aws.DirectoryService.Inputs.DirectoryConnectSettingsArgs
* {
* CustomerDnsIps = new[]
* {
* "A.B.C.D",
* },
* CustomerUsername = "Admin",
* SubnetIds = new[]
* {
* foo.Id,
* bar.Id,
* },
* VpcId = main.Id,
* },
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/directoryservice"
* "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* main, err := ec2.NewVpc(ctx, "main", &ec2.VpcArgs{
* CidrBlock: pulumi.String("10.0.0.0/16"),
* })
* if err != nil {
* return err
* }
* foo, err := ec2.NewSubnet(ctx, "foo", &ec2.SubnetArgs{
* VpcId: main.ID(),
* AvailabilityZone: pulumi.String("us-west-2a"),
* CidrBlock: pulumi.String("10.0.1.0/24"),
* })
* if err != nil {
* return err
* }
* bar, err := ec2.NewSubnet(ctx, "bar", &ec2.SubnetArgs{
* VpcId: main.ID(),
* AvailabilityZone: pulumi.String("us-west-2b"),
* CidrBlock: pulumi.String("10.0.2.0/24"),
* })
* if err != nil {
* return err
* }
* _, err = directoryservice.NewDirectory(ctx, "connector", &directoryservice.DirectoryArgs{
* Name: pulumi.String("corp.notexample.com"),
* Password: pulumi.String("SuperSecretPassw0rd"),
* Size: pulumi.String("Small"),
* Type: pulumi.String("ADConnector"),
* ConnectSettings: &directoryservice.DirectoryConnectSettingsArgs{
* CustomerDnsIps: pulumi.StringArray{
* pulumi.String("A.B.C.D"),
* },
* CustomerUsername: pulumi.String("Admin"),
* SubnetIds: pulumi.StringArray{
* foo.ID(),
* bar.ID(),
* },
* VpcId: main.ID(),
* },
* })
* if err != nil {
* return err
* }
* return nil
* })
* }
* ```
* ```java
* package generated_program;
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.aws.ec2.Vpc;
* import com.pulumi.aws.ec2.VpcArgs;
* import com.pulumi.aws.ec2.Subnet;
* import com.pulumi.aws.ec2.SubnetArgs;
* import com.pulumi.aws.directoryservice.Directory;
* import com.pulumi.aws.directoryservice.DirectoryArgs;
* import com.pulumi.aws.directoryservice.inputs.DirectoryConnectSettingsArgs;
* 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) {
* var main = new Vpc("main", VpcArgs.builder()
* .cidrBlock("10.0.0.0/16")
* .build());
* var foo = new Subnet("foo", SubnetArgs.builder()
* .vpcId(main.id())
* .availabilityZone("us-west-2a")
* .cidrBlock("10.0.1.0/24")
* .build());
* var bar = new Subnet("bar", SubnetArgs.builder()
* .vpcId(main.id())
* .availabilityZone("us-west-2b")
* .cidrBlock("10.0.2.0/24")
* .build());
* var connector = new Directory("connector", DirectoryArgs.builder()
* .name("corp.notexample.com")
* .password("SuperSecretPassw0rd")
* .size("Small")
* .type("ADConnector")
* .connectSettings(DirectoryConnectSettingsArgs.builder()
* .customerDnsIps("A.B.C.D")
* .customerUsername("Admin")
* .subnetIds(
* foo.id(),
* bar.id())
* .vpcId(main.id())
* .build())
* .build());
* }
* }
* ```
* ```yaml
* resources:
* connector:
* type: aws:directoryservice:Directory
* properties:
* name: corp.notexample.com
* password: SuperSecretPassw0rd
* size: Small
* type: ADConnector
* connectSettings:
* customerDnsIps:
* - A.B.C.D
* customerUsername: Admin
* subnetIds:
* - ${foo.id}
* - ${bar.id}
* vpcId: ${main.id}
* main:
* type: aws:ec2:Vpc
* properties:
* cidrBlock: 10.0.0.0/16
* foo:
* type: aws:ec2:Subnet
* properties:
* vpcId: ${main.id}
* availabilityZone: us-west-2a
* cidrBlock: 10.0.1.0/24
* bar:
* type: aws:ec2:Subnet
* properties:
* vpcId: ${main.id}
* availabilityZone: us-west-2b
* cidrBlock: 10.0.2.0/24
* ```
*
* ## Import
* Using `pulumi import`, import DirectoryService directories using the directory `id`. For example:
* ```sh
* $ pulumi import aws:directoryservice/directory:Directory sample d-926724cf57
* ```
* @property alias The alias for the directory (must be unique amongst all aliases in AWS). Required for `enable_sso`.
* @property connectSettings Connector related information about the directory. Fields documented below.
* @property description A textual description for the directory.
* @property desiredNumberOfDomainControllers The number of domain controllers desired in the directory. Minimum value of `2`. Scaling of domain controllers is only supported for `MicrosoftAD` directories.
* @property edition The MicrosoftAD edition (`Standard` or `Enterprise`). Defaults to `Enterprise`.
* @property enableSso Whether to enable single-sign on for the directory. Requires `alias`. Defaults to `false`.
* @property name The fully qualified name for the directory, such as `corp.example.com`
* @property password The password for the directory administrator or connector user.
* @property shortName The short name of the directory, such as `CORP`.
* @property size (For `SimpleAD` and `ADConnector` types) The size of the directory (`Small` or `Large` are accepted values). `Large` by default.
* @property tags A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
* @property type The directory type (`SimpleAD`, `ADConnector` or `MicrosoftAD` are accepted values). Defaults to `SimpleAD`.
* @property vpcSettings VPC related information about the directory. Fields documented below.
*/
public data class DirectoryArgs(
public val alias: Output? = null,
public val connectSettings: Output? = null,
public val description: Output? = null,
public val desiredNumberOfDomainControllers: Output? = null,
public val edition: Output? = null,
public val enableSso: Output? = null,
public val name: Output? = null,
public val password: Output? = null,
public val shortName: Output? = null,
public val size: Output? = null,
public val tags: Output>? = null,
public val type: Output? = null,
public val vpcSettings: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.aws.directoryservice.DirectoryArgs =
com.pulumi.aws.directoryservice.DirectoryArgs.builder()
.alias(alias?.applyValue({ args0 -> args0 }))
.connectSettings(connectSettings?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.description(description?.applyValue({ args0 -> args0 }))
.desiredNumberOfDomainControllers(desiredNumberOfDomainControllers?.applyValue({ args0 -> args0 }))
.edition(edition?.applyValue({ args0 -> args0 }))
.enableSso(enableSso?.applyValue({ args0 -> args0 }))
.name(name?.applyValue({ args0 -> args0 }))
.password(password?.applyValue({ args0 -> args0 }))
.shortName(shortName?.applyValue({ args0 -> args0 }))
.size(size?.applyValue({ args0 -> args0 }))
.tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
.type(type?.applyValue({ args0 -> args0 }))
.vpcSettings(vpcSettings?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}
/**
* Builder for [DirectoryArgs].
*/
@PulumiTagMarker
public class DirectoryArgsBuilder internal constructor() {
private var alias: Output? = null
private var connectSettings: Output? = null
private var description: Output? = null
private var desiredNumberOfDomainControllers: Output? = null
private var edition: Output? = null
private var enableSso: Output? = null
private var name: Output? = null
private var password: Output? = null
private var shortName: Output? = null
private var size: Output? = null
private var tags: Output>? = null
private var type: Output? = null
private var vpcSettings: Output? = null
/**
* @param value The alias for the directory (must be unique amongst all aliases in AWS). Required for `enable_sso`.
*/
@JvmName("rornjgyuhofhbubi")
public suspend fun alias(`value`: Output) {
this.alias = value
}
/**
* @param value Connector related information about the directory. Fields documented below.
*/
@JvmName("ewnvmxnylnbjumvw")
public suspend fun connectSettings(`value`: Output) {
this.connectSettings = value
}
/**
* @param value A textual description for the directory.
*/
@JvmName("tgjnnfqocnjygyet")
public suspend fun description(`value`: Output) {
this.description = value
}
/**
* @param value The number of domain controllers desired in the directory. Minimum value of `2`. Scaling of domain controllers is only supported for `MicrosoftAD` directories.
*/
@JvmName("ollbcyycyfelckgu")
public suspend fun desiredNumberOfDomainControllers(`value`: Output) {
this.desiredNumberOfDomainControllers = value
}
/**
* @param value The MicrosoftAD edition (`Standard` or `Enterprise`). Defaults to `Enterprise`.
*/
@JvmName("ldrosxqjllexdhsw")
public suspend fun edition(`value`: Output) {
this.edition = value
}
/**
* @param value Whether to enable single-sign on for the directory. Requires `alias`. Defaults to `false`.
*/
@JvmName("hnvevywbrmbbrmmm")
public suspend fun enableSso(`value`: Output) {
this.enableSso = value
}
/**
* @param value The fully qualified name for the directory, such as `corp.example.com`
*/
@JvmName("qtvbjtowhyyutgcl")
public suspend fun name(`value`: Output) {
this.name = value
}
/**
* @param value The password for the directory administrator or connector user.
*/
@JvmName("tjlmrchmmpbemkce")
public suspend fun password(`value`: Output) {
this.password = value
}
/**
* @param value The short name of the directory, such as `CORP`.
*/
@JvmName("xxwrsvgawucmombm")
public suspend fun shortName(`value`: Output) {
this.shortName = value
}
/**
* @param value (For `SimpleAD` and `ADConnector` types) The size of the directory (`Small` or `Large` are accepted values). `Large` by default.
*/
@JvmName("ipggagwitxxfospr")
public suspend fun size(`value`: Output) {
this.size = value
}
/**
* @param value A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
*/
@JvmName("gctyciyythxqqwcl")
public suspend fun tags(`value`: Output>) {
this.tags = value
}
/**
* @param value The directory type (`SimpleAD`, `ADConnector` or `MicrosoftAD` are accepted values). Defaults to `SimpleAD`.
*/
@JvmName("oydrsgothqhcxrxd")
public suspend fun type(`value`: Output) {
this.type = value
}
/**
* @param value VPC related information about the directory. Fields documented below.
*/
@JvmName("ctprypssulrmrjhf")
public suspend fun vpcSettings(`value`: Output) {
this.vpcSettings = value
}
/**
* @param value The alias for the directory (must be unique amongst all aliases in AWS). Required for `enable_sso`.
*/
@JvmName("aoxyfattsfkraeww")
public suspend fun alias(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.alias = mapped
}
/**
* @param value Connector related information about the directory. Fields documented below.
*/
@JvmName("laxrhxccuneemwha")
public suspend fun connectSettings(`value`: DirectoryConnectSettingsArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.connectSettings = mapped
}
/**
* @param argument Connector related information about the directory. Fields documented below.
*/
@JvmName("ebbuhjadwalprxyk")
public suspend fun connectSettings(argument: suspend DirectoryConnectSettingsArgsBuilder.() -> Unit) {
val toBeMapped = DirectoryConnectSettingsArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.connectSettings = mapped
}
/**
* @param value A textual description for the directory.
*/
@JvmName("ivqcvqsejkotudxc")
public suspend fun description(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.description = mapped
}
/**
* @param value The number of domain controllers desired in the directory. Minimum value of `2`. Scaling of domain controllers is only supported for `MicrosoftAD` directories.
*/
@JvmName("ddxplditpmokrdqj")
public suspend fun desiredNumberOfDomainControllers(`value`: Int?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.desiredNumberOfDomainControllers = mapped
}
/**
* @param value The MicrosoftAD edition (`Standard` or `Enterprise`). Defaults to `Enterprise`.
*/
@JvmName("wcaqvlaflkjnlxxw")
public suspend fun edition(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.edition = mapped
}
/**
* @param value Whether to enable single-sign on for the directory. Requires `alias`. Defaults to `false`.
*/
@JvmName("jrkgurnwcmxxehhp")
public suspend fun enableSso(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.enableSso = mapped
}
/**
* @param value The fully qualified name for the directory, such as `corp.example.com`
*/
@JvmName("immtohrosxskkxtd")
public suspend fun name(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.name = mapped
}
/**
* @param value The password for the directory administrator or connector user.
*/
@JvmName("wyvgsbgxadeptyes")
public suspend fun password(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.password = mapped
}
/**
* @param value The short name of the directory, such as `CORP`.
*/
@JvmName("pjdhwecdxxryvsak")
public suspend fun shortName(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.shortName = mapped
}
/**
* @param value (For `SimpleAD` and `ADConnector` types) The size of the directory (`Small` or `Large` are accepted values). `Large` by default.
*/
@JvmName("ctiplysceftcpgdw")
public suspend fun size(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.size = mapped
}
/**
* @param value A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
*/
@JvmName("lidfddjsvbjhlqgs")
public suspend fun tags(`value`: Map?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.tags = mapped
}
/**
* @param values A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
*/
@JvmName("uduuuphnedynqdnd")
public fun tags(vararg values: Pair) {
val toBeMapped = values.toMap()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.tags = mapped
}
/**
* @param value The directory type (`SimpleAD`, `ADConnector` or `MicrosoftAD` are accepted values). Defaults to `SimpleAD`.
*/
@JvmName("xajqcxpaiyyfriks")
public suspend fun type(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.type = mapped
}
/**
* @param value VPC related information about the directory. Fields documented below.
*/
@JvmName("jwuposdpdrpyxmdu")
public suspend fun vpcSettings(`value`: DirectoryVpcSettingsArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.vpcSettings = mapped
}
/**
* @param argument VPC related information about the directory. Fields documented below.
*/
@JvmName("raioalmivfmapvme")
public suspend fun vpcSettings(argument: suspend DirectoryVpcSettingsArgsBuilder.() -> Unit) {
val toBeMapped = DirectoryVpcSettingsArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.vpcSettings = mapped
}
internal fun build(): DirectoryArgs = DirectoryArgs(
alias = alias,
connectSettings = connectSettings,
description = description,
desiredNumberOfDomainControllers = desiredNumberOfDomainControllers,
edition = edition,
enableSso = enableSso,
name = name,
password = password,
shortName = shortName,
size = size,
tags = tags,
type = type,
vpcSettings = vpcSettings,
)
}