diff --git a/moto/ec2/models/vpcs.py b/moto/ec2/models/vpcs.py
--- a/moto/ec2/models/vpcs.py
+++ b/moto/ec2/models/vpcs.py
@@ -76,6 +76,12 @@ def __init__(
 
         self.created_at = utc_date_and_time()
 
+    def get_filter_value(self, filter_name):
+        if filter_name in ("vpc-endpoint-type", "vpc_endpoint_type"):
+            return self.endpoint_type
+        else:
+            return super().get_filter_value(filter_name, "DescribeVpcs")
+
     @property
     def owner_id(self):
         return ACCOUNT_ID

Thanks for raising this @kunalvudathu - marking it as an enhancement to add this filter.
diff --git a/tests/test_ec2/test_vpcs.py b/tests/test_ec2/test_vpcs.py
--- a/tests/test_ec2/test_vpcs.py
+++ b/tests/test_ec2/test_vpcs.py
@@ -947,7 +947,7 @@ def test_describe_vpc_gateway_end_points():
         VpcId=vpc["VpcId"],
         ServiceName="com.amazonaws.us-east-1.s3",
         RouteTableIds=[route_table["RouteTableId"]],
-        VpcEndpointType="gateway",
+        VpcEndpointType="Gateway",
     )["VpcEndpoint"]
     our_id = vpc_end_point["VpcEndpointId"]
 
@@ -960,7 +960,7 @@ def test_describe_vpc_gateway_end_points():
     our_endpoint["VpcId"].should.equal(vpc["VpcId"])
     our_endpoint["RouteTableIds"].should.equal([route_table["RouteTableId"]])
 
-    our_endpoint.should.have.key("VpcEndpointType").equal("gateway")
+    our_endpoint.should.have.key("VpcEndpointType").equal("Gateway")
     our_endpoint.should.have.key("ServiceName").equal("com.amazonaws.us-east-1.s3")
     our_endpoint.should.have.key("State").equal("available")
 
@@ -970,10 +970,15 @@ def test_describe_vpc_gateway_end_points():
     endpoint_by_id["VpcEndpointId"].should.equal(our_id)
     endpoint_by_id["VpcId"].should.equal(vpc["VpcId"])
     endpoint_by_id["RouteTableIds"].should.equal([route_table["RouteTableId"]])
-    endpoint_by_id["VpcEndpointType"].should.equal("gateway")
+    endpoint_by_id["VpcEndpointType"].should.equal("Gateway")
     endpoint_by_id["ServiceName"].should.equal("com.amazonaws.us-east-1.s3")
     endpoint_by_id["State"].should.equal("available")
 
+    gateway_endpoints = ec2.describe_vpc_endpoints(
+        Filters=[{"Name": "vpc-endpoint-type", "Values": ["Gateway"]}]
+    )["VpcEndpoints"]
+    [e["VpcEndpointId"] for e in gateway_endpoints].should.contain(our_id)
+
     with pytest.raises(ClientError) as ex:
         ec2.describe_vpc_endpoints(VpcEndpointIds=[route_table["RouteTableId"]])
     err = ex.value.response["Error"]

Describe EC2 Vpc endpoints doesn't support vpc-endpoint-type filter.
This happens on line 202
![image](https://user-images.githubusercontent.com/92550453/167168166-94b94167-5670-4d38-9577-ea2374cb674f.png)

![image](https://user-images.githubusercontent.com/92550453/167168009-be85eeea-44e0-4425-9ee0-f84798b4a1e7.png)


tests/test_ec2/test_vpcs.py::test_describe_vpc_gateway_end_points
tests/test_ec2/test_vpcs.py::test_create_vpc_with_invalid_cidr_block_parameter tests/test_ec2/test_vpcs.py::test_vpc_dedicated_tenancy tests/test_ec2/test_vpcs.py::test_vpc_state_available_filter tests/test_ec2/test_vpcs.py::test_disable_vpc_classic_link tests/test_ec2/test_vpcs.py::test_vpc_modify_enable_dns_hostnames tests/test_ec2/test_vpcs.py::test_vpc_get_by_cidr_block tests/test_ec2/test_vpcs.py::test_vpc_modify_enable_dns_support tests/test_ec2/test_vpcs.py::test_disassociate_vpc_ipv4_cidr_block tests/test_ec2/test_vpcs.py::test_associate_vpc_ipv4_cidr_block tests/test_ec2/test_vpcs.py::test_vpc_get_by_tag_key_subset tests/test_ec2/test_vpcs.py::test_describe_prefix_lists tests/test_ec2/test_vpcs.py::test_describe_vpc_interface_end_points tests/test_ec2/test_vpcs.py::test_enable_vpc_classic_link_dns_support tests/test_ec2/test_vpcs.py::test_ipv6_cidr_block_association_filters tests/test_ec2/test_vpcs.py::test_vpc_modify_tenancy_unknown tests/test_ec2/test_vpcs.py::test_enable_vpc_classic_link_failure tests/test_ec2/test_vpcs.py::test_create_vpc_with_invalid_cidr_range tests/test_ec2/test_vpcs.py::test_vpc_get_by_id tests/test_ec2/test_vpcs.py::test_describe_classic_link_disabled tests/test_ec2/test_vpcs.py::test_non_default_vpc tests/test_ec2/test_vpcs.py::test_vpc_get_by_tag_value_subset tests/test_ec2/test_vpcs.py::test_vpc_defaults tests/test_ec2/test_vpcs.py::test_vpc_tagging tests/test_ec2/test_vpcs.py::test_describe_classic_link_multiple tests/test_ec2/test_vpcs.py::test_describe_vpcs_dryrun tests/test_ec2/test_vpcs.py::test_vpc_get_by_tag tests/test_ec2/test_vpcs.py::test_enable_vpc_classic_link tests/test_ec2/test_vpcs.py::test_describe_classic_link_dns_support_multiple tests/test_ec2/test_vpcs.py::test_describe_classic_link_dns_support_enabled tests/test_ec2/test_vpcs.py::test_vpc_get_by_tag_key_superset tests/test_ec2/test_vpcs.py::test_multiple_vpcs_default_filter tests/test_ec2/test_vpcs.py::test_create_and_delete_vpc tests/test_ec2/test_vpcs.py::test_delete_vpc_end_points tests/test_ec2/test_vpcs.py::test_cidr_block_association_filters tests/test_ec2/test_vpcs.py::test_vpc_isdefault_filter tests/test_ec2/test_vpcs.py::test_vpc_associate_ipv6_cidr_block tests/test_ec2/test_vpcs.py::test_vpc_disassociate_ipv6_cidr_block tests/test_ec2/test_vpcs.py::test_default_vpc tests/test_ec2/test_vpcs.py::test_vpc_associate_dhcp_options tests/test_ec2/test_vpcs.py::test_vpc_get_by_tag_value_superset tests/test_ec2/test_vpcs.py::test_disable_vpc_classic_link_dns_support tests/test_ec2/test_vpcs.py::test_describe_classic_link_dns_support_disabled tests/test_ec2/test_vpcs.py::test_create_vpc_with_tags tests/test_ec2/test_vpcs.py::test_vpc_get_by_dhcp_options_id tests/test_ec2/test_vpcs.py::test_describe_classic_link_enabled