import * as core from "@terrascript/core"; export interface ValidatorArgs extends core.SchemaArgs { content?: string | core.StringOut; type: string | core.StringOut; } export class Validator extends core.Schema { @core.attr(String) public content?: string | core.StringOut; @core.attr(String) public type!: string | core.StringOut; } export interface ConfigurationProfileArgs extends core.ResourceArgs { /** * (Required, Forces new resource) The application ID. Must be between 4 and 7 characters in length. */ applicationId: string | core.StringOut; /** * (Optional) The description of the configuration profile. Can be at most 1024 characters. */ description?: string | core.StringOut; /** * (Required, Forces new resource) A URI to locate the configuration. You can specify the AWS AppConfig * hosted configuration store, Systems Manager (SSM) document, an SSM Parameter Store parameter, or an * Amazon S3 object. For the hosted configuration store, specify `hosted`. For an SSM document, specif * y either the document name in the format `ssm-document://` or the Amazon Resource Nam * e (ARN). For a parameter, specify either the parameter name in the format `ssm-parameter://` or the ARN. For an Amazon S3 object, specify the URI in the following format: `s3:///`. */ locationUri: string | core.StringOut; /** * (Required) The name for the configuration profile. Must be between 1 and 64 characters in length. */ name: string | core.StringOut; /** * (Optional) The ARN of an IAM role with permission to access the configuration at the specified `loca * tion_uri`. A retrieval role ARN is not required for configurations stored in the AWS AppConfig `host * ed` configuration store. It is required for all other sources that store your configuration. */ retrievalRoleArn?: 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; /** * (Optional) The type of configurations contained in the profile. Valid values: `AWS.AppConfig.Feature * Flags` and `AWS.Freeform`. Default: `AWS.Freeform`. */ type?: string | core.StringOut; /** * (Optional) A set of methods for validating the configuration. Maximum of 2. See [Validator](#validat * or) below for more details. */ validator?: core.Array | core.ArrayOut; } export class ConfigurationProfile extends core.Resource { /** * (Required, Forces new resource) The application ID. Must be between 4 and 7 characters in length. */ @core.attr(String) public applicationId!: string | core.StringOut; /** * The Amazon Resource Name (ARN) of the AppConfig Configuration Profile. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * The configuration profile ID. */ @core.attr(String, { computed: true }) public configurationProfileId!: string | core.StringOut; /** * (Optional) The description of the configuration profile. Can be at most 1024 characters. */ @core.attr(String) public description?: string | core.StringOut; /** * The AppConfig configuration profile ID and application ID separated by a colon (`:`). */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required, Forces new resource) A URI to locate the configuration. You can specify the AWS AppConfig * hosted configuration store, Systems Manager (SSM) document, an SSM Parameter Store parameter, or an * Amazon S3 object. For the hosted configuration store, specify `hosted`. For an SSM document, specif * y either the document name in the format `ssm-document://` or the Amazon Resource Nam * e (ARN). For a parameter, specify either the parameter name in the format `ssm-parameter://` or the ARN. For an Amazon S3 object, specify the URI in the following format: `s3:///`. */ @core.attr(String) public locationUri!: string | core.StringOut; /** * (Required) The name for the configuration profile. Must be between 1 and 64 characters in length. */ @core.attr(String) public name!: string | core.StringOut; /** * (Optional) The ARN of an IAM role with permission to access the configuration at the specified `loca * tion_uri`. A retrieval role ARN is not required for configurations stored in the AWS AppConfig `host * ed` configuration store. It is required for all other sources that store your configuration. */ @core.attr(String) public retrievalRoleArn?: 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; /** * (Optional) The type of configurations contained in the profile. Valid values: `AWS.AppConfig.Feature * Flags` and `AWS.Freeform`. Default: `AWS.Freeform`. */ @core.attr(String) public type?: string | core.StringOut; /** * (Optional) A set of methods for validating the configuration. Maximum of 2. See [Validator](#validat * or) below for more details. */ @core.attr(Validator, { kind: "array" }) public validator?: core.Array | core.ArrayOut; constructor(name: string, args?: ConfigurationProfileArgs) { super(name, "aws_appconfig_configuration_profile", args); } public override getNamespace(): string { return "aws_appconfig"; } }