diff --git a/inc/Gtfs/FareAttribute/Transfers.php b/inc/Gtfs/FareAttribute/Transfers.php
new file mode 100644
index 0000000..66d3f0e
--- /dev/null
+++ b/inc/Gtfs/FareAttribute/Transfers.php
@@ -0,0 +1,61 @@
+<?php
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs\FareAttribute;
+
+use UnexpectedValueException;
+
+/**
+ * Protobuf type <code>gtfs.FareAttribute.Transfers</code>
+ */
+class Transfers
+{
+    /**
+     * Generated from protobuf enum <code>NO = 0;</code>
+     */
+    const NO = 0;
+    /**
+     * Generated from protobuf enum <code>ONCE = 1;</code>
+     */
+    const ONCE = 1;
+    /**
+     * Generated from protobuf enum <code>TWICE = 2;</code>
+     */
+    const TWICE = 2;
+    /**
+     * Generated from protobuf enum <code>UNLIMITED = 3;</code>
+     */
+    const UNLIMITED = 3;
+
+    private static $valueToName = [
+        self::NO => 'NO',
+        self::ONCE => 'ONCE',
+        self::TWICE => 'TWICE',
+        self::UNLIMITED => 'UNLIMITED',
+    ];
+
+    public static function name($value)
+    {
+        if (!isset(self::$valueToName[$value])) {
+            throw new UnexpectedValueException(sprintf(
+                    'Enum %s has no name defined for value %s', __CLASS__, $value));
+        }
+        return self::$valueToName[$value];
+    }
+
+
+    public static function value($name)
+    {
+        $const = __CLASS__ . '::' . strtoupper($name);
+        if (!defined($const)) {
+            throw new UnexpectedValueException(sprintf(
+                    'Enum %s has no value defined for name %s', __CLASS__, $name));
+        }
+        return constant($const);
+    }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Transfers::class, \Gtfs\FareAttribute_Transfers::class);
+
