import * as core from "@terrascript/core"; export interface LevelFourArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class LevelFour extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface LevelFiveArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class LevelFive extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface LevelOneArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class LevelOne extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface LevelTwoArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class LevelTwo extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface LevelThreeArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class LevelThree extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface HierarchyPathArgs extends core.SchemaArgs { levelFive: core.Array | core.ArrayOut; levelFour: core.Array | core.ArrayOut; levelOne: core.Array | core.ArrayOut; levelThree: core.Array | core.ArrayOut; levelTwo: core.Array | core.ArrayOut; } export class HierarchyPath extends core.Schema { @core.attr(LevelFive, { computed: true, kind: "array" }) public levelFive!: core.Array | core.ArrayOut; @core.attr(LevelFour, { computed: true, kind: "array" }) public levelFour!: core.Array | core.ArrayOut; @core.attr(LevelOne, { computed: true, kind: "array" }) public levelOne!: core.Array | core.ArrayOut; @core.attr(LevelThree, { computed: true, kind: "array" }) public levelThree!: core.Array | core.ArrayOut; @core.attr(LevelTwo, { computed: true, kind: "array" }) public levelTwo!: core.Array | core.ArrayOut; } export interface UserHierarchyGroupArgs extends core.ResourceArgs { /** * (Required) Specifies the identifier of the hosting Amazon Connect Instance. */ instanceId: string | core.StringOut; /** * (Required) The name of the user hierarchy group. Must not be more than 100 characters. */ name: string | core.StringOut; /** * (Optional) The identifier for the parent hierarchy group. The user hierarchy is created at level one * if the parent group ID is null. */ parentGroupId?: string | core.StringOut; /** * (Optional) Tags to apply to the hierarchy group. If configured with a provider */ 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; } export class UserHierarchyGroup extends core.Resource { /** * The Amazon Resource Name (ARN) of the hierarchy group. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * The identifier for the hierarchy group. */ @core.attr(String, { computed: true }) public hierarchyGroupId!: string | core.StringOut; /** * A block that contains information about the levels in the hierarchy group. The `hierarchy_path` bloc * k is documented below. */ @core.attr(HierarchyPath, { computed: true, kind: "array" }) public hierarchyPath!: | core.Array | core.ArrayOut; /** * The identifier of the hosting Amazon Connect Instance and identifier of the hierarchy group */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) Specifies the identifier of the hosting Amazon Connect Instance. */ @core.attr(String) public instanceId!: string | core.StringOut; /** * The identifier of the level in the hierarchy group. */ @core.attr(String, { computed: true }) public levelId!: string | core.StringOut; /** * (Required) The name of the user hierarchy group. Must not be more than 100 characters. */ @core.attr(String) public name!: string | core.StringOut; /** * (Optional) The identifier for the parent hierarchy group. The user hierarchy is created at level one * if the parent group ID is null. */ @core.attr(String) public parentGroupId?: string | core.StringOut; /** * (Optional) Tags to apply to the hierarchy group. If configured with a provider */ @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; constructor(name: string, args?: UserHierarchyGroupArgs) { super(name, "aws_connect_user_hierarchy_group", args); } public override getNamespace(): string { return "aws_connect"; } }