Class: Aws::AppMesh::Types::CreateRouteInput

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 CreateRouteInput data as a hash:

{
  client_token: "String",
  mesh_name: "ResourceName", # required
  mesh_owner: "AccountId",
  route_name: "ResourceName", # required
  spec: { # required
    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,
        },
      },
    },
  },
  tags: [
    {
      key: "TagKey", # required
      value: "TagValue", # required
    },
  ],
  virtual_router_name: "ResourceName", # required
}

Constant Summary collapse

SENSITIVE =
[]

Instance Attribute Summary collapse

Instance Attribute Details

#client_tokenString

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.

A suitable default value is auto-generated. You should normally not need to pass this option.

Returns:

  • (String)


964
965
966
967
968
969
970
971
972
973
974
# File 'gems/aws-sdk-appmesh/lib/aws-sdk-appmesh/types.rb', line 964

class CreateRouteInput < Struct.new(
  :client_token,
  :mesh_name,
  :mesh_owner,
  :route_name,
  :spec,
  :tags,
  :virtual_router_name)
  SENSITIVE = []
  include Aws::Structure
end

#mesh_nameString

The name of the service mesh to create the route in.

Returns:

  • (String)


964
965
966
967
968
969
970
971
972
973
974
# File 'gems/aws-sdk-appmesh/lib/aws-sdk-appmesh/types.rb', line 964

class CreateRouteInput < Struct.new(
  :client_token,
  :mesh_name,
  :mesh_owner,
  :route_name,
  :spec,
  :tags,
  :virtual_router_name)
  SENSITIVE = []
  include Aws::Structure
end

#mesh_ownerString

The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh. For more information about mesh sharing, see Working with shared meshes.

Returns:

  • (String)


964
965
966
967
968
969
970
971
972
973
974
# File 'gems/aws-sdk-appmesh/lib/aws-sdk-appmesh/types.rb', line 964

class CreateRouteInput < Struct.new(
  :client_token,
  :mesh_name,
  :mesh_owner,
  :route_name,
  :spec,
  :tags,
  :virtual_router_name)
  SENSITIVE = []
  include Aws::Structure
end

#route_nameString

The name to use for the route.

Returns:

  • (String)


964
965
966
967
968
969
970
971
972
973
974
# File 'gems/aws-sdk-appmesh/lib/aws-sdk-appmesh/types.rb', line 964

class CreateRouteInput < Struct.new(
  :client_token,
  :mesh_name,
  :mesh_owner,
  :route_name,
  :spec,
  :tags,
  :virtual_router_name)
  SENSITIVE = []
  include Aws::Structure
end

#specTypes::RouteSpec

The route specification to apply.

Returns:



964
965
966
967
968
969
970
971
972
973
974
# File 'gems/aws-sdk-appmesh/lib/aws-sdk-appmesh/types.rb', line 964

class CreateRouteInput < Struct.new(
  :client_token,
  :mesh_name,
  :mesh_owner,
  :route_name,
  :spec,
  :tags,
  :virtual_router_name)
  SENSITIVE = []
  include Aws::Structure
end

#tagsArray<Types::TagRef>

Optional metadata that you can apply to the route to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.

Returns:



964
965
966
967
968
969
970
971
972
973
974
# File 'gems/aws-sdk-appmesh/lib/aws-sdk-appmesh/types.rb', line 964

class CreateRouteInput < Struct.new(
  :client_token,
  :mesh_name,
  :mesh_owner,
  :route_name,
  :spec,
  :tags,
  :virtual_router_name)
  SENSITIVE = []
  include Aws::Structure
end

#virtual_router_nameString

The name of the virtual router in which to create the route. If the virtual router is in a shared mesh, then you must be the owner of the virtual router resource.

Returns:

  • (String)


964
965
966
967
968
969
970
971
972
973
974
# File 'gems/aws-sdk-appmesh/lib/aws-sdk-appmesh/types.rb', line 964

class CreateRouteInput < Struct.new(
  :client_token,
  :mesh_name,
  :mesh_owner,
  :route_name,
  :spec,
  :tags,
  :virtual_router_name)
  SENSITIVE = []
  include Aws::Structure
end