class Aws::AppMesh::Types::RouteSpec

An object that represents a route specification. Specify one route type.

@note When making an API call, you may pass RouteSpec

data as a hash:

    {
      grpc_route: {
        action: { # required
          weighted_targets: [ # required
            {
              virtual_node: "ResourceName", # required
              weight: 1, # required
            },
          ],
        },
        match: { # required
          metadata: [
            {
              invert: false,
              match: {
                exact: "HeaderMatch",
                prefix: "HeaderMatch",
                range: {
                  end: 1, # required
                  start: 1, # required
                },
                regex: "HeaderMatch",
                suffix: "HeaderMatch",
              },
              name: "HeaderName", # required
            },
          ],
          method_name: "MethodName",
          service_name: "ServiceName",
        },
        retry_policy: {
          grpc_retry_events: ["cancelled"], # accepts cancelled, deadline-exceeded, internal, resource-exhausted, unavailable
          http_retry_events: ["HttpRetryPolicyEvent"],
          max_retries: 1, # required
          per_retry_timeout: { # required
            unit: "s", # accepts s, ms
            value: 1,
          },
          tcp_retry_events: ["connection-error"], # accepts connection-error
        },
        timeout: {
          idle: {
            unit: "s", # accepts s, ms
            value: 1,
          },
          per_request: {
            unit: "s", # accepts s, ms
            value: 1,
          },
        },
      },
      http2_route: {
        action: { # required
          weighted_targets: [ # required
            {
              virtual_node: "ResourceName", # required
              weight: 1, # required
            },
          ],
        },
        match: { # required
          headers: [
            {
              invert: false,
              match: {
                exact: "HeaderMatch",
                prefix: "HeaderMatch",
                range: {
                  end: 1, # required
                  start: 1, # required
                },
                regex: "HeaderMatch",
                suffix: "HeaderMatch",
              },
              name: "HeaderName", # required
            },
          ],
          method: "GET", # accepts GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
          path: {
            exact: "HttpPathExact",
            regex: "HttpPathRegex",
          },
          prefix: "String",
          query_parameters: [
            {
              match: {
                exact: "String",
              },
              name: "QueryParameterName", # required
            },
          ],
          scheme: "http", # accepts http, https
        },
        retry_policy: {
          http_retry_events: ["HttpRetryPolicyEvent"],
          max_retries: 1, # required
          per_retry_timeout: { # required
            unit: "s", # accepts s, ms
            value: 1,
          },
          tcp_retry_events: ["connection-error"], # accepts connection-error
        },
        timeout: {
          idle: {
            unit: "s", # accepts s, ms
            value: 1,
          },
          per_request: {
            unit: "s", # accepts s, ms
            value: 1,
          },
        },
      },
      http_route: {
        action: { # required
          weighted_targets: [ # required
            {
              virtual_node: "ResourceName", # required
              weight: 1, # required
            },
          ],
        },
        match: { # required
          headers: [
            {
              invert: false,
              match: {
                exact: "HeaderMatch",
                prefix: "HeaderMatch",
                range: {
                  end: 1, # required
                  start: 1, # required
                },
                regex: "HeaderMatch",
                suffix: "HeaderMatch",
              },
              name: "HeaderName", # required
            },
          ],
          method: "GET", # accepts GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
          path: {
            exact: "HttpPathExact",
            regex: "HttpPathRegex",
          },
          prefix: "String",
          query_parameters: [
            {
              match: {
                exact: "String",
              },
              name: "QueryParameterName", # required
            },
          ],
          scheme: "http", # accepts http, https
        },
        retry_policy: {
          http_retry_events: ["HttpRetryPolicyEvent"],
          max_retries: 1, # required
          per_retry_timeout: { # required
            unit: "s", # accepts s, ms
            value: 1,
          },
          tcp_retry_events: ["connection-error"], # accepts connection-error
        },
        timeout: {
          idle: {
            unit: "s", # accepts s, ms
            value: 1,
          },
          per_request: {
            unit: "s", # accepts s, ms
            value: 1,
          },
        },
      },
      priority: 1,
      tcp_route: {
        action: { # required
          weighted_targets: [ # required
            {
              virtual_node: "ResourceName", # required
              weight: 1, # required
            },
          ],
        },
        timeout: {
          idle: {
            unit: "s", # accepts s, ms
            value: 1,
          },
        },
      },
    }

@!attribute [rw] grpc_route

An object that represents the specification of a gRPC route.
@return [Types::GrpcRoute]

@!attribute [rw] http2_route

An object that represents the specification of an HTTP/2 route.
@return [Types::HttpRoute]

@!attribute [rw] http_route

An object that represents the specification of an HTTP route.
@return [Types::HttpRoute]

@!attribute [rw] priority

The priority for the route. Routes are matched based on the
specified value, where 0 is the highest priority.
@return [Integer]

@!attribute [rw] tcp_route

An object that represents the specification of a TCP route.
@return [Types::TcpRoute]

@see docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/RouteSpec AWS API Documentation

Constants

SENSITIVE