Class CfnVirtualNodePropsMixin.VirtualNodeSpecProperty
An object that represents the specification of a virtual node.
Implements
Inherited Members
Namespace: Amazon.CDK.CfnPropertyMixins.AWS.AppMesh
Assembly: Amazon.CDK.CfnPropertyMixins.dll
Syntax (csharp)
public class CfnVirtualNodePropsMixin.VirtualNodeSpecProperty : CfnVirtualNodePropsMixin.IVirtualNodeSpecProperty
Syntax (vb)
Public Class CfnVirtualNodePropsMixin.VirtualNodeSpecProperty Implements CfnVirtualNodePropsMixin.IVirtualNodeSpecProperty
Remarks
ExampleMetadata: fixture=_generated
Examples
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
using Amazon.CDK.CfnPropertyMixins.AWS.AppMesh;
var virtualNodeSpecProperty = new VirtualNodeSpecProperty {
BackendDefaults = new BackendDefaultsProperty {
ClientPolicy = new ClientPolicyProperty {
Tls = new ClientPolicyTlsProperty {
Certificate = new ClientTlsCertificateProperty {
File = new ListenerTlsFileCertificateProperty {
CertificateChain = "certificateChain",
PrivateKey = "privateKey"
},
Sds = new ListenerTlsSdsCertificateProperty {
SecretName = "secretName"
}
},
Enforce = false,
Ports = new [] { 123 },
Validation = new TlsValidationContextProperty {
SubjectAlternativeNames = new SubjectAlternativeNamesProperty {
Match = new SubjectAlternativeNameMatchersProperty {
Exact = new [] { "exact" }
}
},
Trust = new TlsValidationContextTrustProperty {
Acm = new TlsValidationContextAcmTrustProperty {
CertificateAuthorityArns = new [] { "certificateAuthorityArns" }
},
File = new TlsValidationContextFileTrustProperty {
CertificateChain = "certificateChain"
},
Sds = new TlsValidationContextSdsTrustProperty {
SecretName = "secretName"
}
}
}
}
}
},
Backends = new [] { new BackendProperty {
VirtualService = new VirtualServiceBackendProperty {
ClientPolicy = new ClientPolicyProperty {
Tls = new ClientPolicyTlsProperty {
Certificate = new ClientTlsCertificateProperty {
File = new ListenerTlsFileCertificateProperty {
CertificateChain = "certificateChain",
PrivateKey = "privateKey"
},
Sds = new ListenerTlsSdsCertificateProperty {
SecretName = "secretName"
}
},
Enforce = false,
Ports = new [] { 123 },
Validation = new TlsValidationContextProperty {
SubjectAlternativeNames = new SubjectAlternativeNamesProperty {
Match = new SubjectAlternativeNameMatchersProperty {
Exact = new [] { "exact" }
}
},
Trust = new TlsValidationContextTrustProperty {
Acm = new TlsValidationContextAcmTrustProperty {
CertificateAuthorityArns = new [] { "certificateAuthorityArns" }
},
File = new TlsValidationContextFileTrustProperty {
CertificateChain = "certificateChain"
},
Sds = new TlsValidationContextSdsTrustProperty {
SecretName = "secretName"
}
}
}
}
},
VirtualServiceName = "virtualServiceName"
}
} },
Listeners = new [] { new ListenerProperty {
ConnectionPool = new VirtualNodeConnectionPoolProperty {
Grpc = new VirtualNodeGrpcConnectionPoolProperty {
MaxRequests = 123
},
Http = new VirtualNodeHttpConnectionPoolProperty {
MaxConnections = 123,
MaxPendingRequests = 123
},
Http2 = new VirtualNodeHttp2ConnectionPoolProperty {
MaxRequests = 123
},
Tcp = new VirtualNodeTcpConnectionPoolProperty {
MaxConnections = 123
}
},
HealthCheck = new HealthCheckProperty {
HealthyThreshold = 123,
IntervalMillis = 123,
Path = "path",
Port = 123,
Protocol = "protocol",
TimeoutMillis = 123,
UnhealthyThreshold = 123
},
OutlierDetection = new OutlierDetectionProperty {
BaseEjectionDuration = new DurationProperty {
Unit = "unit",
Value = 123
},
Interval = new DurationProperty {
Unit = "unit",
Value = 123
},
MaxEjectionPercent = 123,
MaxServerErrors = 123
},
PortMapping = new PortMappingProperty {
Port = 123,
Protocol = "protocol"
},
Timeout = new ListenerTimeoutProperty {
Grpc = new GrpcTimeoutProperty {
Idle = new DurationProperty {
Unit = "unit",
Value = 123
},
PerRequest = new DurationProperty {
Unit = "unit",
Value = 123
}
},
Http = new HttpTimeoutProperty {
Idle = new DurationProperty {
Unit = "unit",
Value = 123
},
PerRequest = new DurationProperty {
Unit = "unit",
Value = 123
}
},
Http2 = new HttpTimeoutProperty {
Idle = new DurationProperty {
Unit = "unit",
Value = 123
},
PerRequest = new DurationProperty {
Unit = "unit",
Value = 123
}
},
Tcp = new TcpTimeoutProperty {
Idle = new DurationProperty {
Unit = "unit",
Value = 123
}
}
},
Tls = new ListenerTlsProperty {
Certificate = new ListenerTlsCertificateProperty {
Acm = new ListenerTlsAcmCertificateProperty {
CertificateArn = "certificateArn"
},
File = new ListenerTlsFileCertificateProperty {
CertificateChain = "certificateChain",
PrivateKey = "privateKey"
},
Sds = new ListenerTlsSdsCertificateProperty {
SecretName = "secretName"
}
},
Mode = "mode",
Validation = new ListenerTlsValidationContextProperty {
SubjectAlternativeNames = new SubjectAlternativeNamesProperty {
Match = new SubjectAlternativeNameMatchersProperty {
Exact = new [] { "exact" }
}
},
Trust = new ListenerTlsValidationContextTrustProperty {
File = new TlsValidationContextFileTrustProperty {
CertificateChain = "certificateChain"
},
Sds = new TlsValidationContextSdsTrustProperty {
SecretName = "secretName"
}
}
}
}
} },
Logging = new LoggingProperty {
AccessLog = new AccessLogProperty {
File = new FileAccessLogProperty {
Format = new LoggingFormatProperty {
Json = new [] { new JsonFormatRefProperty {
Key = "key",
Value = "value"
} },
Text = "text"
},
Path = "path"
}
}
},
ServiceDiscovery = new ServiceDiscoveryProperty {
AwsCloudMap = new AwsCloudMapServiceDiscoveryProperty {
Attributes = new [] { new AwsCloudMapInstanceAttributeProperty {
Key = "key",
Value = "value"
} },
IpPreference = "ipPreference",
NamespaceName = "namespaceName",
ServiceName = "serviceName"
},
Dns = new DnsServiceDiscoveryProperty {
Hostname = "hostname",
IpPreference = "ipPreference",
ResponseType = "responseType"
}
}
};
Synopsis
Constructors
| VirtualNodeSpecProperty() | An object that represents the specification of a virtual node. |
Properties
| BackendDefaults | A reference to an object that represents the defaults for backends. |
| Backends | The backends that the virtual node is expected to send outbound traffic to. |
| Listeners | The listener that the virtual node is expected to receive inbound traffic from. |
| Logging | The inbound and outbound access logging information for the virtual node. |
| ServiceDiscovery | The service discovery information for the virtual node. |
Constructors
VirtualNodeSpecProperty()
An object that represents the specification of a virtual node.
public VirtualNodeSpecProperty()
Remarks
ExampleMetadata: fixture=_generated
Examples
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
using Amazon.CDK.CfnPropertyMixins.AWS.AppMesh;
var virtualNodeSpecProperty = new VirtualNodeSpecProperty {
BackendDefaults = new BackendDefaultsProperty {
ClientPolicy = new ClientPolicyProperty {
Tls = new ClientPolicyTlsProperty {
Certificate = new ClientTlsCertificateProperty {
File = new ListenerTlsFileCertificateProperty {
CertificateChain = "certificateChain",
PrivateKey = "privateKey"
},
Sds = new ListenerTlsSdsCertificateProperty {
SecretName = "secretName"
}
},
Enforce = false,
Ports = new [] { 123 },
Validation = new TlsValidationContextProperty {
SubjectAlternativeNames = new SubjectAlternativeNamesProperty {
Match = new SubjectAlternativeNameMatchersProperty {
Exact = new [] { "exact" }
}
},
Trust = new TlsValidationContextTrustProperty {
Acm = new TlsValidationContextAcmTrustProperty {
CertificateAuthorityArns = new [] { "certificateAuthorityArns" }
},
File = new TlsValidationContextFileTrustProperty {
CertificateChain = "certificateChain"
},
Sds = new TlsValidationContextSdsTrustProperty {
SecretName = "secretName"
}
}
}
}
}
},
Backends = new [] { new BackendProperty {
VirtualService = new VirtualServiceBackendProperty {
ClientPolicy = new ClientPolicyProperty {
Tls = new ClientPolicyTlsProperty {
Certificate = new ClientTlsCertificateProperty {
File = new ListenerTlsFileCertificateProperty {
CertificateChain = "certificateChain",
PrivateKey = "privateKey"
},
Sds = new ListenerTlsSdsCertificateProperty {
SecretName = "secretName"
}
},
Enforce = false,
Ports = new [] { 123 },
Validation = new TlsValidationContextProperty {
SubjectAlternativeNames = new SubjectAlternativeNamesProperty {
Match = new SubjectAlternativeNameMatchersProperty {
Exact = new [] { "exact" }
}
},
Trust = new TlsValidationContextTrustProperty {
Acm = new TlsValidationContextAcmTrustProperty {
CertificateAuthorityArns = new [] { "certificateAuthorityArns" }
},
File = new TlsValidationContextFileTrustProperty {
CertificateChain = "certificateChain"
},
Sds = new TlsValidationContextSdsTrustProperty {
SecretName = "secretName"
}
}
}
}
},
VirtualServiceName = "virtualServiceName"
}
} },
Listeners = new [] { new ListenerProperty {
ConnectionPool = new VirtualNodeConnectionPoolProperty {
Grpc = new VirtualNodeGrpcConnectionPoolProperty {
MaxRequests = 123
},
Http = new VirtualNodeHttpConnectionPoolProperty {
MaxConnections = 123,
MaxPendingRequests = 123
},
Http2 = new VirtualNodeHttp2ConnectionPoolProperty {
MaxRequests = 123
},
Tcp = new VirtualNodeTcpConnectionPoolProperty {
MaxConnections = 123
}
},
HealthCheck = new HealthCheckProperty {
HealthyThreshold = 123,
IntervalMillis = 123,
Path = "path",
Port = 123,
Protocol = "protocol",
TimeoutMillis = 123,
UnhealthyThreshold = 123
},
OutlierDetection = new OutlierDetectionProperty {
BaseEjectionDuration = new DurationProperty {
Unit = "unit",
Value = 123
},
Interval = new DurationProperty {
Unit = "unit",
Value = 123
},
MaxEjectionPercent = 123,
MaxServerErrors = 123
},
PortMapping = new PortMappingProperty {
Port = 123,
Protocol = "protocol"
},
Timeout = new ListenerTimeoutProperty {
Grpc = new GrpcTimeoutProperty {
Idle = new DurationProperty {
Unit = "unit",
Value = 123
},
PerRequest = new DurationProperty {
Unit = "unit",
Value = 123
}
},
Http = new HttpTimeoutProperty {
Idle = new DurationProperty {
Unit = "unit",
Value = 123
},
PerRequest = new DurationProperty {
Unit = "unit",
Value = 123
}
},
Http2 = new HttpTimeoutProperty {
Idle = new DurationProperty {
Unit = "unit",
Value = 123
},
PerRequest = new DurationProperty {
Unit = "unit",
Value = 123
}
},
Tcp = new TcpTimeoutProperty {
Idle = new DurationProperty {
Unit = "unit",
Value = 123
}
}
},
Tls = new ListenerTlsProperty {
Certificate = new ListenerTlsCertificateProperty {
Acm = new ListenerTlsAcmCertificateProperty {
CertificateArn = "certificateArn"
},
File = new ListenerTlsFileCertificateProperty {
CertificateChain = "certificateChain",
PrivateKey = "privateKey"
},
Sds = new ListenerTlsSdsCertificateProperty {
SecretName = "secretName"
}
},
Mode = "mode",
Validation = new ListenerTlsValidationContextProperty {
SubjectAlternativeNames = new SubjectAlternativeNamesProperty {
Match = new SubjectAlternativeNameMatchersProperty {
Exact = new [] { "exact" }
}
},
Trust = new ListenerTlsValidationContextTrustProperty {
File = new TlsValidationContextFileTrustProperty {
CertificateChain = "certificateChain"
},
Sds = new TlsValidationContextSdsTrustProperty {
SecretName = "secretName"
}
}
}
}
} },
Logging = new LoggingProperty {
AccessLog = new AccessLogProperty {
File = new FileAccessLogProperty {
Format = new LoggingFormatProperty {
Json = new [] { new JsonFormatRefProperty {
Key = "key",
Value = "value"
} },
Text = "text"
},
Path = "path"
}
}
},
ServiceDiscovery = new ServiceDiscoveryProperty {
AwsCloudMap = new AwsCloudMapServiceDiscoveryProperty {
Attributes = new [] { new AwsCloudMapInstanceAttributeProperty {
Key = "key",
Value = "value"
} },
IpPreference = "ipPreference",
NamespaceName = "namespaceName",
ServiceName = "serviceName"
},
Dns = new DnsServiceDiscoveryProperty {
Hostname = "hostname",
IpPreference = "ipPreference",
ResponseType = "responseType"
}
}
};
Properties
BackendDefaults
A reference to an object that represents the defaults for backends.
public object? BackendDefaults { get; set; }
Property Value
Remarks
Backends
The backends that the virtual node is expected to send outbound traffic to.
public object? Backends { get; set; }
Property Value
Remarks
App Mesh doesn't validate the existence of those virtual services specified in backends. This is to prevent a cyclic dependency between virtual nodes and virtual services creation. Make sure the virtual service name is correct. The virtual service can be created afterwards if it doesn't already exist.
Type union: either IResolvable or (either IResolvable or CfnVirtualNodePropsMixin.IBackendProperty)[]
Listeners
The listener that the virtual node is expected to receive inbound traffic from.
public object? Listeners { get; set; }
Property Value
Remarks
You can specify one listener.
Type union: either IResolvable or (either IResolvable or CfnVirtualNodePropsMixin.IListenerProperty)[]
Logging
The inbound and outbound access logging information for the virtual node.
public object? Logging { get; set; }
Property Value
Remarks
ServiceDiscovery
The service discovery information for the virtual node.
public object? ServiceDiscovery { get; set; }
Property Value
Remarks
If your virtual node does not expect ingress traffic, you can omit this parameter. If you specify a listener , then you must specify service discovery information.
Type union: either IResolvable or CfnVirtualNodePropsMixin.IServiceDiscoveryProperty