Show / Hide Table of Contents

Interface CfnVirtualNodePropsMixin.IVirtualNodeSpecProperty

An object that represents the specification of a virtual node.

Namespace: Amazon.CDK.CfnPropertyMixins.AWS.AppMesh
Assembly: Amazon.CDK.CfnPropertyMixins.dll
Syntax (csharp)
public interface CfnVirtualNodePropsMixin.IVirtualNodeSpecProperty
Syntax (vb)
Public Interface CfnVirtualNodePropsMixin.IVirtualNodeSpecProperty
Remarks

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodespec.html

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

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.

Properties

BackendDefaults

A reference to an object that represents the defaults for backends.

object? BackendDefaults { get; }
Property Value

object

Remarks

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodespec.html#cfn-appmesh-virtualnode-virtualnodespec-backenddefaults

Type union: either IResolvable or CfnVirtualNodePropsMixin.IBackendDefaultsProperty

Backends

The backends that the virtual node is expected to send outbound traffic to.

object? Backends { get; }
Property Value

object

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.

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodespec.html#cfn-appmesh-virtualnode-virtualnodespec-backends

Type union: either IResolvable or (either IResolvable or CfnVirtualNodePropsMixin.IBackendProperty)[]

Listeners

The listener that the virtual node is expected to receive inbound traffic from.

object? Listeners { get; }
Property Value

object

Remarks

You can specify one listener.

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodespec.html#cfn-appmesh-virtualnode-virtualnodespec-listeners

Type union: either IResolvable or (either IResolvable or CfnVirtualNodePropsMixin.IListenerProperty)[]

Logging

The inbound and outbound access logging information for the virtual node.

object? Logging { get; }
Property Value

object

Remarks

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodespec.html#cfn-appmesh-virtualnode-virtualnodespec-logging

Type union: either IResolvable or CfnVirtualNodePropsMixin.ILoggingProperty

ServiceDiscovery

The service discovery information for the virtual node.

object? ServiceDiscovery { get; }
Property Value

object

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.

See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodespec.html#cfn-appmesh-virtualnode-virtualnodespec-servicediscovery

Type union: either IResolvable or CfnVirtualNodePropsMixin.IServiceDiscoveryProperty

Back to top Generated by DocFX