import * as core from "@terrascript/core"; export interface RootToParentGroupsArgs extends core.SchemaArgs { groupArn: string | core.StringOut; groupName: string | core.StringOut; } export class RootToParentGroups extends core.Schema { @core.attr(String, { computed: true }) public groupArn!: string | core.StringOut; @core.attr(String, { computed: true }) public groupName!: string | core.StringOut; } export interface MetadataArgs extends core.SchemaArgs { creationDate: string | core.StringOut; parentGroupName: string | core.StringOut; rootToParentGroups: | core.Array | core.ArrayOut; } export class Metadata extends core.Schema { @core.attr(String, { computed: true }) public creationDate!: string | core.StringOut; @core.attr(String, { computed: true }) public parentGroupName!: string | core.StringOut; @core.attr(RootToParentGroups, { computed: true, kind: "array" }) public rootToParentGroups!: | core.Array | core.ArrayOut; } export interface AttributePayloadArgs extends core.SchemaArgs { attributes?: core.Map | core.MapOut; } export class AttributePayload extends core.Schema { @core.attr(String, { kind: "map" }) public attributes?: core.Map | core.MapOut; } export interface PropertiesArgs extends core.SchemaArgs { attributePayload?: AttributePayload; description?: string | core.StringOut; } export class Properties extends core.Schema { @core.attr(AttributePayload) public attributePayload?: AttributePayload; @core.attr(String) public description?: string | core.StringOut; } export interface ThingGroupArgs extends core.ResourceArgs { /** * (Required) The name of the Thing Group. */ name: string | core.StringOut; /** * (Optional) The name of the parent Thing Group. */ parentGroupName?: string | core.StringOut; /** * (Optional) The Thing Group properties. Defined below. */ properties?: Properties; /** * (Optional) Key-value mapping of resource tags */ tags?: core.Map | core.MapOut; tagsAll?: core.Map | core.MapOut; } export class ThingGroup extends core.Resource { /** * The ARN of the Thing Group. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * The Thing Group ID. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(Metadata, { computed: true, kind: "array" }) public metadata!: core.Array | core.ArrayOut; /** * (Required) The name of the Thing Group. */ @core.attr(String) public name!: string | core.StringOut; /** * (Optional) The name of the parent Thing Group. */ @core.attr(String) public parentGroupName?: string | core.StringOut; /** * (Optional) The Thing Group properties. Defined below. */ @core.attr(Properties) public properties?: Properties; /** * (Optional) Key-value mapping of resource tags */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; /** * The current version of the Thing Group record in the registry. */ @core.attr(Number, { computed: true }) public version!: number | core.NumberOut; constructor(name: string, args?: ThingGroupArgs) { super(name, "aws_iot_thing_group", args); } public override getNamespace(): string { return "aws_iot"; } }