import * as core from "@terrascript/core"; export interface ComponentArgs extends core.ResourceArgs { /** * (Optional) Change description of the component. */ changeDescription?: string | core.StringOut; /** * (Optional) Inline YAML string with data of the component. Exactly one of `data` and `uri` can be spe * cified. Terraform will only perform drift detection of its value when present in a configuration. */ data?: string | core.StringOut; /** * (Optional) Description of the component. */ description?: string | core.StringOut; /** * (Optional) Amazon Resource Name (ARN) of the Key Management Service (KMS) Key used to encrypt the co * mponent. */ kmsKeyId?: string | core.StringOut; /** * (Required) Name of the component. */ name: string | core.StringOut; /** * (Required) Platform of the component. */ platform: string | core.StringOut; /** * (Optional) Set of Operating Systems (OS) supported by the component. */ supportedOsVersions?: core.Array | core.ArrayOut; /** * (Optional) Key-value map of resource tags for the component. If configured with a provider [`default * _tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#defaul * t_tags-configuration-block) present, tags with matching keys will overwrite those defined at the pro * vider-level. */ 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; /** * (Optional) S3 URI with data of the component. Exactly one of `data` and `uri` can be specified. */ uri?: string | core.StringOut; /** * (Required) Version of the component. */ version: string | core.StringOut; } export class Component extends core.Resource { /** * (Required) Amazon Resource Name (ARN) of the component. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) Change description of the component. */ @core.attr(String) public changeDescription?: string | core.StringOut; /** * (Optional) Inline YAML string with data of the component. Exactly one of `data` and `uri` can be spe * cified. Terraform will only perform drift detection of its value when present in a configuration. */ @core.attr(String, { computed: true }) public data?: string | core.StringOut; /** * Date the component was created. */ @core.attr(String, { computed: true }) public dateCreated!: string | core.StringOut; /** * (Optional) Description of the component. */ @core.attr(String) public description?: string | core.StringOut; /** * Encryption status of the component. */ @core.attr(Boolean, { computed: true }) public encrypted!: boolean | core.BooleanOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) Amazon Resource Name (ARN) of the Key Management Service (KMS) Key used to encrypt the co * mponent. */ @core.attr(String) public kmsKeyId?: string | core.StringOut; /** * (Required) Name of the component. */ @core.attr(String) public name!: string | core.StringOut; /** * Owner of the component. */ @core.attr(String, { computed: true }) public owner!: string | core.StringOut; /** * (Required) Platform of the component. */ @core.attr(String) public platform!: string | core.StringOut; /** * (Optional) Set of Operating Systems (OS) supported by the component. */ @core.attr(String, { kind: "array" }) public supportedOsVersions?: | core.Array | core.ArrayOut; /** * (Optional) Key-value map of resource tags for the component. If configured with a provider [`default * _tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#defaul * t_tags-configuration-block) present, tags with matching keys will overwrite those defined at the pro * vider-level. */ @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; /** * Type of the component. */ @core.attr(String, { computed: true }) public type!: string | core.StringOut; /** * (Optional) S3 URI with data of the component. Exactly one of `data` and `uri` can be specified. */ @core.attr(String) public uri?: string | core.StringOut; /** * (Required) Version of the component. */ @core.attr(String) public version!: string | core.StringOut; constructor(name: string, args?: ComponentArgs) { super(name, "aws_imagebuilder_component", args); } public override getNamespace(): string { return "aws_imagebuilder"; } }