Show / Hide Table of Contents

Class CfnVirtualNode.VirtualNodeSpecProperty

An object that represents the specification of a virtual node.

Inheritance
object
CfnVirtualNode.VirtualNodeSpecProperty
Implements
CfnVirtualNode.IVirtualNodeSpecProperty
Inherited Members
object.GetType()
object.MemberwiseClone()
object.ToString()
object.Equals(object)
object.Equals(object, object)
object.ReferenceEquals(object, object)
object.GetHashCode()
Namespace: Amazon.CDK.AWS.AppMesh
Assembly: Amazon.CDK.Lib.dll
Syntax (csharp)
public class CfnVirtualNode.VirtualNodeSpecProperty : CfnVirtualNode.IVirtualNodeSpecProperty
Syntax (vb)
Public Class CfnVirtualNode.VirtualNodeSpecProperty Implements CfnVirtualNode.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.AWS.AppMesh;

             var virtualNodeSpecProperty = new VirtualNodeSpecProperty {
                 BackendDefaults = new BackendDefaultsProperty {
                     ClientPolicy = new ClientPolicyProperty {
                         Tls = new ClientPolicyTlsProperty {
                             Validation = new TlsValidationContextProperty {
                                 Trust = new TlsValidationContextTrustProperty {
                                     Acm = new TlsValidationContextAcmTrustProperty {
                                         CertificateAuthorityArns = new [] { "certificateAuthorityArns" }
                                     },
                                     File = new TlsValidationContextFileTrustProperty {
                                         CertificateChain = "certificateChain"
                                     },
                                     Sds = new TlsValidationContextSdsTrustProperty {
                                         SecretName = "secretName"
                                     }
                                 },

                                 // the properties below are optional
                                 SubjectAlternativeNames = new SubjectAlternativeNamesProperty {
                                     Match = new SubjectAlternativeNameMatchersProperty {
                                         Exact = new [] { "exact" }
                                     }
                                 }
                             },

                             // the properties below are optional
                             Certificate = new ClientTlsCertificateProperty {
                                 File = new ListenerTlsFileCertificateProperty {
                                     CertificateChain = "certificateChain",
                                     PrivateKey = "privateKey"
                                 },
                                 Sds = new ListenerTlsSdsCertificateProperty {
                                     SecretName = "secretName"
                                 }
                             },
                             Enforce = false,
                             Ports = new [] { 123 }
                         }
                     }
                 },
                 Backends = new [] { new BackendProperty {
                     VirtualService = new VirtualServiceBackendProperty {
                         VirtualServiceName = "virtualServiceName",

                         // the properties below are optional
                         ClientPolicy = new ClientPolicyProperty {
                             Tls = new ClientPolicyTlsProperty {
                                 Validation = new TlsValidationContextProperty {
                                     Trust = new TlsValidationContextTrustProperty {
                                         Acm = new TlsValidationContextAcmTrustProperty {
                                             CertificateAuthorityArns = new [] { "certificateAuthorityArns" }
                                         },
                                         File = new TlsValidationContextFileTrustProperty {
                                             CertificateChain = "certificateChain"
                                         },
                                         Sds = new TlsValidationContextSdsTrustProperty {
                                             SecretName = "secretName"
                                         }
                                     },

                                     // the properties below are optional
                                     SubjectAlternativeNames = new SubjectAlternativeNamesProperty {
                                         Match = new SubjectAlternativeNameMatchersProperty {
                                             Exact = new [] { "exact" }
                                         }
                                     }
                                 },

                                 // the properties below are optional
                                 Certificate = new ClientTlsCertificateProperty {
                                     File = new ListenerTlsFileCertificateProperty {
                                         CertificateChain = "certificateChain",
                                         PrivateKey = "privateKey"
                                     },
                                     Sds = new ListenerTlsSdsCertificateProperty {
                                         SecretName = "secretName"
                                     }
                                 },
                                 Enforce = false,
                                 Ports = new [] { 123 }
                             }
                         }
                     }
                 } },
                 Listeners = new [] { new ListenerProperty {
                     PortMapping = new PortMappingProperty {
                         Port = 123,
                         Protocol = "protocol"
                     },

                     // the properties below are optional
                     ConnectionPool = new VirtualNodeConnectionPoolProperty {
                         Grpc = new VirtualNodeGrpcConnectionPoolProperty {
                             MaxRequests = 123
                         },
                         Http = new VirtualNodeHttpConnectionPoolProperty {
                             MaxConnections = 123,

                             // the properties below are optional
                             MaxPendingRequests = 123
                         },
                         Http2 = new VirtualNodeHttp2ConnectionPoolProperty {
                             MaxRequests = 123
                         },
                         Tcp = new VirtualNodeTcpConnectionPoolProperty {
                             MaxConnections = 123
                         }
                     },
                     HealthCheck = new HealthCheckProperty {
                         HealthyThreshold = 123,
                         IntervalMillis = 123,
                         Protocol = "protocol",
                         TimeoutMillis = 123,
                         UnhealthyThreshold = 123,

                         // the properties below are optional
                         Path = "path",
                         Port = 123
                     },
                     OutlierDetection = new OutlierDetectionProperty {
                         BaseEjectionDuration = new DurationProperty {
                             Unit = "unit",
                             Value = 123
                         },
                         Interval = new DurationProperty {
                             Unit = "unit",
                             Value = 123
                         },
                         MaxEjectionPercent = 123,
                         MaxServerErrors = 123
                     },
                     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",

                         // the properties below are optional
                         Validation = new ListenerTlsValidationContextProperty {
                             Trust = new ListenerTlsValidationContextTrustProperty {
                                 File = new TlsValidationContextFileTrustProperty {
                                     CertificateChain = "certificateChain"
                                 },
                                 Sds = new TlsValidationContextSdsTrustProperty {
                                     SecretName = "secretName"
                                 }
                             },

                             // the properties below are optional
                             SubjectAlternativeNames = new SubjectAlternativeNamesProperty {
                                 Match = new SubjectAlternativeNameMatchersProperty {
                                     Exact = new [] { "exact" }
                                 }
                             }
                         }
                     }
                 } },
                 Logging = new LoggingProperty {
                     AccessLog = new AccessLogProperty {
                         File = new FileAccessLogProperty {
                             Path = "path",

                             // the properties below are optional
                             Format = new LoggingFormatProperty {
                                 Json = new [] { new JsonFormatRefProperty {
                                     Key = "key",
                                     Value = "value"
                                 } },
                                 Text = "text"
                             }
                         }
                     }
                 },
                 ServiceDiscovery = new ServiceDiscoveryProperty {
                     AwsCloudMap = new AwsCloudMapServiceDiscoveryProperty {
                         NamespaceName = "namespaceName",
                         ServiceName = "serviceName",

                         // the properties below are optional
                         Attributes = new [] { new AwsCloudMapInstanceAttributeProperty {
                             Key = "key",
                             Value = "value"
                         } },
                         IpPreference = "ipPreference"
                     },
                     Dns = new DnsServiceDiscoveryProperty {
                         Hostname = "hostname",

                         // the properties below are optional
                         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

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.AWS.AppMesh;

             var virtualNodeSpecProperty = new VirtualNodeSpecProperty {
                 BackendDefaults = new BackendDefaultsProperty {
                     ClientPolicy = new ClientPolicyProperty {
                         Tls = new ClientPolicyTlsProperty {
                             Validation = new TlsValidationContextProperty {
                                 Trust = new TlsValidationContextTrustProperty {
                                     Acm = new TlsValidationContextAcmTrustProperty {
                                         CertificateAuthorityArns = new [] { "certificateAuthorityArns" }
                                     },
                                     File = new TlsValidationContextFileTrustProperty {
                                         CertificateChain = "certificateChain"
                                     },
                                     Sds = new TlsValidationContextSdsTrustProperty {
                                         SecretName = "secretName"
                                     }
                                 },

                                 // the properties below are optional
                                 SubjectAlternativeNames = new SubjectAlternativeNamesProperty {
                                     Match = new SubjectAlternativeNameMatchersProperty {
                                         Exact = new [] { "exact" }
                                     }
                                 }
                             },

                             // the properties below are optional
                             Certificate = new ClientTlsCertificateProperty {
                                 File = new ListenerTlsFileCertificateProperty {
                                     CertificateChain = "certificateChain",
                                     PrivateKey = "privateKey"
                                 },
                                 Sds = new ListenerTlsSdsCertificateProperty {
                                     SecretName = "secretName"
                                 }
                             },
                             Enforce = false,
                             Ports = new [] { 123 }
                         }
                     }
                 },
                 Backends = new [] { new BackendProperty {
                     VirtualService = new VirtualServiceBackendProperty {
                         VirtualServiceName = "virtualServiceName",

                         // the properties below are optional
                         ClientPolicy = new ClientPolicyProperty {
                             Tls = new ClientPolicyTlsProperty {
                                 Validation = new TlsValidationContextProperty {
                                     Trust = new TlsValidationContextTrustProperty {
                                         Acm = new TlsValidationContextAcmTrustProperty {
                                             CertificateAuthorityArns = new [] { "certificateAuthorityArns" }
                                         },
                                         File = new TlsValidationContextFileTrustProperty {
                                             CertificateChain = "certificateChain"
                                         },
                                         Sds = new TlsValidationContextSdsTrustProperty {
                                             SecretName = "secretName"
                                         }
                                     },

                                     // the properties below are optional
                                     SubjectAlternativeNames = new SubjectAlternativeNamesProperty {
                                         Match = new SubjectAlternativeNameMatchersProperty {
                                             Exact = new [] { "exact" }
                                         }
                                     }
                                 },

                                 // the properties below are optional
                                 Certificate = new ClientTlsCertificateProperty {
                                     File = new ListenerTlsFileCertificateProperty {
                                         CertificateChain = "certificateChain",
                                         PrivateKey = "privateKey"
                                     },
                                     Sds = new ListenerTlsSdsCertificateProperty {
                                         SecretName = "secretName"
                                     }
                                 },
                                 Enforce = false,
                                 Ports = new [] { 123 }
                             }
                         }
                     }
                 } },
                 Listeners = new [] { new ListenerProperty {
                     PortMapping = new PortMappingProperty {
                         Port = 123,
                         Protocol = "protocol"
                     },

                     // the properties below are optional
                     ConnectionPool = new VirtualNodeConnectionPoolProperty {
                         Grpc = new VirtualNodeGrpcConnectionPoolProperty {
                             MaxRequests = 123
                         },
                         Http = new VirtualNodeHttpConnectionPoolProperty {
                             MaxConnections = 123,

                             // the properties below are optional
                             MaxPendingRequests = 123
                         },
                         Http2 = new VirtualNodeHttp2ConnectionPoolProperty {
                             MaxRequests = 123
                         },
                         Tcp = new VirtualNodeTcpConnectionPoolProperty {
                             MaxConnections = 123
                         }
                     },
                     HealthCheck = new HealthCheckProperty {
                         HealthyThreshold = 123,
                         IntervalMillis = 123,
                         Protocol = "protocol",
                         TimeoutMillis = 123,
                         UnhealthyThreshold = 123,

                         // the properties below are optional
                         Path = "path",
                         Port = 123
                     },
                     OutlierDetection = new OutlierDetectionProperty {
                         BaseEjectionDuration = new DurationProperty {
                             Unit = "unit",
                             Value = 123
                         },
                         Interval = new DurationProperty {
                             Unit = "unit",
                             Value = 123
                         },
                         MaxEjectionPercent = 123,
                         MaxServerErrors = 123
                     },
                     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",

                         // the properties below are optional
                         Validation = new ListenerTlsValidationContextProperty {
                             Trust = new ListenerTlsValidationContextTrustProperty {
                                 File = new TlsValidationContextFileTrustProperty {
                                     CertificateChain = "certificateChain"
                                 },
                                 Sds = new TlsValidationContextSdsTrustProperty {
                                     SecretName = "secretName"
                                 }
                             },

                             // the properties below are optional
                             SubjectAlternativeNames = new SubjectAlternativeNamesProperty {
                                 Match = new SubjectAlternativeNameMatchersProperty {
                                     Exact = new [] { "exact" }
                                 }
                             }
                         }
                     }
                 } },
                 Logging = new LoggingProperty {
                     AccessLog = new AccessLogProperty {
                         File = new FileAccessLogProperty {
                             Path = "path",

                             // the properties below are optional
                             Format = new LoggingFormatProperty {
                                 Json = new [] { new JsonFormatRefProperty {
                                     Key = "key",
                                     Value = "value"
                                 } },
                                 Text = "text"
                             }
                         }
                     }
                 },
                 ServiceDiscovery = new ServiceDiscoveryProperty {
                     AwsCloudMap = new AwsCloudMapServiceDiscoveryProperty {
                         NamespaceName = "namespaceName",
                         ServiceName = "serviceName",

                         // the properties below are optional
                         Attributes = new [] { new AwsCloudMapInstanceAttributeProperty {
                             Key = "key",
                             Value = "value"
                         } },
                         IpPreference = "ipPreference"
                     },
                     Dns = new DnsServiceDiscoveryProperty {
                         Hostname = "hostname",

                         // the properties below are optional
                         IpPreference = "ipPreference",
                         ResponseType = "responseType"
                     }
                 }
             };

Properties

BackendDefaults

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

public object? BackendDefaults { get; set; }
Property Value

object

Remarks

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

Backends

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

public object? Backends { get; set; }
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

Listeners

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

public object? Listeners { get; set; }
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

Logging

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

public object? Logging { get; set; }
Property Value

object

Remarks

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

ServiceDiscovery

The service discovery information for the virtual node.

public object? ServiceDiscovery { get; set; }
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

Implements

CfnVirtualNode.IVirtualNodeSpecProperty
Back to top Generated by DocFX