{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--aws-appmesh-route.json",
  "title": "AWSAppMeshRouteProperties",
  "description": "Resource Type definition for AWS::AppMesh::Route. Source:- No source definition found, add manually please",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/lalcebo/json-schema/master/serverless/resources/cloudformation-modified/aws-appmesh-route.json",
    "sourceSha256": "1225595859f2961a0fd0fb61036164d1202d7dbd667082ec41a50fc7b074a280"
  },
  "type": "object",
  "properties": {
    "MeshName": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "VirtualRouterName": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "MeshOwner": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "RouteName": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "Spec": {
      "$ref": "#/$defs/RouteSpec"
    },
    "Tags": {
      "type": "array",
      "uniqueItems": false,
      "items": {
        "$ref": "#/$defs/Tag"
      }
    }
  },
  "typeName": "AWS::AppMesh::Route",
  "readOnlyProperties": [
    "/properties/Id",
    "/properties/ResourceOwner",
    "/properties/Arn",
    "/properties/Uid"
  ],
  "$defs": {
    "QueryParameter": {
      "type": "object",
      "title": "AWSAppMeshRouteQueryParameterDefinition",
      "properties": {
        "Name": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Match": {
          "$ref": "#/$defs/HttpQueryParameterMatch"
        }
      },
      "required": [
        "Name"
      ],
      "additionalProperties": false
    },
    "HttpRetryPolicy": {
      "type": "object",
      "title": "AWSAppMeshRouteHttpRetryPolicyDefinition",
      "properties": {
        "MaxRetries": {
          "type": "integer"
        },
        "TcpRetryEvents": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "type": "string"
          }
        },
        "PerRetryTimeout": {
          "$ref": "#/$defs/Duration"
        },
        "HttpRetryEvents": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "MaxRetries",
        "PerRetryTimeout"
      ],
      "additionalProperties": false
    },
    "HttpQueryParameterMatch": {
      "type": "object",
      "title": "AWSAppMeshRouteHttpQueryParameterMatchDefinition",
      "properties": {
        "Exact": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "GrpcRoute": {
      "type": "object",
      "title": "AWSAppMeshRouteGrpcRouteDefinition",
      "properties": {
        "Action": {
          "$ref": "#/$defs/GrpcRouteAction"
        },
        "RetryPolicy": {
          "$ref": "#/$defs/GrpcRetryPolicy"
        },
        "Timeout": {
          "$ref": "#/$defs/GrpcTimeout"
        },
        "Match": {
          "$ref": "#/$defs/GrpcRouteMatch"
        }
      },
      "required": [
        "Action",
        "Match"
      ],
      "additionalProperties": false
    },
    "HttpRouteAction": {
      "type": "object",
      "title": "AWSAppMeshRouteHttpRouteActionDefinition",
      "properties": {
        "WeightedTargets": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "$ref": "#/$defs/WeightedTarget"
          }
        }
      },
      "required": [
        "WeightedTargets"
      ],
      "additionalProperties": false
    },
    "TcpRoute": {
      "type": "object",
      "title": "AWSAppMeshRouteTcpRouteDefinition",
      "properties": {
        "Action": {
          "$ref": "#/$defs/TcpRouteAction"
        },
        "Timeout": {
          "$ref": "#/$defs/TcpTimeout"
        },
        "Match": {
          "$ref": "#/$defs/TcpRouteMatch"
        }
      },
      "required": [
        "Action"
      ],
      "additionalProperties": false
    },
    "HttpRouteHeader": {
      "type": "object",
      "title": "AWSAppMeshRouteHttpRouteHeaderDefinition",
      "properties": {
        "Invert": {
          "type": "boolean"
        },
        "Name": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Match": {
          "$ref": "#/$defs/HeaderMatchMethod"
        }
      },
      "required": [
        "Name"
      ],
      "additionalProperties": false
    },
    "GrpcTimeout": {
      "type": "object",
      "title": "AWSAppMeshRouteGrpcTimeoutDefinition",
      "properties": {
        "PerRequest": {
          "$ref": "#/$defs/Duration"
        },
        "Idle": {
          "$ref": "#/$defs/Duration"
        }
      },
      "additionalProperties": false
    },
    "GrpcRouteMetadataMatchMethod": {
      "type": "object",
      "title": "AWSAppMeshRouteGrpcRouteMetadataMatchMethodDefinition",
      "properties": {
        "Suffix": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Exact": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Prefix": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Regex": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Range": {
          "$ref": "#/$defs/MatchRange"
        }
      },
      "additionalProperties": false
    },
    "GrpcRouteMetadata": {
      "type": "object",
      "title": "AWSAppMeshRouteGrpcRouteMetadataDefinition",
      "properties": {
        "Invert": {
          "type": "boolean"
        },
        "Name": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Match": {
          "$ref": "#/$defs/GrpcRouteMetadataMatchMethod"
        }
      },
      "required": [
        "Name"
      ],
      "additionalProperties": false
    },
    "HeaderMatchMethod": {
      "type": "object",
      "title": "AWSAppMeshRouteHeaderMatchMethodDefinition",
      "properties": {
        "Suffix": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Exact": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Prefix": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Regex": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Range": {
          "$ref": "#/$defs/MatchRange"
        }
      },
      "additionalProperties": false
    },
    "GrpcRetryPolicy": {
      "type": "object",
      "title": "AWSAppMeshRouteGrpcRetryPolicyDefinition",
      "properties": {
        "MaxRetries": {
          "type": "integer"
        },
        "TcpRetryEvents": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "type": "string"
          }
        },
        "PerRetryTimeout": {
          "$ref": "#/$defs/Duration"
        },
        "GrpcRetryEvents": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "type": "string"
          }
        },
        "HttpRetryEvents": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "MaxRetries",
        "PerRetryTimeout"
      ],
      "additionalProperties": false
    },
    "TcpTimeout": {
      "type": "object",
      "title": "AWSAppMeshRouteTcpTimeoutDefinition",
      "properties": {
        "Idle": {
          "$ref": "#/$defs/Duration"
        }
      },
      "additionalProperties": false
    },
    "WeightedTarget": {
      "type": "object",
      "title": "AWSAppMeshRouteWeightedTargetDefinition",
      "properties": {
        "VirtualNode": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Weight": {
          "type": "integer"
        },
        "Port": {
          "type": "integer"
        }
      },
      "required": [
        "VirtualNode",
        "Weight"
      ],
      "additionalProperties": false
    },
    "HttpPathMatch": {
      "type": "object",
      "title": "AWSAppMeshRouteHttpPathMatchDefinition",
      "properties": {
        "Regex": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Exact": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "HttpTimeout": {
      "type": "object",
      "title": "AWSAppMeshRouteHttpTimeoutDefinition",
      "properties": {
        "PerRequest": {
          "$ref": "#/$defs/Duration"
        },
        "Idle": {
          "$ref": "#/$defs/Duration"
        }
      },
      "additionalProperties": false
    },
    "TcpRouteAction": {
      "type": "object",
      "title": "AWSAppMeshRouteTcpRouteActionDefinition",
      "properties": {
        "WeightedTargets": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "$ref": "#/$defs/WeightedTarget"
          }
        }
      },
      "required": [
        "WeightedTargets"
      ],
      "additionalProperties": false
    },
    "GrpcRouteMatch": {
      "type": "object",
      "title": "AWSAppMeshRouteGrpcRouteMatchDefinition",
      "properties": {
        "Metadata": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "$ref": "#/$defs/GrpcRouteMetadata"
          }
        },
        "MethodName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "ServiceName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Port": {
          "type": "integer"
        }
      },
      "additionalProperties": false
    },
    "MatchRange": {
      "type": "object",
      "title": "AWSAppMeshRouteMatchRangeDefinition",
      "properties": {
        "Start": {
          "type": "integer"
        },
        "End": {
          "type": "integer"
        }
      },
      "required": [
        "Start",
        "End"
      ],
      "additionalProperties": false
    },
    "Duration": {
      "type": "object",
      "title": "AWSAppMeshRouteDurationDefinition",
      "properties": {
        "Value": {
          "type": "integer"
        },
        "Unit": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "Value",
        "Unit"
      ],
      "additionalProperties": false
    },
    "RouteSpec": {
      "type": "object",
      "title": "AWSAppMeshRouteRouteSpecDefinition",
      "properties": {
        "HttpRoute": {
          "$ref": "#/$defs/HttpRoute"
        },
        "Http2Route": {
          "$ref": "#/$defs/HttpRoute"
        },
        "GrpcRoute": {
          "$ref": "#/$defs/GrpcRoute"
        },
        "TcpRoute": {
          "$ref": "#/$defs/TcpRoute"
        },
        "Priority": {
          "type": "integer"
        }
      },
      "additionalProperties": false
    },
    "TcpRouteMatch": {
      "type": "object",
      "title": "AWSAppMeshRouteTcpRouteMatchDefinition",
      "properties": {
        "Port": {
          "type": "integer"
        }
      },
      "additionalProperties": false
    },
    "HttpRoute": {
      "type": "object",
      "title": "AWSAppMeshRouteHttpRouteDefinition",
      "properties": {
        "Action": {
          "$ref": "#/$defs/HttpRouteAction"
        },
        "RetryPolicy": {
          "$ref": "#/$defs/HttpRetryPolicy"
        },
        "Timeout": {
          "$ref": "#/$defs/HttpTimeout"
        },
        "Match": {
          "$ref": "#/$defs/HttpRouteMatch"
        }
      },
      "required": [
        "Action",
        "Match"
      ],
      "additionalProperties": false
    },
    "GrpcRouteAction": {
      "type": "object",
      "title": "AWSAppMeshRouteGrpcRouteActionDefinition",
      "properties": {
        "WeightedTargets": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "$ref": "#/$defs/WeightedTarget"
          }
        }
      },
      "required": [
        "WeightedTargets"
      ],
      "additionalProperties": false
    },
    "Tag": {
      "type": "object",
      "title": "AWSAppMeshRouteTagDefinition",
      "properties": {
        "Value": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Key": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "Value",
        "Key"
      ],
      "additionalProperties": false
    },
    "HttpRouteMatch": {
      "type": "object",
      "title": "AWSAppMeshRouteHttpRouteMatchDefinition",
      "properties": {
        "Path": {
          "$ref": "#/$defs/HttpPathMatch"
        },
        "Scheme": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Headers": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "$ref": "#/$defs/HttpRouteHeader"
          }
        },
        "Port": {
          "type": "integer"
        },
        "Prefix": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Method": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "QueryParameters": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "$ref": "#/$defs/QueryParameter"
          }
        }
      },
      "additionalProperties": false
    }
  },
  "primaryIdentifier": [
    "/properties/Id"
  ],
  "additionalProperties": false,
  "required": [
    "MeshName",
    "VirtualRouterName",
    "Spec"
  ],
  "createOnlyProperties": [
    "/properties/MeshName",
    "/properties/VirtualRouterName",
    "/properties/RouteName",
    "/properties/MeshOwner"
  ]
}
