/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface EcsExpressGatewayServiceConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#cluster EcsExpressGatewayService#cluster}
    */
    readonly cluster?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#cpu EcsExpressGatewayService#cpu}
    */
    readonly cpu?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#execution_role_arn EcsExpressGatewayService#execution_role_arn}
    */
    readonly executionRoleArn: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#health_check_path EcsExpressGatewayService#health_check_path}
    */
    readonly healthCheckPath?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#infrastructure_role_arn EcsExpressGatewayService#infrastructure_role_arn}
    */
    readonly infrastructureRoleArn: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#memory EcsExpressGatewayService#memory}
    */
    readonly memory?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#network_configuration EcsExpressGatewayService#network_configuration}
    */
    readonly networkConfiguration?: EcsExpressGatewayServiceNetworkConfiguration[] | cdktf.IResolvable;
    /**
    * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the [provider configuration](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#aws-configuration-reference).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#region EcsExpressGatewayService#region}
    */
    readonly region?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#scaling_target EcsExpressGatewayService#scaling_target}
    */
    readonly scalingTarget?: EcsExpressGatewayServiceScalingTarget[] | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#service_name EcsExpressGatewayService#service_name}
    */
    readonly serviceName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#tags EcsExpressGatewayService#tags}
    */
    readonly tags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#task_role_arn EcsExpressGatewayService#task_role_arn}
    */
    readonly taskRoleArn?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#wait_for_steady_state EcsExpressGatewayService#wait_for_steady_state}
    */
    readonly waitForSteadyState?: boolean | cdktf.IResolvable;
    /**
    * primary_container block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#primary_container EcsExpressGatewayService#primary_container}
    */
    readonly primaryContainer?: EcsExpressGatewayServicePrimaryContainer[] | cdktf.IResolvable;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#timeouts EcsExpressGatewayService#timeouts}
    */
    readonly timeouts?: EcsExpressGatewayServiceTimeouts;
}
export interface EcsExpressGatewayServiceIngressPaths {
}
export declare function ecsExpressGatewayServiceIngressPathsToTerraform(struct?: EcsExpressGatewayServiceIngressPaths): any;
export declare function ecsExpressGatewayServiceIngressPathsToHclTerraform(struct?: EcsExpressGatewayServiceIngressPaths): any;
export declare class EcsExpressGatewayServiceIngressPathsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): EcsExpressGatewayServiceIngressPaths | undefined;
    set internalValue(value: EcsExpressGatewayServiceIngressPaths | undefined);
    get accessType(): string;
    get endpoint(): string;
}
export declare class EcsExpressGatewayServiceIngressPathsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): EcsExpressGatewayServiceIngressPathsOutputReference;
}
export interface EcsExpressGatewayServiceNetworkConfiguration {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#security_groups EcsExpressGatewayService#security_groups}
    */
    readonly securityGroups?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#subnets EcsExpressGatewayService#subnets}
    */
    readonly subnets?: string[];
}
export declare function ecsExpressGatewayServiceNetworkConfigurationToTerraform(struct?: EcsExpressGatewayServiceNetworkConfiguration | cdktf.IResolvable): any;
export declare function ecsExpressGatewayServiceNetworkConfigurationToHclTerraform(struct?: EcsExpressGatewayServiceNetworkConfiguration | cdktf.IResolvable): any;
export declare class EcsExpressGatewayServiceNetworkConfigurationOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): EcsExpressGatewayServiceNetworkConfiguration | cdktf.IResolvable | undefined;
    set internalValue(value: EcsExpressGatewayServiceNetworkConfiguration | cdktf.IResolvable | undefined);
    private _securityGroups?;
    get securityGroups(): string[];
    set securityGroups(value: string[]);
    resetSecurityGroups(): void;
    get securityGroupsInput(): string[] | undefined;
    private _subnets?;
    get subnets(): string[];
    set subnets(value: string[]);
    resetSubnets(): void;
    get subnetsInput(): string[] | undefined;
}
export declare class EcsExpressGatewayServiceNetworkConfigurationList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: EcsExpressGatewayServiceNetworkConfiguration[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): EcsExpressGatewayServiceNetworkConfigurationOutputReference;
}
export interface EcsExpressGatewayServiceScalingTarget {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#auto_scaling_metric EcsExpressGatewayService#auto_scaling_metric}
    */
    readonly autoScalingMetric?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#auto_scaling_target_value EcsExpressGatewayService#auto_scaling_target_value}
    */
    readonly autoScalingTargetValue?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#max_task_count EcsExpressGatewayService#max_task_count}
    */
    readonly maxTaskCount?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#min_task_count EcsExpressGatewayService#min_task_count}
    */
    readonly minTaskCount?: number;
}
export declare function ecsExpressGatewayServiceScalingTargetToTerraform(struct?: EcsExpressGatewayServiceScalingTarget | cdktf.IResolvable): any;
export declare function ecsExpressGatewayServiceScalingTargetToHclTerraform(struct?: EcsExpressGatewayServiceScalingTarget | cdktf.IResolvable): any;
export declare class EcsExpressGatewayServiceScalingTargetOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): EcsExpressGatewayServiceScalingTarget | cdktf.IResolvable | undefined;
    set internalValue(value: EcsExpressGatewayServiceScalingTarget | cdktf.IResolvable | undefined);
    private _autoScalingMetric?;
    get autoScalingMetric(): string;
    set autoScalingMetric(value: string);
    resetAutoScalingMetric(): void;
    get autoScalingMetricInput(): string | undefined;
    private _autoScalingTargetValue?;
    get autoScalingTargetValue(): number;
    set autoScalingTargetValue(value: number);
    resetAutoScalingTargetValue(): void;
    get autoScalingTargetValueInput(): number | undefined;
    private _maxTaskCount?;
    get maxTaskCount(): number;
    set maxTaskCount(value: number);
    resetMaxTaskCount(): void;
    get maxTaskCountInput(): number | undefined;
    private _minTaskCount?;
    get minTaskCount(): number;
    set minTaskCount(value: number);
    resetMinTaskCount(): void;
    get minTaskCountInput(): number | undefined;
}
export declare class EcsExpressGatewayServiceScalingTargetList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: EcsExpressGatewayServiceScalingTarget[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): EcsExpressGatewayServiceScalingTargetOutputReference;
}
export interface EcsExpressGatewayServicePrimaryContainerAwsLogsConfiguration {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#log_group EcsExpressGatewayService#log_group}
    */
    readonly logGroup?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#log_stream_prefix EcsExpressGatewayService#log_stream_prefix}
    */
    readonly logStreamPrefix?: string;
}
export declare function ecsExpressGatewayServicePrimaryContainerAwsLogsConfigurationToTerraform(struct?: EcsExpressGatewayServicePrimaryContainerAwsLogsConfiguration | cdktf.IResolvable): any;
export declare function ecsExpressGatewayServicePrimaryContainerAwsLogsConfigurationToHclTerraform(struct?: EcsExpressGatewayServicePrimaryContainerAwsLogsConfiguration | cdktf.IResolvable): any;
export declare class EcsExpressGatewayServicePrimaryContainerAwsLogsConfigurationOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): EcsExpressGatewayServicePrimaryContainerAwsLogsConfiguration | cdktf.IResolvable | undefined;
    set internalValue(value: EcsExpressGatewayServicePrimaryContainerAwsLogsConfiguration | cdktf.IResolvable | undefined);
    private _logGroup?;
    get logGroup(): string;
    set logGroup(value: string);
    resetLogGroup(): void;
    get logGroupInput(): string | undefined;
    private _logStreamPrefix?;
    get logStreamPrefix(): string;
    set logStreamPrefix(value: string);
    resetLogStreamPrefix(): void;
    get logStreamPrefixInput(): string | undefined;
}
export declare class EcsExpressGatewayServicePrimaryContainerAwsLogsConfigurationList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: EcsExpressGatewayServicePrimaryContainerAwsLogsConfiguration[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): EcsExpressGatewayServicePrimaryContainerAwsLogsConfigurationOutputReference;
}
export interface EcsExpressGatewayServicePrimaryContainerEnvironment {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#name EcsExpressGatewayService#name}
    */
    readonly name: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#value EcsExpressGatewayService#value}
    */
    readonly value: string;
}
export declare function ecsExpressGatewayServicePrimaryContainerEnvironmentToTerraform(struct?: EcsExpressGatewayServicePrimaryContainerEnvironment | cdktf.IResolvable): any;
export declare function ecsExpressGatewayServicePrimaryContainerEnvironmentToHclTerraform(struct?: EcsExpressGatewayServicePrimaryContainerEnvironment | cdktf.IResolvable): any;
export declare class EcsExpressGatewayServicePrimaryContainerEnvironmentOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): EcsExpressGatewayServicePrimaryContainerEnvironment | cdktf.IResolvable | undefined;
    set internalValue(value: EcsExpressGatewayServicePrimaryContainerEnvironment | cdktf.IResolvable | undefined);
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _value?;
    get value(): string;
    set value(value: string);
    get valueInput(): string | undefined;
}
export declare class EcsExpressGatewayServicePrimaryContainerEnvironmentList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: EcsExpressGatewayServicePrimaryContainerEnvironment[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): EcsExpressGatewayServicePrimaryContainerEnvironmentOutputReference;
}
export interface EcsExpressGatewayServicePrimaryContainerRepositoryCredentials {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#credentials_parameter EcsExpressGatewayService#credentials_parameter}
    */
    readonly credentialsParameter: string;
}
export declare function ecsExpressGatewayServicePrimaryContainerRepositoryCredentialsToTerraform(struct?: EcsExpressGatewayServicePrimaryContainerRepositoryCredentials | cdktf.IResolvable): any;
export declare function ecsExpressGatewayServicePrimaryContainerRepositoryCredentialsToHclTerraform(struct?: EcsExpressGatewayServicePrimaryContainerRepositoryCredentials | cdktf.IResolvable): any;
export declare class EcsExpressGatewayServicePrimaryContainerRepositoryCredentialsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): EcsExpressGatewayServicePrimaryContainerRepositoryCredentials | cdktf.IResolvable | undefined;
    set internalValue(value: EcsExpressGatewayServicePrimaryContainerRepositoryCredentials | cdktf.IResolvable | undefined);
    private _credentialsParameter?;
    get credentialsParameter(): string;
    set credentialsParameter(value: string);
    get credentialsParameterInput(): string | undefined;
}
export declare class EcsExpressGatewayServicePrimaryContainerRepositoryCredentialsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: EcsExpressGatewayServicePrimaryContainerRepositoryCredentials[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): EcsExpressGatewayServicePrimaryContainerRepositoryCredentialsOutputReference;
}
export interface EcsExpressGatewayServicePrimaryContainerSecret {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#name EcsExpressGatewayService#name}
    */
    readonly name: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#value_from EcsExpressGatewayService#value_from}
    */
    readonly valueFrom: string;
}
export declare function ecsExpressGatewayServicePrimaryContainerSecretToTerraform(struct?: EcsExpressGatewayServicePrimaryContainerSecret | cdktf.IResolvable): any;
export declare function ecsExpressGatewayServicePrimaryContainerSecretToHclTerraform(struct?: EcsExpressGatewayServicePrimaryContainerSecret | cdktf.IResolvable): any;
export declare class EcsExpressGatewayServicePrimaryContainerSecretOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): EcsExpressGatewayServicePrimaryContainerSecret | cdktf.IResolvable | undefined;
    set internalValue(value: EcsExpressGatewayServicePrimaryContainerSecret | cdktf.IResolvable | undefined);
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _valueFrom?;
    get valueFrom(): string;
    set valueFrom(value: string);
    get valueFromInput(): string | undefined;
}
export declare class EcsExpressGatewayServicePrimaryContainerSecretList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: EcsExpressGatewayServicePrimaryContainerSecret[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): EcsExpressGatewayServicePrimaryContainerSecretOutputReference;
}
export interface EcsExpressGatewayServicePrimaryContainer {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#aws_logs_configuration EcsExpressGatewayService#aws_logs_configuration}
    */
    readonly awsLogsConfiguration?: EcsExpressGatewayServicePrimaryContainerAwsLogsConfiguration[] | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#command EcsExpressGatewayService#command}
    */
    readonly command?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#container_port EcsExpressGatewayService#container_port}
    */
    readonly containerPort?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#image EcsExpressGatewayService#image}
    */
    readonly image: string;
    /**
    * environment block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#environment EcsExpressGatewayService#environment}
    */
    readonly environment?: EcsExpressGatewayServicePrimaryContainerEnvironment[] | cdktf.IResolvable;
    /**
    * repository_credentials block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#repository_credentials EcsExpressGatewayService#repository_credentials}
    */
    readonly repositoryCredentials?: EcsExpressGatewayServicePrimaryContainerRepositoryCredentials[] | cdktf.IResolvable;
    /**
    * secret block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#secret EcsExpressGatewayService#secret}
    */
    readonly secret?: EcsExpressGatewayServicePrimaryContainerSecret[] | cdktf.IResolvable;
}
export declare function ecsExpressGatewayServicePrimaryContainerToTerraform(struct?: EcsExpressGatewayServicePrimaryContainer | cdktf.IResolvable): any;
export declare function ecsExpressGatewayServicePrimaryContainerToHclTerraform(struct?: EcsExpressGatewayServicePrimaryContainer | cdktf.IResolvable): any;
export declare class EcsExpressGatewayServicePrimaryContainerOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): EcsExpressGatewayServicePrimaryContainer | cdktf.IResolvable | undefined;
    set internalValue(value: EcsExpressGatewayServicePrimaryContainer | cdktf.IResolvable | undefined);
    private _awsLogsConfiguration;
    get awsLogsConfiguration(): EcsExpressGatewayServicePrimaryContainerAwsLogsConfigurationList;
    putAwsLogsConfiguration(value: EcsExpressGatewayServicePrimaryContainerAwsLogsConfiguration[] | cdktf.IResolvable): void;
    resetAwsLogsConfiguration(): void;
    get awsLogsConfigurationInput(): cdktf.IResolvable | EcsExpressGatewayServicePrimaryContainerAwsLogsConfiguration[] | undefined;
    private _command?;
    get command(): string[];
    set command(value: string[]);
    resetCommand(): void;
    get commandInput(): string[] | undefined;
    private _containerPort?;
    get containerPort(): number;
    set containerPort(value: number);
    resetContainerPort(): void;
    get containerPortInput(): number | undefined;
    private _image?;
    get image(): string;
    set image(value: string);
    get imageInput(): string | undefined;
    private _environment;
    get environment(): EcsExpressGatewayServicePrimaryContainerEnvironmentList;
    putEnvironment(value: EcsExpressGatewayServicePrimaryContainerEnvironment[] | cdktf.IResolvable): void;
    resetEnvironment(): void;
    get environmentInput(): cdktf.IResolvable | EcsExpressGatewayServicePrimaryContainerEnvironment[] | undefined;
    private _repositoryCredentials;
    get repositoryCredentials(): EcsExpressGatewayServicePrimaryContainerRepositoryCredentialsList;
    putRepositoryCredentials(value: EcsExpressGatewayServicePrimaryContainerRepositoryCredentials[] | cdktf.IResolvable): void;
    resetRepositoryCredentials(): void;
    get repositoryCredentialsInput(): cdktf.IResolvable | EcsExpressGatewayServicePrimaryContainerRepositoryCredentials[] | undefined;
    private _secret;
    get secret(): EcsExpressGatewayServicePrimaryContainerSecretList;
    putSecret(value: EcsExpressGatewayServicePrimaryContainerSecret[] | cdktf.IResolvable): void;
    resetSecret(): void;
    get secretInput(): cdktf.IResolvable | EcsExpressGatewayServicePrimaryContainerSecret[] | undefined;
}
export declare class EcsExpressGatewayServicePrimaryContainerList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: EcsExpressGatewayServicePrimaryContainer[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): EcsExpressGatewayServicePrimaryContainerOutputReference;
}
export interface EcsExpressGatewayServiceTimeouts {
    /**
    * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#create EcsExpressGatewayService#create}
    */
    readonly create?: string;
    /**
    * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#delete EcsExpressGatewayService#delete}
    */
    readonly delete?: string;
    /**
    * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#update EcsExpressGatewayService#update}
    */
    readonly update?: string;
}
export declare function ecsExpressGatewayServiceTimeoutsToTerraform(struct?: EcsExpressGatewayServiceTimeouts | cdktf.IResolvable): any;
export declare function ecsExpressGatewayServiceTimeoutsToHclTerraform(struct?: EcsExpressGatewayServiceTimeouts | cdktf.IResolvable): any;
export declare class EcsExpressGatewayServiceTimeoutsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): EcsExpressGatewayServiceTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: EcsExpressGatewayServiceTimeouts | cdktf.IResolvable | undefined);
    private _create?;
    get create(): string;
    set create(value: string);
    resetCreate(): void;
    get createInput(): string | undefined;
    private _delete?;
    get delete(): string;
    set delete(value: string);
    resetDelete(): void;
    get deleteInput(): string | undefined;
    private _update?;
    get update(): string;
    set update(value: string);
    resetUpdate(): void;
    get updateInput(): string | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service aws_ecs_express_gateway_service}
