Class: Aws::AppMesh::Types::VirtualNodeSpec

Inherits:
Struct
  • Object
show all
Defined in:
gems/aws-sdk-appmesh/lib/aws-sdk-appmesh/types.rb

Overview

Note:

When making an API call, you may pass VirtualNodeSpec data as a hash:

{
  backend_defaults: {
    client_policy: {
      tls: {
        certificate: {
          file: {
            certificate_chain: "FilePath", # required
            private_key: "FilePath", # required
          },
          sds: {
            secret_name: "SdsSecretName", # required
          },
        },
        enforce: false,
        ports: [1],
        validation: { # required
          subject_alternative_names: {
            match: { # required
              exact: ["SubjectAlternativeName"], # required
            },
          },
          trust: { # required
            acm: {
              certificate_authority_arns: ["Arn"], # required
            },
            file: {
              certificate_chain: "FilePath", # required
            },
            sds: {
              secret_name: "SdsSecretName", # required
            },
          },
        },
      },
    },
  },
  backends: [
    {
      virtual_service: {
        client_policy: {
          tls: {
            certificate: {
              file: {
                certificate_chain: "FilePath", # required
                private_key: "FilePath", # required
              },
              sds: {
                secret_name: "SdsSecretName", # required
              },
            },
            enforce: false,
            ports: [1],
            validation: { # required
              subject_alternative_names: {
                match: { # required
                  exact: ["SubjectAlternativeName"], # required
                },
              },
              trust: { # required
                acm: {
                  certificate_authority_arns: ["Arn"], # required
                },
                file: {
                  certificate_chain: "FilePath", # required
                },
                sds: {
                  secret_name: "SdsSecretName", # required
                },
              },
            },
          },
        },
        virtual_service_name: "ServiceName", # required
      },
    },
  ],
  listeners: [
    {
      connection_pool: {
        grpc: {
          max_requests: 1, # required
        },
        http: {
          max_connections: 1, # required
          max_pending_requests: 1,
        },
        http2: {
          max_requests: 1, # required
        },
        tcp: {
          max_connections: 1, # required
        },
      },
      health_check: {
        healthy_threshold: 1, # required
        interval_millis: 1, # required
        path: "String",
        port: 1,
        protocol: "http", # required, accepts http, tcp, http2, grpc
        timeout_millis: 1, # required
        unhealthy_threshold: 1, # required
      },
      outlier_detection: {
        base_ejection_duration: { # required
          unit: "s", # accepts s, ms
          value: 1,
        },
        interval: { # required
          unit: "s", # accepts s, ms
          value: 1,
        },
        max_ejection_percent: 1, # required
        max_server_errors: 1, # required
      },
      port_mapping: { # required
        port: 1, # required
        protocol: "http", # required, accepts http, tcp, http2, grpc
      },
      timeout: {
        grpc: {
          idle: {
            unit: "s", # accepts s, ms
            value: 1,
          },
          per_request: {
            unit: "s", # accepts s, ms
            value: 1,
          },
        },
        http: {
          idle: {
            unit: "s", # accepts s, ms
            value: 1,
          },
          per_request: {
            unit: "s", # accepts s, ms
            value: 1,
          },
        },
        http2: {
          idle: {
            unit: "s", # accepts s, ms
            value: 1,
          },
          per_request: {
            unit: "s", # accepts s, ms
            value: 1,
          },
        },
        tcp: {
          idle: {
            unit: "s", # accepts s, ms
            value: 1,
          },
        },
      },
      tls: {
        certificate: { # required
          acm: {
            certificate_arn: "Arn", # required
          },
          file: {
            certificate_chain: "FilePath", # required
            private_key: "FilePath", # required
          },
          sds: {
            secret_name: "SdsSecretName", # required
          },
        },
        mode: "STRICT", # required, accepts STRICT, PERMISSIVE, DISABLED
        validation: {
          subject_alternative_names: {
            match: { # required
              exact: ["SubjectAlternativeName"], # required
            },
          },
          trust: { # required
            file: {
              certificate_chain: "FilePath", # required
            },
            sds: {
              secret_name: "SdsSecretName", # required
            },
          },
        },
      },
    },
  ],
  logging: {
    access_log: {
      file: {
        path: "FilePath", # required
      },
    },
  },
  service_discovery: {
    aws_cloud_map: {
      attributes: [
        {
          key: "AwsCloudMapInstanceAttributeKey", # required
          value: "AwsCloudMapInstanceAttributeValue", # required
        },
      ],
      namespace_name: "AwsCloudMapName", # required
      service_name: "AwsCloudMapName", # required
    },
    dns: {
      hostname: "Hostname", # required
      response_type: "LOADBALANCER", # accepts LOADBALANCER, ENDPOINTS
    },
  },
}

An object that represents the specification of a virtual node.

Constant Summary collapse

SENSITIVE =
[]

Instance Attribute Summary collapse

Instance Attribute Details

#backend_defaultsTypes::BackendDefaults

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



9802
9803
9804
9805
9806
9807
9808
9809
9810
# File 'gems/aws-sdk-appmesh/lib/aws-sdk-appmesh/types.rb', line 9802

class VirtualNodeSpec < Struct.new(
  :backend_defaults,
  :backends,
  :listeners,
  :logging,
  :service_discovery)
  SENSITIVE = []
  include Aws::Structure
end

#backendsArray<Types::Backend>

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

Returns:



9802
9803
9804
9805
9806
9807
9808
9809
9810
# File 'gems/aws-sdk-appmesh/lib/aws-sdk-appmesh/types.rb', line 9802

class VirtualNodeSpec < Struct.new(
  :backend_defaults,
  :backends,
  :listeners,
  :logging,
  :service_discovery)
  SENSITIVE = []
  include Aws::Structure
end

#listenersArray<Types::Listener>

The listener that the virtual node is expected to receive inbound traffic from. You can specify one listener.

Returns:



9802
9803
9804
9805
9806
9807
9808
9809
9810
# File 'gems/aws-sdk-appmesh/lib/aws-sdk-appmesh/types.rb', line 9802

class VirtualNodeSpec < Struct.new(
  :backend_defaults,
  :backends,
  :listeners,
  :logging,
  :service_discovery)
  SENSITIVE = []
  include Aws::Structure
end

#loggingTypes::Logging

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

Returns:



9802
9803
9804
9805
9806
9807
9808
9809
9810
# File 'gems/aws-sdk-appmesh/lib/aws-sdk-appmesh/types.rb', line 9802

class VirtualNodeSpec < Struct.new(
  :backend_defaults,
  :backends,
  :listeners,
  :logging,
  :service_discovery)
  SENSITIVE = []
  include Aws::Structure
end

#service_discoveryTypes::ServiceDiscovery

The service discovery information for the virtual node. 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.



9802
9803
9804
9805
9806
9807
9808
9809
9810
# File 'gems/aws-sdk-appmesh/lib/aws-sdk-appmesh/types.rb', line 9802

class VirtualNodeSpec < Struct.new(
  :backend_defaults,
  :backends,
  :listeners,
  :logging,
  :service_discovery)
  SENSITIVE = []
  include Aws::Structure
end