{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--aws-appmesh-gatewayroute.json",
  "title": "AWSAppMeshGatewayRouteProperties",
  "description": "Resource Type definition for AWS::AppMesh::GatewayRoute. 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-gatewayroute.json",
    "sourceSha256": "319f9af5e2a1b6497074bb1520ca0304033570391448aa16b01a68be82e64978"
  },
  "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"
        }
      ]
    },
    "VirtualGatewayName": {
      "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"
        }
      ]
    },
    "GatewayRouteName": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "Spec": {
      "$ref": "#/$defs/GatewayRouteSpec"
    },
    "Tags": {
      "type": "array",
      "uniqueItems": false,
      "items": {
        "$ref": "#/$defs/Tag"
      }
    }
  },
  "typeName": "AWS::AppMesh::GatewayRoute",
  "readOnlyProperties": [
    "/properties/Id",
    "/properties/ResourceOwner",
    "/properties/Arn",
    "/properties/Uid"
  ],
  "$defs": {
    "GatewayRouteHostnameMatch": {
      "type": "object",
      "title": "AWSAppMeshGatewayRouteGatewayRouteHostnameMatchDefinition",
      "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"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "QueryParameter": {
      "type": "object",
      "title": "AWSAppMeshGatewayRouteQueryParameterDefinition",
      "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
    },
    "GatewayRouteVirtualService": {
      "type": "object",
      "title": "AWSAppMeshGatewayRouteGatewayRouteVirtualServiceDefinition",
      "properties": {
        "VirtualServiceName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "VirtualServiceName"
      ],
      "additionalProperties": false
    },
    "GatewayRouteTarget": {
      "type": "object",
      "title": "AWSAppMeshGatewayRouteGatewayRouteTargetDefinition",
      "properties": {
        "VirtualService": {
          "$ref": "#/$defs/GatewayRouteVirtualService"
        },
        "Port": {
          "type": "integer"
        }
      },
      "required": [
        "VirtualService"
      ],
      "additionalProperties": false
    },
    "GrpcGatewayRouteMetadata": {
      "type": "object",
      "title": "AWSAppMeshGatewayRouteGrpcGatewayRouteMetadataDefinition",
      "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/GatewayRouteMetadataMatch"
        }
      },
      "required": [
        "Name"
      ],
      "additionalProperties": false
    },
    "GrpcGatewayRouteMatch": {
      "type": "object",
      "title": "AWSAppMeshGatewayRouteGrpcGatewayRouteMatchDefinition",
      "properties": {
        "Hostname": {
          "$ref": "#/$defs/GatewayRouteHostnameMatch"
        },
        "Metadata": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "$ref": "#/$defs/GrpcGatewayRouteMetadata"
          }
        },
        "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
    },
    "HttpQueryParameterMatch": {
      "type": "object",
      "title": "AWSAppMeshGatewayRouteHttpQueryParameterMatchDefinition",
      "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
    },
    "HttpGatewayRoutePrefixRewrite": {
      "type": "object",
      "title": "AWSAppMeshGatewayRouteHttpGatewayRoutePrefixRewriteDefinition",
      "properties": {
        "Value": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "DefaultPrefix": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "GrpcGatewayRoute": {
      "type": "object",
      "title": "AWSAppMeshGatewayRouteGrpcGatewayRouteDefinition",
      "properties": {
        "Action": {
          "$ref": "#/$defs/GrpcGatewayRouteAction"
        },
        "Match": {
          "$ref": "#/$defs/GrpcGatewayRouteMatch"
        }
      },
      "required": [
        "Action",
        "Match"
      ],
      "additionalProperties": false
    },
    "GatewayRouteSpec": {
      "type": "object",
      "title": "AWSAppMeshGatewayRouteGatewayRouteSpecDefinition",
      "properties": {
        "HttpRoute": {
          "$ref": "#/$defs/HttpGatewayRoute"
        },
        "Http2Route": {
          "$ref": "#/$defs/HttpGatewayRoute"
        },
        "GrpcRoute": {
          "$ref": "#/$defs/GrpcGatewayRoute"
        },
        "Priority": {
          "type": "integer"
        }
      },
      "additionalProperties": false
    },
    "HttpGatewayRouteMatch": {
      "type": "object",
      "title": "AWSAppMeshGatewayRouteHttpGatewayRouteMatchDefinition",
      "properties": {
        "Path": {
          "$ref": "#/$defs/HttpPathMatch"
        },
        "Headers": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "$ref": "#/$defs/HttpGatewayRouteHeader"
          }
        },
        "Port": {
          "type": "integer"
        },
        "Hostname": {
          "$ref": "#/$defs/GatewayRouteHostnameMatch"
        },
        "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
    },
    "HttpGatewayRouteAction": {
      "type": "object",
      "title": "AWSAppMeshGatewayRouteHttpGatewayRouteActionDefinition",
      "properties": {
        "Target": {
          "$ref": "#/$defs/GatewayRouteTarget"
        },
        "Rewrite": {
          "$ref": "#/$defs/HttpGatewayRouteRewrite"
        }
      },
      "required": [
        "Target"
      ],
      "additionalProperties": false
    },
    "GrpcGatewayRouteRewrite": {
      "type": "object",
      "title": "AWSAppMeshGatewayRouteGrpcGatewayRouteRewriteDefinition",
      "properties": {
        "Hostname": {
          "$ref": "#/$defs/GatewayRouteHostnameRewrite"
        }
      },
      "additionalProperties": false
    },
    "HttpGatewayRouteHeader": {
      "type": "object",
      "title": "AWSAppMeshGatewayRouteHttpGatewayRouteHeaderDefinition",
      "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/HttpGatewayRouteHeaderMatch"
        }
      },
      "required": [
        "Name"
      ],
      "additionalProperties": false
    },
    "GatewayRouteRangeMatch": {
      "type": "object",
      "title": "AWSAppMeshGatewayRouteGatewayRouteRangeMatchDefinition",
      "properties": {
        "Start": {
          "type": "integer"
        },
        "End": {
          "type": "integer"
        }
      },
      "required": [
        "Start",
        "End"
      ],
      "additionalProperties": false
    },
    "GrpcGatewayRouteAction": {
      "type": "object",
      "title": "AWSAppMeshGatewayRouteGrpcGatewayRouteActionDefinition",
      "properties": {
        "Target": {
          "$ref": "#/$defs/GatewayRouteTarget"
        },
        "Rewrite": {
          "$ref": "#/$defs/GrpcGatewayRouteRewrite"
        }
      },
      "required": [
        "Target"
      ],
      "additionalProperties": false
    },
    "HttpGatewayRouteHeaderMatch": {
      "type": "object",
      "title": "AWSAppMeshGatewayRouteHttpGatewayRouteHeaderMatchDefinition",
      "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/GatewayRouteRangeMatch"
        }
      },
      "additionalProperties": false
    },
    "HttpGatewayRoutePathRewrite": {
      "type": "object",
      "title": "AWSAppMeshGatewayRouteHttpGatewayRoutePathRewriteDefinition",
      "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
    },
    "GatewayRouteMetadataMatch": {
      "type": "object",
      "title": "AWSAppMeshGatewayRouteGatewayRouteMetadataMatchDefinition",
      "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/GatewayRouteRangeMatch"
        }
      },
      "additionalProperties": false
    },
    "Tag": {
      "type": "object",
      "title": "AWSAppMeshGatewayRouteTagDefinition",
      "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
    },
    "HttpPathMatch": {
      "type": "object",
      "title": "AWSAppMeshGatewayRouteHttpPathMatchDefinition",
      "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
    },
    "HttpGatewayRoute": {
      "type": "object",
      "title": "AWSAppMeshGatewayRouteHttpGatewayRouteDefinition",
      "properties": {
        "Action": {
          "$ref": "#/$defs/HttpGatewayRouteAction"
        },
        "Match": {
          "$ref": "#/$defs/HttpGatewayRouteMatch"
        }
      },
      "required": [
        "Action",
        "Match"
      ],
      "additionalProperties": false
    },
    "HttpGatewayRouteRewrite": {
      "type": "object",
      "title": "AWSAppMeshGatewayRouteHttpGatewayRouteRewriteDefinition",
      "properties": {
        "Path": {
          "$ref": "#/$defs/HttpGatewayRoutePathRewrite"
        },
        "Hostname": {
          "$ref": "#/$defs/GatewayRouteHostnameRewrite"
        },
        "Prefix": {
          "$ref": "#/$defs/HttpGatewayRoutePrefixRewrite"
        }
      },
      "additionalProperties": false
    },
    "GatewayRouteHostnameRewrite": {
      "type": "object",
      "title": "AWSAppMeshGatewayRouteGatewayRouteHostnameRewriteDefinition",
      "properties": {
        "DefaultTargetHostname": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "additionalProperties": false
    }
  },
  "primaryIdentifier": [
    "/properties/Id"
  ],
  "additionalProperties": false,
  "required": [
    "MeshName",
    "VirtualGatewayName",
    "Spec"
  ],
  "createOnlyProperties": [
    "/properties/MeshName",
    "/properties/VirtualGatewayName",
    "/properties/MeshOwner",
    "/properties/GatewayRouteName"
  ]
}