*/
export declare class EcsExpressGatewayService extends cdktf.TerraformResource {
    static readonly tfResourceType = "aws_ecs_express_gateway_service";
    /**
    * Generates CDKTF code for importing a EcsExpressGatewayService resource upon running "cdktf plan <stack-name>"
    * @param scope The scope in which to define this construct
    * @param importToId The construct id used in the generated config for the EcsExpressGatewayService to import
    * @param importFromId The id of the existing EcsExpressGatewayService that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the EcsExpressGatewayService to import is found
    */
    static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource;
    /**
    * Create a new {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ecs_express_gateway_service aws_ecs_express_gateway_service} Resource
    *
    * @param scope The scope in which to define this construct
    * @param id The scoped construct ID. Must be unique amongst siblings in the same scope
    * @param options EcsExpressGatewayServiceConfig
    */
    constructor(scope: Construct, id: string, config: EcsExpressGatewayServiceConfig);
    private _cluster?;
    get cluster(): string;
    set cluster(value: string);
    resetCluster(): void;
    get clusterInput(): string | undefined;
    private _cpu?;
    get cpu(): string;
    set cpu(value: string);
    resetCpu(): void;
    get cpuInput(): string | undefined;
    get currentDeployment(): string;
    private _executionRoleArn?;
    get executionRoleArn(): string;
    set executionRoleArn(value: string);
    get executionRoleArnInput(): string | undefined;
    private _healthCheckPath?;
    get healthCheckPath(): string;
    set healthCheckPath(value: string);
    resetHealthCheckPath(): void;
    get healthCheckPathInput(): string | undefined;
    private _infrastructureRoleArn?;
    get infrastructureRoleArn(): string;
    set infrastructureRoleArn(value: string);
    get infrastructureRoleArnInput(): string | undefined;
    private _ingressPaths;
    get ingressPaths(): EcsExpressGatewayServiceIngressPathsList;
    private _memory?;
    get memory(): string;
    set memory(value: string);
    resetMemory(): void;
    get memoryInput(): string | undefined;
    private _networkConfiguration;
    get networkConfiguration(): EcsExpressGatewayServiceNetworkConfigurationList;
    putNetworkConfiguration(value: EcsExpressGatewayServiceNetworkConfiguration[] | cdktf.IResolvable): void;
    resetNetworkConfiguration(): void;
    get networkConfigurationInput(): cdktf.IResolvable | EcsExpressGatewayServiceNetworkConfiguration[] | undefined;
    private _region?;
    get region(): string;
    set region(value: string);
    resetRegion(): void;
    get regionInput(): string | undefined;
    private _scalingTarget;
    get scalingTarget(): EcsExpressGatewayServiceScalingTargetList;
    putScalingTarget(value: EcsExpressGatewayServiceScalingTarget[] | cdktf.IResolvable): void;
    resetScalingTarget(): void;
    get scalingTargetInput(): cdktf.IResolvable | EcsExpressGatewayServiceScalingTarget[] | undefined;
    get serviceArn(): string;
    private _serviceName?;
    get serviceName(): string;
    set serviceName(value: string);
    resetServiceName(): void;
    get serviceNameInput(): string | undefined;
    get serviceRevisionArn(): string;
    private _tags?;
    get tags(): {
        [key: string]: string;
    };
    set tags(value: {
        [key: string]: string;
    });
    resetTags(): void;
    get tagsInput(): {
        [key: string]: string;
    } | undefined;
    private _tagsAll;
    get tagsAll(): cdktf.StringMap;
    private _taskRoleArn?;
    get taskRoleArn(): string;
    set taskRoleArn(value: string);
    resetTaskRoleArn(): void;
    get taskRoleArnInput(): string | undefined;
    private _waitForSteadyState?;
    get waitForSteadyState(): boolean | cdktf.IResolvable;
    set waitForSteadyState(value: boolean | cdktf.IResolvable);
    resetWaitForSteadyState(): void;
    get waitForSteadyStateInput(): boolean | cdktf.IResolvable | undefined;
    private _primaryContainer;
    get primaryContainer(): EcsExpressGatewayServicePrimaryContainerList;
    putPrimaryContainer(value: EcsExpressGatewayServicePrimaryContainer[] | cdktf.IResolvable): void;
    resetPrimaryContainer(): void;
    get primaryContainerInput(): cdktf.IResolvable | EcsExpressGatewayServicePrimaryContainer[] | undefined;
    private _timeouts;
    get timeouts(): EcsExpressGatewayServiceTimeoutsOutputReference;
    putTimeouts(value: EcsExpressGatewayServiceTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | EcsExpressGatewayServiceTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
