import * as core from "@terrascript/core"; export interface VpcSettingsArgs extends core.SchemaArgs { availabilityZones: core.Array | core.ArrayOut; subnetIds: core.Array | core.ArrayOut; vpcId: string | core.StringOut; } export class VpcSettings extends core.Schema { @core.attr(String, { computed: true, kind: "array" }) public availabilityZones!: core.Array | core.ArrayOut; @core.attr(String, { computed: true, kind: "array" }) public subnetIds!: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public vpcId!: string | core.StringOut; } export interface ConnectSettingsArgs extends core.SchemaArgs { availabilityZones: core.Array | core.ArrayOut; connectIps: core.Array | core.ArrayOut; customerDnsIps: core.Array | core.ArrayOut; customerUsername: string | core.StringOut; subnetIds: core.Array | core.ArrayOut; vpcId: string | core.StringOut; } export class ConnectSettings extends core.Schema { @core.attr(String, { computed: true, kind: "array" }) public availabilityZones!: core.Array | core.ArrayOut; @core.attr(String, { computed: true, kind: "array" }) public connectIps!: core.Array | core.ArrayOut; @core.attr(String, { computed: true, kind: "array" }) public customerDnsIps!: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public customerUsername!: string | core.StringOut; @core.attr(String, { computed: true, kind: "array" }) public subnetIds!: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public vpcId!: string | core.StringOut; } export interface RadiusSettingsArgs extends core.SchemaArgs { authenticationProtocol: string | core.StringOut; displayLabel: string | core.StringOut; radiusPort: number | core.NumberOut; radiusRetries: number | core.NumberOut; radiusServers: core.Array | core.ArrayOut; radiusTimeout: number | core.NumberOut; useSameUsername: boolean | core.BooleanOut; } export class RadiusSettings extends core.Schema { @core.attr(String, { computed: true }) public authenticationProtocol!: string | core.StringOut; @core.attr(String, { computed: true }) public displayLabel!: string | core.StringOut; @core.attr(Number, { computed: true }) public radiusPort!: number | core.NumberOut; @core.attr(Number, { computed: true }) public radiusRetries!: number | core.NumberOut; @core.attr(String, { computed: true, kind: "array" }) public radiusServers!: core.Array | core.ArrayOut; @core.attr(Number, { computed: true }) public radiusTimeout!: number | core.NumberOut; @core.attr(Boolean, { computed: true }) public useSameUsername!: boolean | core.BooleanOut; } export interface DsDirectoryServiceDirectoryArgs { /** * (Required) The ID of the directory. */ directoryId: string | core.StringOut; tags?: core.Map | core.MapOut; } export class DsDirectoryServiceDirectory extends core.Data { /** * The access URL for the directory/connector, such as http://alias.awsapps.com. */ @core.attr(String, { computed: true }) public accessUrl!: string | core.StringOut; /** * The alias for the directory/connector, such as `d-991708b282.awsapps.com`. */ @core.attr(String, { computed: true }) public alias!: string | core.StringOut; @core.attr(ConnectSettings, { computed: true, kind: "array" }) public connectSettings!: | core.Array | core.ArrayOut; /** * A textual description for the directory/connector. */ @core.attr(String, { computed: true }) public description!: string | core.StringOut; /** * (Required) The ID of the directory. */ @core.attr(String) public directoryId!: string | core.StringOut; /** * A list of IP addresses of the DNS servers for the directory/connector. */ @core.attr(String, { computed: true, kind: "array" }) public dnsIpAddresses!: core.Array | core.ArrayOut; /** * (for `MicrosoftAD`) The Microsoft AD edition (`Standard` or `Enterprise`). */ @core.attr(String, { computed: true }) public edition!: string | core.StringOut; /** * The directory/connector single-sign on status. */ @core.attr(Boolean, { computed: true }) public enableSso!: boolean | core.BooleanOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * The fully qualified name for the directory/connector. */ @core.attr(String, { computed: true }) public name!: string | core.StringOut; @core.attr(RadiusSettings, { computed: true, kind: "array" }) public radiusSettings!: | core.Array | core.ArrayOut; /** * The ID of the security group created by the directory/connector. */ @core.attr(String, { computed: true }) public securityGroupId!: string | core.StringOut; /** * The short name of the directory/connector, such as `CORP`. */ @core.attr(String, { computed: true }) public shortName!: string | core.StringOut; /** * (for `SimpleAD` and `ADConnector`) The size of the directory/connector (`Small` or `Large`). */ @core.attr(String, { computed: true }) public size!: string | core.StringOut; @core.attr(String, { computed: true, kind: "map" }) public tags?: core.Map | core.MapOut; /** * The directory type (`SimpleAD`, `ADConnector` or `MicrosoftAD`). */ @core.attr(String, { computed: true }) public type!: string | core.StringOut; @core.attr(VpcSettings, { computed: true, kind: "array" }) public vpcSettings!: core.Array | core.ArrayOut; constructor(name: string, args?: DsDirectoryServiceDirectoryArgs) { super(name, "aws_directory_service_directory", args); } public override getNamespace(): string { return "aws_ds"; } }