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, { kind: "array" }) public subnetIds!: core.Array | core.ArrayOut; @core.attr(String) 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, { kind: "array" }) public customerDnsIps!: core.Array | core.ArrayOut; @core.attr(String) public customerUsername!: string | core.StringOut; @core.attr(String, { kind: "array" }) public subnetIds!: core.Array | core.ArrayOut; @core.attr(String) public vpcId!: string | core.StringOut; } export interface DirectoryServiceDirectoryArgs extends core.ResourceArgs { /** * (Optional) The alias for the directory (must be unique amongst all aliases in AWS). Required for `en * able_sso`. */ alias?: string | core.StringOut; /** * (Required for `ADConnector`) Connector related information about the directory. Fields documented be * low. */ connectSettings?: ConnectSettings; /** * (Optional) A textual description for the directory. */ description?: string | core.StringOut; /** * (Optional) The number of domain controllers desired in the directory. Minimum value of `2`. Scaling * of domain controllers is only supported for `MicrosoftAD` directories. */ desiredNumberOfDomainControllers?: number | core.NumberOut; /** * (Optional) The MicrosoftAD edition (`Standard` or `Enterprise`). Defaults to `Enterprise` (applies t * o MicrosoftAD type only). */ edition?: string | core.StringOut; /** * (Optional) Whether to enable single-sign on for the directory. Requires `alias`. Defaults to `false` * . */ enableSso?: boolean | core.BooleanOut; /** * (Required) The fully qualified name for the directory, such as `corp.example.com` */ name: string | core.StringOut; /** * (Required) The password for the directory administrator or connector user. */ password: string | core.StringOut; /** * (Optional) The short name of the directory, such as `CORP`. */ shortName?: string | core.StringOut; /** * (Required for `SimpleAD` and `ADConnector`) The size of the directory (`Small` or `Large` are accept * ed values). */ size?: string | core.StringOut; /** * (Optional) A map of tags to assign to the resource. If configured with a provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block) present, tags with matching keys will overwrite those defined at the provider-lev * el. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; type?: string | core.StringOut; /** * (Required for `SimpleAD` and `MicrosoftAD`) VPC related information about the directory. Fields docu * mented below. */ vpcSettings?: VpcSettings; } export class DirectoryServiceDirectory extends core.Resource { /** * The access URL for the directory, such as `http://alias.awsapps.com`. */ @core.attr(String, { computed: true }) public accessUrl!: string | core.StringOut; /** * (Optional) The alias for the directory (must be unique amongst all aliases in AWS). Required for `en * able_sso`. */ @core.attr(String, { computed: true }) public alias?: string | core.StringOut; /** * (Required for `ADConnector`) Connector related information about the directory. Fields documented be * low. */ @core.attr(ConnectSettings) public connectSettings?: ConnectSettings; /** * (Optional) A textual description for the directory. */ @core.attr(String) public description?: string | core.StringOut; /** * (Optional) The number of domain controllers desired in the directory. Minimum value of `2`. Scaling * of domain controllers is only supported for `MicrosoftAD` directories. */ @core.attr(Number, { computed: true }) public desiredNumberOfDomainControllers?: number | core.NumberOut; /** * A list of IP addresses of the DNS servers for the directory or connector. */ @core.attr(String, { computed: true, kind: "array" }) public dnsIpAddresses!: core.Array | core.ArrayOut; /** * (Optional) The MicrosoftAD edition (`Standard` or `Enterprise`). Defaults to `Enterprise` (applies t * o MicrosoftAD type only). */ @core.attr(String, { computed: true }) public edition?: string | core.StringOut; /** * (Optional) Whether to enable single-sign on for the directory. Requires `alias`. Defaults to `false` * . */ @core.attr(Boolean) public enableSso?: boolean | core.BooleanOut; /** * The directory identifier. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) The fully qualified name for the directory, such as `corp.example.com` */ @core.attr(String) public name!: string | core.StringOut; /** * (Required) The password for the directory administrator or connector user. */ @core.attr(String) public password!: string | core.StringOut; /** * The ID of the security group created by the directory. */ @core.attr(String, { computed: true }) public securityGroupId!: string | core.StringOut; /** * (Optional) The short name of the directory, such as `CORP`. */ @core.attr(String, { computed: true }) public shortName?: string | core.StringOut; /** * (Required for `SimpleAD` and `ADConnector`) The size of the directory (`Small` or `Large` are accept * ed values). */ @core.attr(String, { computed: true }) public size?: string | core.StringOut; /** * (Optional) A map of tags to assign to the resource. If configured with a provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block) present, tags with matching keys will overwrite those defined at the provider-lev * el. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; @core.attr(String) public type?: string | core.StringOut; /** * (Required for `SimpleAD` and `MicrosoftAD`) VPC related information about the directory. Fields docu * mented below. */ @core.attr(VpcSettings) public vpcSettings?: VpcSettings; constructor(name: string, args?: DirectoryServiceDirectoryArgs) { super(name, "aws_directory_service_directory", args); } public override getNamespace(): string { return "aws_ds"; } }