import * as core from "@terrascript/core"; export interface ProvisioningArtifactParametersArgs extends core.SchemaArgs { description?: string | core.StringOut; disableTemplateValidation?: boolean | core.BooleanOut; name?: string | core.StringOut; templatePhysicalId?: string | core.StringOut; templateUrl?: string | core.StringOut; type?: string | core.StringOut; } export class ProvisioningArtifactParameters extends core.Schema { @core.attr(String) public description?: string | core.StringOut; @core.attr(Boolean) public disableTemplateValidation?: boolean | core.BooleanOut; @core.attr(String) public name?: string | core.StringOut; @core.attr(String) public templatePhysicalId?: string | core.StringOut; @core.attr(String) public templateUrl?: string | core.StringOut; @core.attr(String) public type?: string | core.StringOut; } export interface ProductArgs extends core.ResourceArgs { /** * (Optional) Language code. Valid values: `en` (English), `jp` (Japanese), `zh` (Chinese). Default val * ue is `en`. */ acceptLanguage?: string | core.StringOut; /** * (Optional) Description of the product. */ description?: string | core.StringOut; /** * (Optional) Distributor (i.e., vendor) of the product. */ distributor?: string | core.StringOut; /** * (Required) Name of the product. */ name: string | core.StringOut; /** * (Required) Owner of the product. */ owner: string | core.StringOut; /** * (Required) Configuration block for provisioning artifact (i.e., version) parameters. Detailed below. */ provisioningArtifactParameters: ProvisioningArtifactParameters; /** * (Optional) Support information about the product. */ supportDescription?: string | core.StringOut; /** * (Optional) Contact email for product support. */ supportEmail?: string | core.StringOut; /** * (Optional) Contact URL for product support. */ supportUrl?: string | core.StringOut; /** * (Optional) Tags to apply to the product. If configured with a provider [`default_tags` configuration * block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configuration * block) present, tags with matching keys will overwrite those defined at the provider-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; /** * (Required) Type of product. Valid values are `CLOUD_FORMATION_TEMPLATE`, `MARKETPLACE`. */ type: string | core.StringOut; } export class Product extends core.Resource { /** * (Optional) Language code. Valid values: `en` (English), `jp` (Japanese), `zh` (Chinese). Default val * ue is `en`. */ @core.attr(String) public acceptLanguage?: string | core.StringOut; /** * ARN of the product. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * Time when the product was created. */ @core.attr(String, { computed: true }) public createdTime!: string | core.StringOut; /** * (Optional) Description of the product. */ @core.attr(String, { computed: true }) public description?: string | core.StringOut; /** * (Optional) Distributor (i.e., vendor) of the product. */ @core.attr(String, { computed: true }) public distributor?: string | core.StringOut; /** * Whether the product has a default path. If the product does not have a default path, call `ListLaunc * hPaths` to disambiguate between paths. Otherwise, `ListLaunchPaths` is not required, and the output * of ProductViewSummary can be used directly with `DescribeProvisioningParameters`. */ @core.attr(Boolean, { computed: true }) public hasDefaultPath!: boolean | core.BooleanOut; /** * Product ID. For example, `prod-dnigbtea24ste`. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) Name of the product. */ @core.attr(String) public name!: string | core.StringOut; /** * (Required) Owner of the product. */ @core.attr(String) public owner!: string | core.StringOut; /** * (Required) Configuration block for provisioning artifact (i.e., version) parameters. Detailed below. */ @core.attr(ProvisioningArtifactParameters) public provisioningArtifactParameters!: ProvisioningArtifactParameters; /** * Status of the product. */ @core.attr(String, { computed: true }) public status!: string | core.StringOut; /** * (Optional) Support information about the product. */ @core.attr(String, { computed: true }) public supportDescription?: string | core.StringOut; /** * (Optional) Contact email for product support. */ @core.attr(String, { computed: true }) public supportEmail?: string | core.StringOut; /** * (Optional) Contact URL for product support. */ @core.attr(String, { computed: true }) public supportUrl?: string | core.StringOut; /** * (Optional) Tags to apply to the product. If configured with a provider [`default_tags` configuration * block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configuration * block) present, tags with matching keys will overwrite those defined at the provider-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; /** * (Required) Type of product. Valid values are `CLOUD_FORMATION_TEMPLATE`, `MARKETPLACE`. */ @core.attr(String) public type!: string | core.StringOut; constructor(name: string, args?: ProductArgs) { super(name, "aws_servicecatalog_product", args); } public override getNamespace(): string { return "aws_servicecatalog"; } }