import * as core from "@terrascript/core"; export interface AuthenticationConfigurationArgs extends core.SchemaArgs { accessRoleArn?: string | core.StringOut; connectionArn?: string | core.StringOut; } export class AuthenticationConfiguration extends core.Schema { @core.attr(String) public accessRoleArn?: string | core.StringOut; @core.attr(String) public connectionArn?: string | core.StringOut; } export interface CodeConfigurationValuesArgs extends core.SchemaArgs { buildCommand?: string | core.StringOut; port?: string | core.StringOut; runtime: string | core.StringOut; runtimeEnvironmentVariables?: | core.Map | core.MapOut; startCommand?: string | core.StringOut; } export class CodeConfigurationValues extends core.Schema { @core.attr(String) public buildCommand?: string | core.StringOut; @core.attr(String) public port?: string | core.StringOut; @core.attr(String) public runtime!: string | core.StringOut; @core.attr(String, { kind: "map" }) public runtimeEnvironmentVariables?: | core.Map | core.MapOut; @core.attr(String) public startCommand?: string | core.StringOut; } export interface CodeConfigurationArgs extends core.SchemaArgs { codeConfigurationValues?: CodeConfigurationValues; configurationSource: string | core.StringOut; } export class CodeConfiguration extends core.Schema { @core.attr(CodeConfigurationValues) public codeConfigurationValues?: CodeConfigurationValues; @core.attr(String) public configurationSource!: string | core.StringOut; } export interface SourceCodeVersionArgs extends core.SchemaArgs { type: string | core.StringOut; value: string | core.StringOut; } export class SourceCodeVersion extends core.Schema { @core.attr(String) public type!: string | core.StringOut; @core.attr(String) public value!: string | core.StringOut; } export interface CodeRepositoryArgs extends core.SchemaArgs { codeConfiguration?: CodeConfiguration; repositoryUrl: string | core.StringOut; sourceCodeVersion: SourceCodeVersion; } export class CodeRepository extends core.Schema { @core.attr(CodeConfiguration) public codeConfiguration?: CodeConfiguration; @core.attr(String) public repositoryUrl!: string | core.StringOut; @core.attr(SourceCodeVersion) public sourceCodeVersion!: SourceCodeVersion; } export interface ImageConfigurationArgs extends core.SchemaArgs { port?: string | core.StringOut; runtimeEnvironmentVariables?: | core.Map | core.MapOut; startCommand?: string | core.StringOut; } export class ImageConfiguration extends core.Schema { @core.attr(String) public port?: string | core.StringOut; @core.attr(String, { kind: "map" }) public runtimeEnvironmentVariables?: | core.Map | core.MapOut; @core.attr(String) public startCommand?: string | core.StringOut; } export interface ImageRepositoryArgs extends core.SchemaArgs { imageConfiguration?: ImageConfiguration; imageIdentifier: string | core.StringOut; imageRepositoryType: string | core.StringOut; } export class ImageRepository extends core.Schema { @core.attr(ImageConfiguration) public imageConfiguration?: ImageConfiguration; @core.attr(String) public imageIdentifier!: string | core.StringOut; @core.attr(String) public imageRepositoryType!: string | core.StringOut; } export interface SourceConfigurationArgs extends core.SchemaArgs { authenticationConfiguration?: AuthenticationConfiguration; autoDeploymentsEnabled?: boolean | core.BooleanOut; codeRepository?: CodeRepository; imageRepository?: ImageRepository; } export class SourceConfiguration extends core.Schema { @core.attr(AuthenticationConfiguration) public authenticationConfiguration?: AuthenticationConfiguration; @core.attr(Boolean) public autoDeploymentsEnabled?: boolean | core.BooleanOut; @core.attr(CodeRepository) public codeRepository?: CodeRepository; @core.attr(ImageRepository) public imageRepository?: ImageRepository; } export interface InstanceConfigurationArgs extends core.SchemaArgs { cpu?: string | core.StringOut; instanceRoleArn?: string | core.StringOut; memory?: string | core.StringOut; } export class InstanceConfiguration extends core.Schema { @core.attr(String) public cpu?: string | core.StringOut; @core.attr(String) public instanceRoleArn?: string | core.StringOut; @core.attr(String) public memory?: string | core.StringOut; } export interface ObservabilityConfigurationArgs extends core.SchemaArgs { observabilityConfigurationArn: string | core.StringOut; observabilityEnabled: boolean | core.BooleanOut; } export class ObservabilityConfiguration extends core.Schema { @core.attr(String) public observabilityConfigurationArn!: string | core.StringOut; @core.attr(Boolean) public observabilityEnabled!: boolean | core.BooleanOut; } export interface HealthCheckConfigurationArgs extends core.SchemaArgs { healthyThreshold?: number | core.NumberOut; interval?: number | core.NumberOut; path?: string | core.StringOut; protocol?: string | core.StringOut; timeout?: number | core.NumberOut; unhealthyThreshold?: number | core.NumberOut; } export class HealthCheckConfiguration extends core.Schema { @core.attr(Number) public healthyThreshold?: number | core.NumberOut; @core.attr(Number) public interval?: number | core.NumberOut; @core.attr(String) public path?: string | core.StringOut; @core.attr(String) public protocol?: string | core.StringOut; @core.attr(Number) public timeout?: number | core.NumberOut; @core.attr(Number) public unhealthyThreshold?: number | core.NumberOut; } export interface EgressConfigurationArgs extends core.SchemaArgs { egressType?: string | core.StringOut; vpcConnectorArn?: string | core.StringOut; } export class EgressConfiguration extends core.Schema { @core.attr(String, { computed: true }) public egressType?: string | core.StringOut; @core.attr(String) public vpcConnectorArn?: string | core.StringOut; } export interface NetworkConfigurationArgs extends core.SchemaArgs { egressConfiguration?: EgressConfiguration; } export class NetworkConfiguration extends core.Schema { @core.attr(EgressConfiguration) public egressConfiguration?: EgressConfiguration; } export interface EncryptionConfigurationArgs extends core.SchemaArgs { kmsKey: string | core.StringOut; } export class EncryptionConfiguration extends core.Schema { @core.attr(String) public kmsKey!: string | core.StringOut; } export interface ServiceArgs extends core.ResourceArgs { /** * ARN of an App Runner automatic scaling configuration resource that you want to associate with your s * ervice. If not provided, App Runner associates the latest revision of a default auto scaling configu * ration. */ autoScalingConfigurationArn?: string | core.StringOut; /** * (Forces new resource) An optional custom encryption key that App Runner uses to encrypt the copy of * your source repository that it maintains and your service logs. By default, App Runner uses an AWS m * anaged CMK. See [Encryption Configuration](#encryption-configuration) below for more details. */ encryptionConfiguration?: EncryptionConfiguration; /** * (Forces new resource) Settings of the health check that AWS App Runner performs to monitor the healt * h of your service. See [Health Check Configuration](#health-check-configuration) below for more deta * ils. */ healthCheckConfiguration?: HealthCheckConfiguration; /** * The runtime configuration of instances (scaling units) of the App Runner service. See [Instance Conf * iguration](#instance-configuration) below for more details. */ instanceConfiguration?: InstanceConfiguration; /** * Configuration settings related to network traffic of the web application that the App Runner service * runs. See [Network Configuration](#network-configuration) below for more details. */ networkConfiguration?: NetworkConfiguration; /** * The observability configuration of your service. See [Observability Configuration](#observability-co * nfiguration) below for more details. */ observabilityConfiguration?: ObservabilityConfiguration; /** * (Forces new resource) Name of the service. */ serviceName: string | core.StringOut; /** * The source to deploy to the App Runner service. Can be a code or an image repository. See [Source Co * nfiguration](#source-configuration) below for more details. */ sourceConfiguration: SourceConfiguration; /** * Key-value map of resource tags. If configured with a provider [`default_tags` configuration block](h * ttps://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configuration-block) p * resent, 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; } export class Service extends core.Resource { /** * ARN of the App Runner service. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * ARN of an App Runner automatic scaling configuration resource that you want to associate with your s * ervice. If not provided, App Runner associates the latest revision of a default auto scaling configu * ration. */ @core.attr(String, { computed: true }) public autoScalingConfigurationArn?: string | core.StringOut; /** * (Forces new resource) An optional custom encryption key that App Runner uses to encrypt the copy of * your source repository that it maintains and your service logs. By default, App Runner uses an AWS m * anaged CMK. See [Encryption Configuration](#encryption-configuration) below for more details. */ @core.attr(EncryptionConfiguration) public encryptionConfiguration?: EncryptionConfiguration; /** * (Forces new resource) Settings of the health check that AWS App Runner performs to monitor the healt * h of your service. See [Health Check Configuration](#health-check-configuration) below for more deta * ils. */ @core.attr(HealthCheckConfiguration, { computed: true }) public healthCheckConfiguration?: HealthCheckConfiguration; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * The runtime configuration of instances (scaling units) of the App Runner service. See [Instance Conf * iguration](#instance-configuration) below for more details. */ @core.attr(InstanceConfiguration, { computed: true }) public instanceConfiguration?: InstanceConfiguration; /** * Configuration settings related to network traffic of the web application that the App Runner service * runs. See [Network Configuration](#network-configuration) below for more details. */ @core.attr(NetworkConfiguration, { computed: true }) public networkConfiguration?: NetworkConfiguration; /** * The observability configuration of your service. See [Observability Configuration](#observability-co * nfiguration) below for more details. */ @core.attr(ObservabilityConfiguration) public observabilityConfiguration?: ObservabilityConfiguration; /** * An alphanumeric ID that App Runner generated for this service. Unique within the AWS Region. */ @core.attr(String, { computed: true }) public serviceId!: string | core.StringOut; /** * (Forces new resource) Name of the service. */ @core.attr(String) public serviceName!: string | core.StringOut; /** * A subdomain URL that App Runner generated for this service. You can use this URL to access your serv * ice web application. */ @core.attr(String, { computed: true }) public serviceUrl!: string | core.StringOut; /** * The source to deploy to the App Runner service. Can be a code or an image repository. See [Source Co * nfiguration](#source-configuration) below for more details. */ @core.attr(SourceConfiguration) public sourceConfiguration!: SourceConfiguration; /** * The current state of the App Runner service. */ @core.attr(String, { computed: true }) public status!: string | core.StringOut; /** * Key-value map of resource tags. If configured with a provider [`default_tags` configuration block](h * ttps://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configuration-block) p * resent, 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; constructor(name: string, args?: ServiceArgs) { super(name, "aws_apprunner_service", args); } public override getNamespace(): string { return "aws_apprunner"; } }