import * as core from "@terrascript/core"; export interface ClientPolicyTlsValidationTrustFileArgs extends core.SchemaArgs { certificateChain: string | core.StringOut; } export declare class ClientPolicyTlsValidationTrustFile extends core.Schema { certificateChain: string | core.StringOut; } export interface SdsArgs extends core.SchemaArgs { secretName: string | core.StringOut; } export declare class Sds extends core.Schema { secretName: string | core.StringOut; } export interface ClientPolicyTlsValidationTrustAcmArgs extends core.SchemaArgs { certificateAuthorityArns: core.Array | core.ArrayOut; } export declare class ClientPolicyTlsValidationTrustAcm extends core.Schema { certificateAuthorityArns: core.Array | core.ArrayOut; } export interface ClientPolicyTlsValidationTrustArgs extends core.SchemaArgs { acm?: ClientPolicyTlsValidationTrustAcm; file?: ClientPolicyTlsValidationTrustFile; sds?: Sds; } export declare class ClientPolicyTlsValidationTrust extends core.Schema { acm?: ClientPolicyTlsValidationTrustAcm; file?: ClientPolicyTlsValidationTrustFile; sds?: Sds; } export interface MatchArgs extends core.SchemaArgs { exact: core.Array | core.ArrayOut; } export declare class Match extends core.Schema { exact: core.Array | core.ArrayOut; } export interface SubjectAlternativeNamesArgs extends core.SchemaArgs { match: Match; } export declare class SubjectAlternativeNames extends core.Schema { match: Match; } export interface ClientPolicyTlsValidationArgs extends core.SchemaArgs { subjectAlternativeNames?: SubjectAlternativeNames; trust: ClientPolicyTlsValidationTrust; } export declare class ClientPolicyTlsValidation extends core.Schema { subjectAlternativeNames?: SubjectAlternativeNames; trust: ClientPolicyTlsValidationTrust; } export interface ClientPolicyTlsCertificateFileArgs extends core.SchemaArgs { certificateChain: string | core.StringOut; privateKey: string | core.StringOut; } export declare class ClientPolicyTlsCertificateFile extends core.Schema { certificateChain: string | core.StringOut; privateKey: string | core.StringOut; } export interface ClientPolicyTlsCertificateArgs extends core.SchemaArgs { file?: ClientPolicyTlsCertificateFile; sds?: Sds; } export declare class ClientPolicyTlsCertificate extends core.Schema { file?: ClientPolicyTlsCertificateFile; sds?: Sds; } export interface ClientPolicyTlsArgs extends core.SchemaArgs { certificate?: ClientPolicyTlsCertificate; enforce?: boolean | core.BooleanOut; ports?: core.Array | core.ArrayOut; validation: ClientPolicyTlsValidation; } export declare class ClientPolicyTls extends core.Schema { certificate?: ClientPolicyTlsCertificate; enforce?: boolean | core.BooleanOut; ports?: core.Array | core.ArrayOut; validation: ClientPolicyTlsValidation; } export interface ClientPolicyArgs extends core.SchemaArgs { tls?: ClientPolicyTls; } export declare class ClientPolicy extends core.Schema { tls?: ClientPolicyTls; } export interface BackendDefaultsArgs extends core.SchemaArgs { clientPolicy?: ClientPolicy; } export declare class BackendDefaults extends core.Schema { clientPolicy?: ClientPolicy; } export interface ListenerTlsCertificateAcmArgs extends core.SchemaArgs { certificateArn: string | core.StringOut; } export declare class ListenerTlsCertificateAcm extends core.Schema { certificateArn: string | core.StringOut; } export interface ListenerTlsCertificateArgs extends core.SchemaArgs { acm?: ListenerTlsCertificateAcm; file?: ClientPolicyTlsCertificateFile; sds?: Sds; } export declare class ListenerTlsCertificate extends core.Schema { acm?: ListenerTlsCertificateAcm; file?: ClientPolicyTlsCertificateFile; sds?: Sds; } export interface ListenerTlsValidationTrustArgs extends core.SchemaArgs { file?: ClientPolicyTlsValidationTrustFile; sds?: Sds; } export declare class ListenerTlsValidationTrust extends core.Schema { file?: ClientPolicyTlsValidationTrustFile; sds?: Sds; } export interface ListenerTlsValidationArgs extends core.SchemaArgs { subjectAlternativeNames?: SubjectAlternativeNames; trust: ListenerTlsValidationTrust; } export declare class ListenerTlsValidation extends core.Schema { subjectAlternativeNames?: SubjectAlternativeNames; trust: ListenerTlsValidationTrust; } export interface ListenerTlsArgs extends core.SchemaArgs { certificate: ListenerTlsCertificate; mode: string | core.StringOut; validation?: ListenerTlsValidation; } export declare class ListenerTls extends core.Schema { certificate: ListenerTlsCertificate; mode: string | core.StringOut; validation?: ListenerTlsValidation; } export interface GrpcArgs extends core.SchemaArgs { maxRequests: number | core.NumberOut; } export declare class Grpc extends core.Schema { maxRequests: number | core.NumberOut; } export interface HttpArgs extends core.SchemaArgs { maxConnections: number | core.NumberOut; maxPendingRequests?: number | core.NumberOut; } export declare class Http extends core.Schema { maxConnections: number | core.NumberOut; maxPendingRequests?: number | core.NumberOut; } export interface Http2Args extends core.SchemaArgs { maxRequests: number | core.NumberOut; } export declare class Http2 extends core.Schema { maxRequests: number | core.NumberOut; } export interface ConnectionPoolArgs extends core.SchemaArgs { grpc?: Grpc; http?: Http; http2?: Http2; } export declare class ConnectionPool extends core.Schema { grpc?: Grpc; http?: Http; http2?: Http2; } export interface HealthCheckArgs extends core.SchemaArgs { healthyThreshold: number | core.NumberOut; intervalMillis: number | core.NumberOut; path?: string | core.StringOut; port?: number | core.NumberOut; protocol: string | core.StringOut; timeoutMillis: number | core.NumberOut; unhealthyThreshold: number | core.NumberOut; } export declare class HealthCheck extends core.Schema { healthyThreshold: number | core.NumberOut; intervalMillis: number | core.NumberOut; path?: string | core.StringOut; port?: number | core.NumberOut; protocol: string | core.StringOut; timeoutMillis: number | core.NumberOut; unhealthyThreshold: number | core.NumberOut; } export interface PortMappingArgs extends core.SchemaArgs { port: number | core.NumberOut; protocol: string | core.StringOut; } export declare class PortMapping extends core.Schema { port: number | core.NumberOut; protocol: string | core.StringOut; } export interface ListenerArgs extends core.SchemaArgs { connectionPool?: ConnectionPool; healthCheck?: HealthCheck; portMapping: PortMapping; tls?: ListenerTls; } export declare class Listener extends core.Schema { connectionPool?: ConnectionPool; healthCheck?: HealthCheck; portMapping: PortMapping; tls?: ListenerTls; } export interface AccessLogFileArgs extends core.SchemaArgs { path: string | core.StringOut; } export declare class AccessLogFile extends core.Schema { path: string | core.StringOut; } export interface AccessLogArgs extends core.SchemaArgs { file?: AccessLogFile; } export declare class AccessLog extends core.Schema { file?: AccessLogFile; } export interface LoggingArgs extends core.SchemaArgs { accessLog?: AccessLog; } export declare class Logging extends core.Schema { accessLog?: AccessLog; } export interface SpecArgs extends core.SchemaArgs { backendDefaults?: BackendDefaults; listener: Listener; logging?: Logging; } export declare class Spec extends core.Schema { backendDefaults?: BackendDefaults; listener: Listener; logging?: Logging; } export interface VirtualGatewayArgs extends core.ResourceArgs { /** * (Required) The name of the service mesh in which to create the virtual gateway. Must be between 1 an * d 255 characters in length. */ meshName: string | core.StringOut; /** * (Optional) The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provi * der][1] is currently connected to. */ meshOwner?: string | core.StringOut; /** * (Required) The name to use for the virtual gateway. Must be between 1 and 255 characters in length. */ name: string | core.StringOut; /** * (Required) The virtual gateway specification to apply. */ spec: Spec; /** * (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; } export declare class VirtualGateway extends core.Resource { /** * The ARN of the virtual gateway. */ arn: string | core.StringOut; /** * The creation date of the virtual gateway. */ createdDate: string | core.StringOut; /** * The ID of the virtual gateway. */ id: string | core.StringOut; /** * The last update date of the virtual gateway. */ lastUpdatedDate: string | core.StringOut; /** * (Required) The name of the service mesh in which to create the virtual gateway. Must be between 1 an * d 255 characters in length. */ meshName: string | core.StringOut; /** * (Optional) The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provi * der][1] is currently connected to. */ meshOwner?: string | core.StringOut; /** * (Required) The name to use for the virtual gateway. Must be between 1 and 255 characters in length. */ name: string | core.StringOut; /** * The resource owner's AWS account ID. */ resourceOwner: string | core.StringOut; /** * (Required) The virtual gateway specification to apply. */ spec: Spec; /** * (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; constructor(name: string, args?: VirtualGatewayArgs); getNamespace(): string; } //# sourceMappingURL=virtual_gateway.d.ts.map