import * as core from "@terrascript/core"; export interface DnsArgs extends core.SchemaArgs { hostname: string | core.StringOut; } export declare class Dns extends core.Schema { hostname: string | core.StringOut; } export interface AwsCloudMapArgs extends core.SchemaArgs { attributes?: core.Map | core.MapOut; namespaceName: string | core.StringOut; serviceName: string | core.StringOut; } export declare class AwsCloudMap extends core.Schema { attributes?: core.Map | core.MapOut; namespaceName: string | core.StringOut; serviceName: string | core.StringOut; } export interface ServiceDiscoveryArgs extends core.SchemaArgs { awsCloudMap?: AwsCloudMap; dns?: Dns; } export declare class ServiceDiscovery extends core.Schema { awsCloudMap?: AwsCloudMap; dns?: Dns; } 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 VirtualServiceArgs extends core.SchemaArgs { clientPolicy?: ClientPolicy; virtualServiceName: string | core.StringOut; } export declare class VirtualService extends core.Schema { clientPolicy?: ClientPolicy; virtualServiceName: string | core.StringOut; } export interface BackendArgs extends core.SchemaArgs { virtualService: VirtualService; } export declare class Backend extends core.Schema { virtualService: VirtualService; } export interface BackendDefaultsArgs extends core.SchemaArgs { clientPolicy?: ClientPolicy; } export declare class BackendDefaults extends core.Schema { clientPolicy?: ClientPolicy; } export interface IdleArgs extends core.SchemaArgs { unit: string | core.StringOut; value: number | core.NumberOut; } export declare class Idle extends core.Schema { unit: string | core.StringOut; value: number | core.NumberOut; } export interface PerRequestArgs extends core.SchemaArgs { unit: string | core.StringOut; value: number | core.NumberOut; } export declare class PerRequest extends core.Schema { unit: string | core.StringOut; value: number | core.NumberOut; } export interface TimeoutHttpArgs extends core.SchemaArgs { idle?: Idle; perRequest?: PerRequest; } export declare class TimeoutHttp extends core.Schema { idle?: Idle; perRequest?: PerRequest; } export interface TimeoutHttp2Args extends core.SchemaArgs { idle?: Idle; perRequest?: PerRequest; } export declare class TimeoutHttp2 extends core.Schema { idle?: Idle; perRequest?: PerRequest; } export interface TimeoutTcpArgs extends core.SchemaArgs { idle?: Idle; } export declare class TimeoutTcp extends core.Schema { idle?: Idle; } export interface TimeoutGrpcArgs extends core.SchemaArgs { idle?: Idle; perRequest?: PerRequest; } export declare class TimeoutGrpc extends core.Schema { idle?: Idle; perRequest?: PerRequest; } export interface TimeoutArgs extends core.SchemaArgs { grpc?: TimeoutGrpc; http?: TimeoutHttp; http2?: TimeoutHttp2; tcp?: TimeoutTcp; } export declare class Timeout extends core.Schema { grpc?: TimeoutGrpc; http?: TimeoutHttp; http2?: TimeoutHttp2; tcp?: TimeoutTcp; } 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 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 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 ConnectionPoolHttp2Args extends core.SchemaArgs { maxRequests: number | core.NumberOut; } export declare class ConnectionPoolHttp2 extends core.Schema { maxRequests: number | core.NumberOut; } export interface ConnectionPoolTcpArgs extends core.SchemaArgs { maxConnections: number | core.NumberOut; } export declare class ConnectionPoolTcp extends core.Schema { maxConnections: number | core.NumberOut; } export interface ConnectionPoolGrpcArgs extends core.SchemaArgs { maxRequests: number | core.NumberOut; } export declare class ConnectionPoolGrpc extends core.Schema { maxRequests: number | core.NumberOut; } export interface ConnectionPoolHttpArgs extends core.SchemaArgs { maxConnections: number | core.NumberOut; maxPendingRequests?: number | core.NumberOut; } export declare class ConnectionPoolHttp extends core.Schema { maxConnections: number | core.NumberOut; maxPendingRequests?: number | core.NumberOut; } export interface ConnectionPoolArgs extends core.SchemaArgs { grpc?: ConnectionPoolGrpc; http?: ConnectionPoolHttp; http2?: ConnectionPoolHttp2; tcp?: ConnectionPoolTcp; } export declare class ConnectionPool extends core.Schema { grpc?: ConnectionPoolGrpc; http?: ConnectionPoolHttp; http2?: ConnectionPoolHttp2; tcp?: ConnectionPoolTcp; } 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 BaseEjectionDurationArgs extends core.SchemaArgs { unit: string | core.StringOut; value: number | core.NumberOut; } export declare class BaseEjectionDuration extends core.Schema { unit: string | core.StringOut; value: number | core.NumberOut; } export interface IntervalArgs extends core.SchemaArgs { unit: string | core.StringOut; value: number | core.NumberOut; } export declare class Interval extends core.Schema { unit: string | core.StringOut; value: number | core.NumberOut; } export interface OutlierDetectionArgs extends core.SchemaArgs { baseEjectionDuration: BaseEjectionDuration; interval: Interval; maxEjectionPercent: number | core.NumberOut; maxServerErrors: number | core.NumberOut; } export declare class OutlierDetection extends core.Schema { baseEjectionDuration: BaseEjectionDuration; interval: Interval; maxEjectionPercent: number | core.NumberOut; maxServerErrors: 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; outlierDetection?: OutlierDetection; portMapping: PortMapping; timeout?: Timeout; tls?: ListenerTls; } export declare class Listener extends core.Schema { connectionPool?: ConnectionPool; healthCheck?: HealthCheck; outlierDetection?: OutlierDetection; portMapping: PortMapping; timeout?: Timeout; 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 { backend?: core.Array | core.ArrayOut; backendDefaults?: BackendDefaults; listener?: Listener; logging?: Logging; serviceDiscovery?: ServiceDiscovery; } export declare class Spec extends core.Schema { backend?: core.Array | core.ArrayOut; backendDefaults?: BackendDefaults; listener?: Listener; logging?: Logging; serviceDiscovery?: ServiceDiscovery; } export interface VirtualNodeArgs extends core.ResourceArgs { /** * (Required) The name of the service mesh in which to create the virtual node. Must be between 1 and 2 * 55 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 node. Must be between 1 and 255 characters in length. */ name: string | core.StringOut; /** * (Required) The virtual node 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 VirtualNode extends core.Resource { /** * The ARN of the virtual node. */ arn: string | core.StringOut; /** * The creation date of the virtual node. */ createdDate: string | core.StringOut; /** * The ID of the virtual node. */ id: string | core.StringOut; /** * The last update date of the virtual node. */ lastUpdatedDate: string | core.StringOut; /** * (Required) The name of the service mesh in which to create the virtual node. Must be between 1 and 2 * 55 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 node. 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 node 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?: VirtualNodeArgs); getNamespace(): string; } //# sourceMappingURL=virtual_node.d.ts.map