/* eslint-disable */ /** * This file was automatically generated by json-schema-to-typescript. * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, * and run json-schema-to-typescript to regenerate this file. */ /** * Resource Type definition for AWS::AppMesh::VirtualNode */ export interface AwsAppmeshVirtualnode { Uid?: string; MeshName: string; MeshOwner?: string; ResourceOwner?: string; Id?: string; Arn?: string; Spec: VirtualNodeSpec; VirtualNodeName?: string; Tags?: Tag[]; } export interface VirtualNodeSpec { Logging?: Logging; Backends?: Backend[]; Listeners?: Listener[]; BackendDefaults?: BackendDefaults; ServiceDiscovery?: ServiceDiscovery; } export interface Logging { AccessLog?: AccessLog; } export interface AccessLog { File?: FileAccessLog; } export interface FileAccessLog { Path: string; Format?: LoggingFormat; } export interface LoggingFormat { Text?: string; Json?: JsonFormatRef[]; } export interface JsonFormatRef { Value: string; Key: string; } export interface Backend { VirtualService?: VirtualServiceBackend; } export interface VirtualServiceBackend { VirtualServiceName: string; ClientPolicy?: ClientPolicy; } export interface ClientPolicy { TLS?: ClientPolicyTls; } export interface ClientPolicyTls { Validation: TlsValidationContext; Ports?: number[]; Enforce?: boolean; Certificate?: ClientTlsCertificate; } export interface TlsValidationContext { SubjectAlternativeNames?: SubjectAlternativeNames; Trust: TlsValidationContextTrust; } export interface SubjectAlternativeNames { Match: SubjectAlternativeNameMatchers; } export interface SubjectAlternativeNameMatchers { Exact?: string[]; } export interface TlsValidationContextTrust { SDS?: TlsValidationContextSdsTrust; ACM?: TlsValidationContextAcmTrust; File?: TlsValidationContextFileTrust; } export interface TlsValidationContextSdsTrust { SecretName: string; } export interface TlsValidationContextAcmTrust { CertificateAuthorityArns: string[]; } export interface TlsValidationContextFileTrust { CertificateChain: string; } export interface ClientTlsCertificate { File?: ListenerTlsFileCertificate; SDS?: ListenerTlsSdsCertificate; } export interface ListenerTlsFileCertificate { CertificateChain: string; PrivateKey: string; } export interface ListenerTlsSdsCertificate { SecretName: string; } export interface Listener { ConnectionPool?: VirtualNodeConnectionPool; Timeout?: ListenerTimeout; HealthCheck?: HealthCheck; TLS?: ListenerTls; PortMapping: PortMapping; OutlierDetection?: OutlierDetection; } export interface VirtualNodeConnectionPool { TCP?: VirtualNodeTcpConnectionPool; HTTP?: VirtualNodeHttpConnectionPool; HTTP2?: VirtualNodeHttp2ConnectionPool; GRPC?: VirtualNodeGrpcConnectionPool; } export interface VirtualNodeTcpConnectionPool { MaxConnections: number; } export interface VirtualNodeHttpConnectionPool { MaxConnections: number; MaxPendingRequests?: number; } export interface VirtualNodeHttp2ConnectionPool { MaxRequests: number; } export interface VirtualNodeGrpcConnectionPool { MaxRequests: number; } export interface ListenerTimeout { TCP?: TcpTimeout; HTTP?: HttpTimeout; HTTP2?: HttpTimeout; GRPC?: GrpcTimeout; } export interface TcpTimeout { Idle?: Duration; } export interface Duration { Value: number; Unit: string; } export interface HttpTimeout { PerRequest?: Duration; Idle?: Duration; } export interface GrpcTimeout { PerRequest?: Duration; Idle?: Duration; } export interface HealthCheck { Path?: string; UnhealthyThreshold: number; Port?: number; HealthyThreshold: number; TimeoutMillis: number; Protocol: string; IntervalMillis: number; } export interface ListenerTls { Validation?: ListenerTlsValidationContext; Mode: string; Certificate: ListenerTlsCertificate; } export interface ListenerTlsValidationContext { SubjectAlternativeNames?: SubjectAlternativeNames; Trust: ListenerTlsValidationContextTrust; } export interface ListenerTlsValidationContextTrust { File?: TlsValidationContextFileTrust; SDS?: TlsValidationContextSdsTrust; } export interface ListenerTlsCertificate { SDS?: ListenerTlsSdsCertificate; ACM?: ListenerTlsAcmCertificate; File?: ListenerTlsFileCertificate; } export interface ListenerTlsAcmCertificate { CertificateArn: string; } export interface PortMapping { Protocol: string; Port: number; } export interface OutlierDetection { MaxEjectionPercent: number; BaseEjectionDuration: Duration; MaxServerErrors: number; Interval: Duration; } export interface BackendDefaults { ClientPolicy?: ClientPolicy; } export interface ServiceDiscovery { DNS?: DnsServiceDiscovery; AWSCloudMap?: AwsCloudMapServiceDiscovery; } export interface DnsServiceDiscovery { Hostname: string; IpPreference?: string; ResponseType?: string; } export interface AwsCloudMapServiceDiscovery { Attributes?: AwsCloudMapInstanceAttribute[]; NamespaceName: string; ServiceName: string; IpPreference?: string; } export interface AwsCloudMapInstanceAttribute { Value: string; Key: string; } export interface Tag { Value: string; Key: string; }